Files
CCU621M/app/ui/ui_task.h
T

287 lines
12 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef UI_TASK_H
#define UI_TASK_H
#ifdef __cplusplus /*C++编译环境下兼容C语言*/
extern "C" {
#endif
/*------ Exported includes(头文件) ----------------------*/
#include "main.h"
#include "app_init/app_init.h"
#include "mylog/mylog.h"
#include "publicdata/publicdata.h"
/*------ Exported macro(宏定义) -------------------------*/
#define UITASK_TASK_ID (TASK_ID_UI)
#define UI_LOG(fmt, ...) MYLOG_MSG(UITASK_TASK_ID, (fmt), ##__VA_ARGS__)
#define FRAME_HEAD_H 0x5A //帧头高字节
#define FRAME_HEAD_L 0xA5 //帧头低字节
#define UI_WR_REG_CODE 0x80 //写控制寄存器
#define UI_RD_REG_CODE 0x81 //读寄存器数据
#define UI_WR_DATA_CODE 0x82 //写数据寄存器(字)
#define UI_RD_DATA_CODE 0x83 //读数据寄存器(字)
#define UI_ID_ADDR 0x03 //存放图片的控制寄存器地址
#define UI_DATA_ADDR_MASK 0xFF00
//变量地址规划,0000H~6FFFH
#define UI_TCH_ADDR 0x0000 //触控从0x0000开始
#define UI_DIS_ADDR 0x0100 //只读变量(充电中实时信息等...)
#define UI_CFG_ADDR 0x0200 //可读写变量(配置变量)
#define UI_CODE_ADDR 0x0300 //图标变量
#define UI_STR_ADDR 0x0400 //文本从0x0400开始
#define UI_STR_ADDR_2 0x0500 //文本0x0500
//触控地址规划,0100H~01FFH
#define UI_GUN_ID 0x0103 //抢号显示
#define UI_CHARGE_DATA_ID 0x0103 //充电数据显示地址 -- 10B
#define UI_CHARGE_POWER_ID 0x010C //充电电量 - 12D
#define UI_CHARGE_MONEY_ID 0x0110 //总消费金额
#define UI_CHARGE_TIME_ID 0x0112 //已充时间min
#define UI_STANDBY_CHARGE_INFO_A_ID 0x0114 //待机充电信息显示
#define UI_STANDBY_CHARGE_INFO_B_ID 0x011A //待机充电信息显示
#define UI_BATT_DATA_ID 0x0129 //电池数据显示地址
#define UI_HIS_ALARM_TOTAL_ID 0x012E //历史故障记录总数显示
#define UI_HIS_CHARGE_TOTAL_ID 0x012F //历史充电记录总数显示
#define UI_TIMER_ADDR 0x0135 //倒计时地址
#define UI_TIMER_ADDR_2 0x0136 //倒计时地址
#define UI_BATT_RATED_DATA_ID 0x0137 //电池容量信息
//配置变量地址规划,0200H~02FFH
#define UI_CFG_ADDR_SYSTEM_PARAM 0x0200 //系统参数
#define UI_CFG_ADDR_PROTECTION_PARAM 0x0220 //充电桩保护参数
#define UI_CFG_ADDR_NETWORK_PARAM 0x0240 //网络参数
#define UI_CFG_ADDR_MODULE_PARAM 0x0260 //模块参数
#define UI_CFG_ADDR_RESERVE_PARAM 0x0280 //预留参数
#define UI_CFG_ADDR_OTHER_PARAM 0x02A0 //其他参数
//图标变量地址规划,0300H~03FFH
#define UI_WIFI_FLAG 0x0300 //联网标识
#define UI_ANIMATION_ICON 0x0310 //动画图标
//文本变量地址规划,0400H~
#define UI_VERSION_INFO 0x0400 //主控版本显示地址
#define UI_VERSION_INFO2 0x0440 //主控版本显示地址
#define UI_CARD_SHOW_ID 0x04C0 //刷卡显示地址
#define UI_START_STATE_ID 0x04D0 //启动状态显示地址
#define UI_GUN_A_STATE_ID 0x0500 //A枪状态显示地址
#define UI_GUN_B_STATE_ID 0x0520 //B枪状态显示地址
#define UI_PLATFORM1_PILE_NO 0x0540 //平台1桩编号参数 32字节 0x0540~0x055F
#define UI_PLATFORM2_PILE_NO 0x0560 //平台2桩编号参数 32字节 0x0560~0x057F
#define UI_PLATFORM1_DOMAIN 0x0580 //平台1域名地址 64字节 0x0580~0x05BF
#define UI_PLATFORM2_DOMAIN 0x05C0 //平台2域名地址 64字节 0x05C0~0x05FF
#define UI_STR_APN 0x0600 //0x0C00 apn1
#define UI_PILE_NO 0x0650 //桩编号
#define UI_STR_R1 0x06A0 //OCPP鉴权密钥(AuthorizationKey)
#define UI_STR_OCPP_AUTH_KEY UI_STR_R1
#define UI_STR_R2 0x06C0 //0x06C0 预留3
#define UI_STOP_REASON_ID 0x0700 //停机原因
#define UI_FAULT_INFO_ID 0x0800 //故障信息显示
#define UI_PICTURE 0x0910 //左上角图片剪切赋值
#define UI_QR_CODE_GUN_A 0x0A00 //二维码
#define UI_QR_CODE_GUN_B 0x0B00
//历史告警界面显示地址:每页3条(文本)
#define UI_HIS_ALARM_LINE1 0x0E00
#define UI_HIS_ALARM_LINE2 0x0F00
#define UI_HIS_ALARM_LINE3 0x1000
//历史充电记录界面显示地址:每页3条(文本)
#define UI_HIS_CHARGE_LINE1 0x1100
#define UI_HIS_CHARGE_LINE2 0x1200
#define UI_HIS_CHARGE_LINE3 0x1300
#define UI_MAINTENANCE_PWD_ID 0x0420 //维护密码输入地址
#define UI_ADMIN_PWD_ID 0x0430 //管理后台维护密码输入地址
#define UI_PARAM_INIT_PWD_ID 0x0440 //参数初始化密码输入地址
#define UI_SYSTEM_RESTART_PWD_ID 0x0450 //系统重启密码输入地址
#define UI_MAINTENANCE_PWD "123456" //维护密码
#define UI_ADMIN_PWD "27930" //管理员密码
#define E_UI_PARAM_INIT_FLAG (0xF0) //参数初始化标志
#define E_UI_SYSTEM_RESTART_FLAG (0xF1) //系统重启标志
/*------ Exported struct(结构体定义) --------------------*/
typedef enum
{
E_UI_ID_NULL = 0,
E_UI_ID_HOME_PAGE, //首页-待机界面
E_UI_ID_STANDBY_TWIN_GUN_NO_WORK, //双枪待机界面
E_UI_ID_STANDBY_TWIN_GUN_A_WORK, //A枪充电-双枪待机界面
E_UI_ID_STANDBY_TWIN_GUN_B_WORK, //B枪充电-双枪待机界面
E_UI_ID_STANDBY_TWIN_GUN_AB_WORK, //AB枪充电-双枪待机界面
E_UI_ID_STANDBY_SINGLE_GUN_NO_WORK, //单枪待机界面
E_UI_ID_STANDBY_SINGLE_GUN_WORK, //单枪充电-待机界面、
E_UI_ID_CHAR_METHOD_SELE, //充电方式选择界面
E_UI_ID_GUN_NO_LINK, //枪未连接提示界面
E_UI_ID_CHAR_STARTING_UP, //充电启动中界面
E_UI_ID_CHAR_CARD, //充电刷卡等待界面
E_UI_ID_CHAR_IN_REAL_DATA, //充电中实时信息
E_UI_ID_CHAR_IN_BATT_DATA, //充电中电池信息
E_UI_ID_CHAR_STOP_ING, //充电停止中提示界面
E_UI_ID_CHAR_SETTLEMENT, //充电结算界面
E_UI_ID_FAULT_INFO, //故障显示界面
E_UI_ID_SYS_UPDATE, //系统升级中
E_UI_ID_MAINTENANCE, //维护界面
E_UI_ID_BASIC_PARAM_SET, //基本参数设置界面
E_UI_ID_PROT_PARAM_SET, //保护参数设置界面
E_UI_ID_NET_PARAM_SET, //网络参数设置界面
E_UI_ID_MODULE_PARAM_SET, //模块参数设置界面
E_UI_ID_RESERVE_PARAM_SET, //预留参数设置界面
E_UI_ID_OTHER_PARAM_SET, //其他参数设置界面
E_UI_ID_HISTORY_ALARM, //历史告警界面
E_UI_ID_CHARGE_RECORD, //充电记录界面
E_UI_ID_VERSION_INFO, //版本信息界面
E_UI_ID_CONFIRM_OPERATION, //请确认操作界面
}E_UI_ID_TYPE;
typedef struct
{
U8_T u8_func_code; //功能码
U16_T u16_addr; //寄存器地址
U16_T u16_cnt; //从数据寄存器地址开始读cnt个[字]长度数据,从控制寄存器地址开始读cnt个[字节]长度数据
U32_T u32_data; //数据
U8_T u8_str_len; //长度
U8_T u8_str[NUM_32];
}UICOMM_CMD_T;
//多次使用的公共按钮 ,因为每次触控信息都清空,所以不同界面相同按钮地址可共用 lyn20200622
typedef struct
{
U8_T u8_frist_page ; //0x0000 首页跳转按钮
U8_T u8_other_change_A; //0x0001 A枪其他充电方式选择
U8_T u8_other_change_B; //0x0002 B枪其他充电方式选择
U8_T u8_vin_start ; //0x0003 vin启动
U8_T u8_card_start ; //0x0004 刷卡启动
U8_T u8_account_start ; //0x0005 账户启动
U8_T u8_stop_charge ; //0x0006 停止充电按钮
U8_T u8_auxpower_12v ; //0x0007 辅源选择 12V
U8_T u8_auxpower_24v ; //0x0008 辅源选择 24V
U8_T u8_maintain ; //0x000B 维护密码点击按钮
U8_T u8_maintain_cnt ; //维护密码点击次数
U8_T u8_charge_state_A ; //0x000C A枪充电状态点击按钮
U8_T u8_charge_state_B ; //0x000D B枪充电状态点击按钮
U8_T u8_param_set ; //0x0011 参数设置按钮
U8_T u8_history_alarm ; //0x0012 历史告警
U8_T u8_charge_record ; //0x0013 充电记录
U8_T u8_version_info ; //0x0014 版本信息
U8_T u8_cfg_system; //0x0015 系统参数配置
U8_T u8_cfg_pile_protect; //0x0016 充电桩保护参数配置
U8_T u8_cfg_network; //0x0017 网络参数配置
U8_T u8_cfg_module; //0x0018 模块参数配置
U8_T u8_cfg_reserve; //0x0019 预留参数配置
U8_T u8_cfg_other; //0x001A 其他参数配置
U8_T u8_real_data ; //0x002C 充电实时信息
U8_T u8_batt_data ; //0x002D 电池信息
U8_T u8_fee_info ; //0x0030 费率信息显示
U8_T u8_card_retry ; //0x0031 刷卡重试按钮
U8_T u8_charge_info_A ; //0x0032 A枪充电中实时信息界面
U8_T u8_charge_info_B ; //0x0033 B枪充电中实时信息界面
U8_T u8_card_return ; //0x0034 刷卡强制退出按钮
U8_T u8_card_info ; //0x002E 卡信息显示
U8_T u8_exit ; //0x0020 退出
U8_T u8_return ; //0x0021 返回
U8_T u8_page_up ; //0x0022 上一页
U8_T u8_page_down ; //0x0023 下一页
U8_T u8_confirm ; //0x0024 确认
}S_UI_TOUCH_CTRL;
typedef struct
{
U8_T u8_type; //字符串类型
U8_T u8_len;
U8_T u8_str[NUM_32];
}S_UI_STR_DATA;
typedef struct
{
S_UI_TOUCH_CTRL s_ui_touch_ctrl; //触控按钮
S_UI_STR_DATA s_ui_str_data; //字符串数据 默认同时只处理一包字符数据
//变量数据
}UI_CTRL_VAR_T;
typedef struct
{
U8_T u8_enable_flag; //液晶使能标志
U8_T u8_lalanguage_type; //0中文 1英文
U8_T u8_gunCnt; //枪数量
E_UI_ID_TYPE e_set_pic_id; //设置当前界面ID
E_UI_ID_TYPE e_previous_id; //上一页界面id
U8_T u8_jump_remark; //界面跳转传递的其他信息
U8_T u8_ret_pic_id; //从迪文屏读回来的当前显示的界面图片ID
U8_T u8_first_jump; //界面首次跳转标志 1为首次跳转 界面跳转时赋值
U8_T u8_gunNo; //控制枪号
U8_T u8_send_cnt; //数据发送条数
U16_T u16_outtime_cnt; //通信超时计数
U16_T u16_timer_cnt; //任务定时器计数 用于周期控制
ULONG ulong_timer; //跳转界面时间
U16_T u16_his_page; //历史记录页号(0=最新)
U8_T u8_his_inited; //历史记录界面初始化标志
UI_CTRL_VAR_T s_ui_ctrl_var; //触控变量
/** 在线鉴权失败/超时:经 v_flow_request_ui_idle_recover → v_ui_request_idle_screen_recover 置1UI 任务清0并回待机 */
U8_T u8_flow_idle_recover_req;
}S_UI_CTRL_DATA; //UI任务控制数据
/*------ Exported variables(变量定义) -------------------*/
/*------ Exported function prototypes (函数声明) -------*/
void v_ui_task(void *argument);
#ifdef __cplusplus
}
#endif
#endif /* UI_TASK_H */
/*
typedef struct
{
U8_T maintain_password[6]; //维护密码
U8_T user_password[6]; //充电密码
// U32_T IC_password; //IC卡密码
U8_T current_id; //当前界面ID
U8_T pic_id; //从迪文屏读回来的当前显示的界面图片ID
U8_T previous_id; //上一页界面id
U8_T previous_remark; //上一页界面跳转传递的其他信息
U8_T u8_first_flag; //界面首次跳转标志 1为首次跳转 界面跳转时赋值
ULONG ulong_timer; //跳转界面时间
//lyn20201031-默认值0,有效值=1
//从“充电实时数据/模块信息/查询费率/实时状态”这4个界面返回时置1;
//从“充电实时数据”界面因停止充电退出时,归0
//在首页进行检测,if(此值=1 且 流程状态=空闲/停止充电)则直接跳转至“充电实时数据”界面,以即时显示停止状态进行结算
U8_T u8_rate_index[3]; //上一界面、当前界面、下一界面初始费率位置
U8_T charging_return_flag;
U8_T current_gun_no;
UI_CTRL_VAR_T s_ui_ctrl_var; //触控变量
UI_CONF_VAR_T t_ui_conf_var; //可读写的数字变量
}UI_T;
*/