| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- #ifndef _LCDCOMM_H_DEF
- #define _LCDCOMM_H_DEF
- /*------------------------------- 头文件 --------------------------------------
- */
-
- /*------------------------------- 宏定义 --------------------------------------
- */
- enum
- {
- MAIN, // 主板
- FACE, // 面板
- GPRS, // GPRS
- PDA, // PDA
- PDA_MAINTAIN, // PDA维护
- HMI_COMM_TYPE,
- };
- enum
- {
- TEST_LED, // LED测试
- TEST_LCD, // LCD测试
- TEST_NUM,
- };
- enum
- {
- RMT_PAIR, // 遥控器配对
- RMT_CLRPAIR, // 遥控器清除配对
- RMT_SUM,
- };
- // H:横向,V:竖向,P:正序,N:负序
- enum
- {
- LCD_HP, // 横向正序
- LCD_HN, // 横向负序
- LCD_VP, // 竖向正序
- LCD_VN, // 竖向负序
- LCD_DISP_NUM,
- };
- #define FRAME_NUMBER 5 // 接收、发送帧缓冲区列表总数:5条
- #define UART_FRAME_LEN 256 // 单帧总长度
- #define HMI_RECV_EN() {GPIO_R485_OE1_OFF();}
- #define HMI_SEND_EN() {GPIO_R485_OE1_ON();}
- #define HMI_EN_INIT() {GPIO_R485_OE1_INIT();}
- #define SCREEN_LINE_BYTES 20 //屏幕每行字节数
- #define SCREEN_ROWS 5 //屏幕的共多少行
- #define SCREEN_BYTES (SCREEN_LINE_BYTES*SCREEN_ROWS)
- /*按键定义*/
- #define HA_KEY_ENTER 1
- #define HA_KEY_ESC 2
- #define HA_KEY_UP 3
- #define HA_KEY_DOWN 4
- #define HA_KEY_LEFT 5
- #define HA_KEY_RIGHT 6
- #define HA_KEY_ADD 7
- #define HA_KEY_SUB 8
- #define HA_KEY_RST 9 //区号
- #define NO_KEY 0xff
- #define KE_KEY_LONG_BIT (0x80)
- #define KE_KEY_MASK 0x7f
- /*hmi发来的命令*/
- #define HMI_CMD_POLL 0x00 /*查询命令*/
- #define HMI_CMD_INIT_LCD 0x01/*初始化lcd*/
- #define HMI_CMD_CLEAR_SCREEN 0x02/*清全屏*/
- #define HMI_CMD_WRITE_SINGLE 0x03/*写数据*/
- #define HMI_CMD_WRITE_DATAS 0x04/*写连续数据*/
- #define HMI_CMD_BLIGHT 0x08/*背光控制*/
- #define HMI_CMD_LED 0x09/*面板灯状态*/
- #define HMI_CMD_RATE 0x0A/*对比度设置*/
- #define HMI_CMD_WIRELESS 0x0B/*遥控器*/
- #define HMI_CMD_LEDRUN 0x0C/*跑马灯*/
- #define HMI_CMD_LCDRUN 0x0D/*LCD测试*/
- #define HMI_CMD_GPRS 0x0E /*GPRS*/
- #define HMI_CMD_DOWN 0x0F/*数据下载*/
- #define HMI_CMD_RESPOND 0x20// 响应面板帧
- #define DRV_CMD_TEMP 0x18 /*lcd驱动板上电报文*/
- #define DRV_CMD_POWERON 0x19 /*lcd驱动板上电报文*/
- #define DRV_CMD_KEY 0x1A /*lcd驱动板上送按键状态*/
- #define DRV_CMD_YX 0x1B /*遥信*/
- #define DRV_CMD_SET 0x1C /*定值*/
- #define DRV_CMD_YKQ 0x1D /*遥控器*/
- #define DRV_CMD_GPRS 0x1E/*GPRS*/
- #define DRV_CMD_DOWN 0x1F /*下载报文应答*/
- #define UART_FRAME_TYPE_Wireless 0x24 //遥控器运行模式
- #define UART_FRAME_TYPE_RM_TEST 0x25//遥控器测试
- #define LIGHT_ON 1
- #define LIGHT_OFF 0
- #define LCD_INTRUST_ADD 1
- #define LCD_INTRUST_SUB 0
- // #define LCD_KEY_MASK 0x07
- #define LCD_KEY_MASK 0x7f // modify by zhy 20201103 增加按键缓存个数
- #define LCD_KEY_MAX (LCD_KEY_MASK+1)
- /*发给驱动板的指令缓冲区*/
- // #define LCD_MAX_INST_MASK 0x07 //发给驱动板的指令最大缓冲个数
- #define LCD_MAX_INST_MASK 0x7f //发给驱动板的指令最大缓冲个数 modify by zhy 20201103 增加缓存命令个数
- #define LCD_MAX_INST_BUFS (LCD_MAX_INST_MASK+1) //发给驱动板的指令最大缓冲个数
- /*发给驱动板的数据定义*/
- #define LCD_MAX_CONTINUE_MASK 0x7f
- #define LCD_MAX_CONTINUE_BUFS (LCD_MAX_CONTINUE_MASK+1)
- #define UART_FRAME_MAXCNT 8 //最大帧数
- /*------------------------------ 类型结构 -------------------------------------
- */
- typedef struct LCD_KEY
- {
- BYTE tail;
- BYTE head;
- BYTE keybuf[LCD_KEY_MAX];
- }LCD_KEY_DEF;
- typedef struct INST //单个数据结构
- {
- BYTE cmd;
- BYTE len;
- BYTE para[UART_FRAME_LEN];
- }INST_DEF;
- typedef struct LCD_INST_BUF
- {
- BYTE tail;
- BYTE head;
- INST_DEF tInst[LCD_MAX_INST_BUFS];
- }LCD_INST_BUF_DEF;
- typedef struct CONTINUE_DATA //连续数据结构
- {
- BYTE x;
- BYTE y;
- BYTE attrib;
- BYTE dat[24];
- }CONTINUE_DATA_DEF;
- typedef struct CONTINUE_DATA_BUF //连续数据结构缓冲区
- {
- BYTE tail;
- BYTE head;
- BYTE index;
- CONTINUE_DATA_DEF tBuf[LCD_MAX_CONTINUE_BUFS];
- }CONTINUE_DATA_BUF_DEF;
- /*初始化状态定义*/
- typedef struct INIT_DATA
- {
- bool flag;
- BYTE para[10];
- }INIT_DEF;
- /*背光灯状态缓冲区*/
- typedef struct LIGHT
- {
- bool flag;
- BYTE light;
- }LIGHT_DEF;
- typedef struct LCDINTRUST
- {
- bool flag;
- BYTE byAddOrSub;
- }LCDINTRUST_DEF;
- typedef struct TELE
- {
- bool flag;
- BYTE cmd;
- }TELE_DEF;
- typedef struct LCD_COMM
- {
- bool bRecv;
- BYTE wait;
- BYTE ReSend;
- bool bClrScreen;
- bool bClrflag;
- bool b_init_OK;
- bool bVirLcd;
- bool bErrComm;
- bool bTestLed;
- bool bTestLcd;
- bool bTeleMatch;
- bool bTeleClrMatch;
- bool bLcdUpdate;
- bool bLedUpdate;
- BYTE ExtraCommNo; //外部通信端口
- DWORD dwTemprate;
- DWORD dWaitT;
- INIT_DEF tInit;
- LIGHT_DEF tLight;
- LCDINTRUST_DEF tLcdIntrust;
- LCD_INST_BUF_DEF tInstBuf;
- CONTINUE_DATA_BUF_DEF tContinue;
- LCD_KEY_DEF tKey;
- TELE_DEF tTele;
- bool bGps;
- BYTE arrGpsData[64];
- bool bCall;
- }LCD_COMM_DEF;
- struct hmi
- {
- u8 tail[2]; //接收、发送缓冲区存入帧位置
- u8 head[2]; //接收、发送缓冲区取出帧位置
- u8 num[2]; //接收、发送缓冲区有效帧数量
- u8 sendlen[FRAME_NUMBER]; //发送帧长度
- u8 recvbuf[FRAME_NUMBER][UART_FRAME_LEN];
- u8 sendbuf[FRAME_NUMBER][UART_FRAME_LEN];
- //考虑通道强占的情况
- };
- typedef struct UART_COMM
- {
- u8 cTypeCounter; //接受帧类型
- u8 cRecvLenth; //通道A 接收到数据计数器
- u8 cRecvCnt; //有效数据记数
- u8 cSendLenth;
- u8 cSendCnt;
- u8 sum;
- u8 recvsum;
- u8 bSend;
- u32 dTWait;
- u8 bData;
- u8 s_head;
- u8 s_tail;
- u8 s_buf[UART_FRAME_MAXCNT][UART_FRAME_LEN];
- u8 r_head;
- u8 r_tail;
- u8 r_buf[UART_FRAME_MAXCNT][UART_FRAME_LEN];
- }UART_COMM;
- /*------------------------------ 变量声明 -------------------------------------
- */
- extern DWORD dHMIDiStatus;
- extern LCD_COMM_DEF g_tLcdComm;
- extern UART_COMM g_tUartHMI;
- extern char m_TzCount[12];
- extern char m_HzCount[12];
- /*------------------------------ 函数声明 -------------------------------------
- */
- void Add_Continue_Data(BYTE x,BYTE y,BYTE *pdat,BYTE len,BYTE mode);
- void Add_Clear_Screen(void);
- void add_led_test(u8 test_no);
- BYTE Get_Key(void);
- void InitLcdComm(void);
- void HMI_Comm_App(void);
- void HMI_Board_Recv(int len,BYTE *para);
- void add_rmt_pair(u8 pair);
- int hzk_exit(void);
- #endif
|