#ifndef MES_H__ #define MES_H__ #include "type.h" #include #include //掩码 #define SWITCH_MASK_BIT_POWER_ALL 0x03 #define WIFI_STATUS_MASK 0x01 /*****************************打印 标志位以及数据 的时长 S 消息长度*************************************************/ #define DEBUG_STATUS_TIME 1000 //10S #define DEBUG_FLAG_TIME 500 //5S #define RECEIVE_MCU_PACKAGE_LENGTH 25 /*****************************模组数据包*****************************/ #if 1 #define WIFI_PACKAGE_HEAD 0xa55a // 接收wifi配置数据包的数据偏移 #define WIFI_CONTROL_DATA_OFFSET 8 //包头 #define SEND_WIFI_PACKAGE_HEAD_FIRST 0xa5 #define SEND_WIFI_PACKAGE_HEAD_SECOND 0x5a #define RECEIVE_WIFI_PACKAGE_HEAD_FIRST 0xa5 #define RECEIVE_WIFI_PACKAGE_HEAD_SECOND 0x5a #define SEND_MCU_PACKAGE_FIRST 0x5A #define SEND_MCU_PACKAGE_SECOND 0xA5 //版本 #define SEND_WIFI_PACKAGE_VERSION 0x01 #define RECEIVE_WIFI_PACKAGE_VERSION 0x01 //消息类型 #define RECEIVE_WIFI_PACKAGE_CONFIGURATION 0x01 #define RECEIVE_WIFI_PACKAGE_REQUEST 0x02 #define PACKAGE_ACK 0x03 #define SEND_WIFI_PACKAGE_TYPE_UPDATE 0x04 //上报、接收 模组 命令 #define SEND_WIFI_COMMAND 0x01 #define REVEIVE_WIFI_COMMAND 0x02 //子命令 //开关 #define SWITH_SUB_COMMAND 0x01 //模式 #define MODE_SUB_COMMAND 0x02 //童锁 #define CHILD_LOCK_SUB_COMMAND 0x03 //除菌 #define UV_SUB_COMMAND 0x04 //负离子 #define NEGATIVE_ION_SUB_COMMAND 0x05 //熄屏 #define SCREEN_OFF_SUB_COMMAND 0x06 //按键音 #define KEY_TONE_SUB_COMMAND 0x07 //滤芯状态 #define FILTER_STATUS_COMMAND 0x08 //PM2.5 #define PM2_5_SUB_COMMAND 0x09 //温湿度 #define TEMP_HUM_SUB_COMMAND 0x0A #define BUZZER_SUB_COMMAND 0x0A //档位 #define GEAR_SUB_COMMAND 0x0C //HCHO #define HCHO_SUB_COMMAND 0x0D //故障码 //上报全部状态 // ******模组心跳包 命令****** #define WIFI_HEARTBEAT_COMMAND 0x01 #define WIFI_HEARTBEAT_SUB_COMMAND 0x01 #endif /*****************************************自定义数据类型 记录数据 mcu数据包 模组数据包*************************************************/ //记录数据 typedef struct{ uint8_t wifi_status; uint8_t power_switch_t; uint8_t mode_t; uint8_t gear_mode_t; //manual, auto uint8_t fan_gear_t; uint16_t speed_t; uint8_t childlock_switch_t; uint8_t anion_switch_t; uint8_t uv_switch_t; uint8_t screen_switch_t; uint8_t keytone_switch_t; uint8_t filter1_door_t; uint8_t filter1_rate_t; uint16_t filter1_life_t; uint8_t filter1_alarm_t; int16_t hcho_value_t; uint8_t hcho_level_t; int16_t pm25_value_t; uint8_t pm25_level_t; int16_t temperature_t; int16_t humidity_t; uint8_t humidity_level_t; uint8_t air_quality_level_t; uint8_t on_hcho_value_t; uint8_t off_hcho_value_t; int16_t on_pm25_value_t; int16_t off_pm25_value_t; uint8_t auto_set_value_t; uint8_t standby_set_value_t; uint8_t work_status_t; }DEVICE_WORK_STATUS_T; //模组 数据包格式 typedef struct{ uint8_t package_head[2]; uint8_t package_version; uint8_t package_sequence; uint8_t package_type; uint8_t data_length; uint8_t command; uint8_t sub_command; // uint8_t data; }WIFI_PACKAGE; //与MCU通讯数据包 typedef struct { uint8_t mcu_head_package[2]; uint8_t length; uint8_t cmd; uint16_t address; } MCU_PACKAGE; //记录标志位 typedef struct{ }FALG; /************************************全局变量********************************************/ //记录数据 extern DEVICE_WORK_STATUS_T device_working_status_buff; extern volatile uint8_t var[58368]; // variable buffer /*****************************声明接口以及变量*******************************************/ extern void SendData_SCI1(uint8_t data); extern void SendData_SCI2(uint8_t data); extern void SendData_SCI3(uint8_t data); extern uint8_t comm_message_checksum(uint8_t * data, uint16_t len); extern void debug_status(void); extern void debug_flag(void); extern uint8_t CRC_Enable_Flag; extern int fputc(int ch, FILE *f); extern int send_mes_wifi(uint8_t * mes_buf , char mes_length); extern void LT_SendData_CRC_Frame(uint8_t *buf, uint8_t len); extern uint8_t send_mcu_package(uint8_t * buf ,uint8_t cmd , uint16_t adress ,uint16_t * data , uint8_t data_amount); extern void PIT2_Init(UINT16 arr); extern void PIT2_IRQHandler(void); extern uint8_t uart1_idle_flag; extern uint8_t uart3_idle_flag; extern uint8_t lt_buf[RECEIVE_MCU_PACKAGE_LENGTH]; extern uint8_t lt_buf_length; extern unsigned char all_flag ; extern unsigned char status_flag; extern uint8_t button_Press_flag ; // Other touch cannot act after the touch is pressed extern uint8_t button_Press_flag1 ; //用于组合键 变量调节 extern uint8_t button_Press_flag2 ; //用于组合键 按钮 extern uint8_t Basci_flag ; extern uint8_t Basci_flag1 ; extern uint8_t switch_flag ; //开关 标志位 extern uint8_t breath_flag ; //息屏标志位 extern uint8_t Adj_flag ; extern uint8_t Adj_flag1 ; extern uint8_t wind_flag ; // 风速标志位 extern uint8_t model_flag ; //模式标志位 extern uint8_t dehumidify_flag ;//湿度标志位 extern uint8_t one_two ; //判断是否是组合按键 0:单个 1:2个 变量调节 /***************/ extern uint8_t help_flag ; //帮助界面标志位 extern uint8_t Basic_help_flag ;//组合键 开关 标志位 extern uint8_t Adj_help_flag ; //组合键 风速 标志位 疑似用 风速标志位也可以 extern uint8_t illegal_flag; extern uint8_t one_two_touch ; //按钮标志位 确定几个按下 0 放开 1 一个触点 2 两个触点 extern volatile uint8_t var[58368]; extern uint8_t long_touch_flag; #endif