#include "mes.h" static uint8_t comm_package_sequence = 0; DEVICE_WORK_STATUS_T device_working_status_buff; /*********************************************/ //打印标志位 20S 观察 void debug_flag(void) { } //打印温湿度等数据 20S void debug_status(void) { } /****************MCU****************/ //封装MUC数据包 int send_mcu_package(char * data , char length) { } //拆解MCU数据包 int recev_mcu_package() { } // 面板变量变化 及时发送通知mcu(与mcu同步) //用串口1发送数据包给mcu int send_mes_mcu(char* mes_buf , char mes_length) { char mes_number = 0; for(mes_number=0; mes_number < mes_length ; mes_length++) { SendData_SCI1(mes_buf[mes_number]); } return 0; } /****************模组****************/ //封装模组数据包 返回长度 用于发送传参 //*buf : 缓存地址 length : 数据的长度 (字节) int send_wifi_package(uint8_t * buf ,uint8_t type, uint8_t cmd, uint8_t subCmd , char length , uint8_t *data) { WIFI_PACKAGE * wifi_package; uint8_t total_msg_len = sizeof(WIFI_PACKAGE)+length+1; memset(wifi_package,0,total_msg_len); wifi_package = (WIFI_PACKAGE *)buf; wifi_package->package_head[0]=SEND_WIFI_PACKAGE_HEAD_FIRST; wifi_package->package_head[1]=SEND_WIFI_PACKAGE_HEAD_SECOND; wifi_package->package_version=SEND_WIFI_PACKAGE_VERSION; wifi_package->package_sequence = comm_package_sequence++; wifi_package->package_type = type; wifi_package->data_length= length + 2; wifi_package->command = cmd; wifi_package->sub_command = subCmd; for(uint8_t data_number=0 ; data_number=receive_wifi_buf[WIFI_CONTROL_DATA_OFFSET+1]) ) { device_working_status_buff.filter1_life_t = receive_wifi_buf[WIFI_CONTROL_DATA_OFFSET+1]; } else { //打印!! 清空缓存 return -3; } //UI //上报MCU } //蜂鸣器 else if(sub_cmd==BUZZER_SUB_COMMAND) { //直接发送给mcu 蜂鸣 //UI //上报MCU } //档位 else if(sub_cmd==GEAR_SUB_COMMAND) { device_working_status_buff.fan_gear_t = receive_wifi_buf[WIFI_CONTROL_DATA_OFFSET]; //UI //上报MCU } else { //打印失败!! //清空缓存{********} return -3; } } } //*******请求包 0x02 ******* if(msg_type==RECEIVE_WIFI_PACKAGE_REQUEST) { } //清空缓存 考虑是否打印!!!! return 0; } // 面板变量变化 及时发送通知模组(与模组同步) //用串口3发送数据包给模组 int send_mes_wifi(char* mes_buf , char mes_length) { char mes_number = 0; for(mes_number=0; mes_number < mes_length ; mes_length++) { SendData_SCI3(mes_buf[mes_number]); } return 0; } //校验码 uint8_t comm_message_checksum(uint8_t * data, uint16_t len) { int16_t checkSum = 0; char *pBuf = (char *)data; uint16_t bufLen = len; for (int i = 0; i < bufLen; i++){ checkSum += pBuf[i]; } checkSum = checkSum % (0x100); return checkSum; } /*******************************************************************************************/ //UI 调整变量 /* address 变量地址 buf UI数据包地址 length 长度 */ int updata_ui_adj(uint16_t address , uint8_t * buf ,uint8_t length) { #if 0 addr =0x0010; // 童锁 if (addr <= 0x6FFF) // Variable area { // Save data 读取变量 for (j = 0; j < len; j++) { n = var[2 * (addr + j)]; m = var[2 * (addr + j) + 1]; } m++; m=m%2; len = (Test[0] - 2 - 3) / 2; for (j = 0; j < len; j++) { var[2 * (addr + j)] =n;//Test[4 + 2 * j];; //Test[4 + 2 * j]; var[2 * (addr + j)]; var[2 * (addr + j) + 1] = m;//Test[5 + 2 * j];//Test[5 + 2 * j]; var[2 * (addr + j) + 1]++ } } #endif uint16_t i = 0; uint32_t eflash_addr = 0, len = 0; // addr = address; //(buf[2] << 8) | buf[3]; if (CRC_Enable_Flag) len = (buf[0] - 2 - 3) / 2; else len = (buf[0] - 3) / 2; if (address <= 0x6FFF) // Variable area { // Save data for (i = 0; i < len; i++) { var[2 * (address + i)] = buf[4 + 2 * i]; var[2 * (address + i) + 1] = buf[5 + 2 * i]; } } /* 写eflash if (cmd == 0x61) { len = (buf[1] << 8) | buf[2]; eflash_addr = 0x804B000 + ((buf[4] << 24) | (buf[5] << 16) | (buf[6] << 8) | buf[7]); EFLASH_Init(g_sys_clk / 1000); EFLASH_SetWritePermission(); temp = EFLASH_Write(eflash_addr,&buf[8],len-7); EFLASH_ClrWritePermission(); rebuf[5] = cmd; rebuf[6] = buf[4]; rebuf[7] = buf[5]; rebuf[8] = buf[6]; rebuf[9] = buf[7]; rebuf[10] = 0x4F; rebuf[11] = 0x4B; LT_SendFlashData_CRC_Frame(rebuf, 7); } */ return 0 ; }