#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 置1;UI 任务清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; */