#include "upper_communication_protocol.h" #include #include #include "bt.h" #include "mem_pro.h" #include "delay.h" #include "readfromfpga.h" #include "mem_sizhu_log.h" #include "mem_parachange_sizhu_log.h" #include "mem_warning_sizhu_log.h" #include "data_interaction_DTU.h" #include "device_out_pluse.h" #include "mem_gprs_pro.h" #include "ValveControl.h" #include "third_telecom_mem_config.h" #include "third_telecom_mem_pro.h" #include "third_upper_communication_protocol.h" //u8 First_send_flag=1;// ÌØÊâ´¦Àí£¬ÓÉÓÚϵͳÊ×´ÎÆðÀ´µÚÒ»·¢ËÍÊý¾Ý»á¶ªÒ»¸ö×Ö½Ú£¬ËùÒÔÏÈ·¢ËÍÒ»¸öÎÞÓÃÊý¾Ý const unsigned char order_cmd4[7] = {0x01, 0x03, 0x02, 0x56, 0x78,0x87, 0xC6}; u8 BT_RS485_HANDLE_RX_BUFF[BT_RS485_RX_LENGTH]; static u16 RcvBufferlength; FLOW_DEVICE_SPECIAL_FUNCTION_INF_T flow_device_special_function_g; LOG_SIZHU_PC_RUN_T log_run_para_pc_g; COM_FRAME_INF_T com_frame_inf_g; UP_COM_RUN_PARA_T up_com_run_para_g; u8 log_send_buffer[SEND_BUFFER_LENGTH]; //ÈÕÖ¾Êý×é #define BUFFER_ARRAY_LENGTH 20 uint8_t log_data_buffer[BUFFER_ARRAY_LENGTH]; //#define OLD_PARA_BUFFER_LENGTH 100 uint8_t para_log_old_data_buffer[OLD_PARA_BUFFER_LENGTH]; //#define NEW_PARA_BUFFER_LENGTH 100 uint8_t para_log_new_data_buffer[NEW_PARA_BUFFER_LENGTH]; u16 save_data_num; void array_a_2_array_b(u8 * aA , u8 * aB, u16 len) { u16 index; u8 *ptra,*ptrb; ptra = aA; ptrb = aB; for(index = 0; index < len; index ++) { *ptrb = *ptra; ptrb ++; ptra ++; } } /****************************************** * func: BigSmallSwitch * desc: Êý×é´óС¶ËÇл»£¬»òÕß½Ð×öÊý×éµ¹Ðò£¬Ä¿Ç°×Ϊ8×Ö½Ú * input: aAÊý×éÖ¸Õ룬len ³¤¶È£¬²»´óÓÚ8 * output: aA´¦ÀíºÃµÄÊý×é * return: none *****************************************/ void BigSmallSwitch(u8 * aA , u16 len) { u16 index; u8 MidValue[8]; for(index = 0; index < len; index ++) { MidValue[index] = * (aA + index); } for(index = 0; index < len; index ++) { * (aA + index) = MidValue[len-1-index]; } } void PC_RS485__POWER_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = PC_RS485__POWER_EN_PIN_NUM; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(PC_RS485__POWER_EN_PIN_GROUP, &GPIO_InitStructure); // PC_RS485__POWER_OFF; GPIO_InitStructure.GPIO_Pin = PC_RS485BT_CON_EN_PIN_NUM; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(PC_RS485BT_CON_EN_PIN_GROUP, &GPIO_InitStructure); PC_RS485_EN = 0; } void BT_RS485_UART_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = BT_RS485_TX_PIN_NUM; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BT_RS485_TX_PIN_GROUP, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = BT_RS485_RX_PIN_NUM; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BT_RS485_RX_PIN_GROUP, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = BT_RS485_RESET_PIN_NUM; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(BT_RS485_RESET_PIN_GROUP, &GPIO_InitStructure); BT_RS485_RESET_LOW; } /*BT POWER*/ /****************************************** * func: BT_RS485_RECEIVE_PROCESS * desc: ´®¿Ú½ÓÊÕÊý¾Ý»ñÈ¡£¬ ´ÓDMAÖлñÈ¡´®¿ÚÊý¾Ý * input: aAÊý×éÖ¸Õ룬len ³¤¶È£¬²»´óÓÚ8 * output: aA´¦ÀíºÃµÄÊý×é * return: 1´ú±íÓÐÊý¾Ý£¬0´ú±íÎÞÊý¾Ý *****************************************/ u8 BT_RS485_RECEIVE_PROCESS( u16 * Rcv_data_len) { u16 temp; u16 time_out_cnt =0; *Rcv_data_len = BT_RS485_RX_LENGTH - DMA_GetCurrDataCounter(BT_RS485_DMARX_CH); delay_ms(2); temp = BT_RS485_RX_LENGTH - DMA_GetCurrDataCounter(BT_RS485_DMARX_CH); while(temp != (*Rcv_data_len)) { delay_ms(2); temp = BT_RS485_RX_LENGTH - DMA_GetCurrDataCounter(BT_RS485_DMARX_CH); delay_ms(2); *Rcv_data_len = BT_RS485_RX_LENGTH - DMA_GetCurrDataCounter(BT_RS485_DMARX_CH); time_out_cnt++; if(time_out_cnt>50) { break; } } if(Rcv_data_len) { array_a_2_array_b(BT_RX_BUFF, (u8 *)BT_RS485_HANDLE_RX_BUFF, *Rcv_data_len); memset(BT_RX_BUFF, 0, sizeof(BT_RX_BUFF)); DMA_Cmd(BT_RS485_DMARX_CH, DISABLE); DMA_SetCurrDataCounter(BT_DMARX_CH, BT_RS485_RX_LENGTH); DMA_Cmd(BT_RS485_DMARX_CH, ENABLE); } if(*Rcv_data_len > 0 ) return 1; else return 0; } /*УÑ麯Êý*/ u16 CRC_16( u8 *vptr, u16 len) { uint16_t TCPCRC = 0xffff; uint16_t POLYNOMIAL = 0xa001; uint16_t i, j; for (i = 0; i < len; i++) { TCPCRC ^= vptr[i] ; for (j = 0; j < 8; j++) { if ((TCPCRC & 0x0001) != 0) { TCPCRC >>= 1; TCPCRC ^= POLYNOMIAL; } else { TCPCRC >>= 1; } } } return TCPCRC; } //ÒÔÏÂÊDZê×¼ModbusµÄУÑ麯Êý´úÂ룬µ«ÊÇ·µ»ØÖµ¸ßµÍλ¸Ä¶¯ÁË(ÆúÓÃ) unsigned int GetCRC16_user(unsigned char *ptr, u16 len) //CRCУÑ麯Êý { unsigned int index; unsigned char crch = 0xFF; unsigned char crcl = 0xFF; unsigned char TabH[] = { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40 } ; unsigned char TabL[] = { 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 } ; while (len--) { index = crch ^ *ptr++; crch = crcl ^ TabH[ index]; crcl = TabL[ index]; } //return ((crch<<8) | crcl); return ((crcl<<8) | crch); //ÁÙʱ¸Ä»» 11-26 } /****************************************** * func: up_com_run_para_init * desc: ÉÏλͨѶÔËÐвÎÊý³õʼ»¯ * input: none * output: none * return: none *****************************************/ void up_com_run_para_init(void) { up_com_run_para_g.no_interaction_timeout_cnt = 0; v20_system_para_g.system_set_authorize_flag = 0; com_frame_inf_g.random_number = 0; //³¬Ê± Ëæ»úÂëÇåÁã } //µÇ¼֡´¦Àí void COM_Login_handle(u8 WriteOrRead,COM_FRAME_INF_T com_frame_receive_inf_in) { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 SetResult=0; u8 password_verif_result = 0; //1´ú±íÑéÖ¤³É¹¦ ,2´ú±í³§¼Ò´úÂëÎÞЧ 3´ú±íÃÜÂë´íÎó if(WriteOrRead==0) { if(com_frame_receive_inf_in.type_of_up_com==COM_FRAME_UP_TYPE_PC) //PC ÉÏλ»ú { if(com_frame_receive_inf_in.operation_level ==SUPPER_ADMIN) { //³¬¼¶¹ÜÀíÔ±£¬ÎÞÐèÑéÖ¤ password_verif_result =1; } else if(com_frame_receive_inf_in.operation_level ==MANAGE_USER) //¹ÜÀíÔ± { if((com_frame_receive_inf_in.manufacturer_code[0] ==equipment_basic_inf_g.manufactuer_code[0])&&(com_frame_receive_inf_in.manufacturer_code[1] == equipment_basic_inf_g.manufactuer_code[1])) { //³§¼Ò´úÂëÆ¥Å䣬ÏÂÃæÑéÖ¤ÃÜÂë if((com_frame_receive_inf_in.use_password[0] ==device_password_g.PC_manage_user_password[0])&&(com_frame_receive_inf_in.use_password[1] == device_password_g.PC_manage_user_password[1])) { //ÃÜÂëÑéÖ¤ÕýÈ· password_verif_result = 1; } else { password_verif_result =3; } } else { password_verif_result =2; } } else if(com_frame_receive_inf_in.operation_level ==ADVANCED_USER) //¸ß¼¶Óû§ { if((com_frame_receive_inf_in.manufacturer_code[0] ==equipment_basic_inf_g.manufactuer_code[0])&&(com_frame_receive_inf_in.manufacturer_code[1] == equipment_basic_inf_g.manufactuer_code[1])) { //³§¼Ò´úÂëÆ¥Å䣬ÏÂÃæÑéÖ¤ÃÜÂë if((com_frame_receive_inf_in.use_password[0] ==device_password_g.PC_advanced_user_password[0])&&(com_frame_receive_inf_in.use_password[1] == device_password_g.PC_advanced_user_password[1])) { //ÃÜÂëÑéÖ¤ÕýÈ· password_verif_result = 1; } else { password_verif_result =3; } } else { password_verif_result =2; } } else if(com_frame_receive_inf_in.operation_level ==GENERAL_USER)//ÆÕͨÓû§ { if((com_frame_receive_inf_in.manufacturer_code[0] ==equipment_basic_inf_g.manufactuer_code[0])&&(com_frame_receive_inf_in.manufacturer_code[1] == equipment_basic_inf_g.manufactuer_code[1])) { //³§¼Ò´úÂëÆ¥Å䣬ÏÂÃæÑéÖ¤ÃÜÂë if((com_frame_receive_inf_in.use_password[0] ==device_password_g.PC_general_user_password[0])&&(com_frame_receive_inf_in.use_password[1] == device_password_g.PC_general_user_password[1])) { //ÃÜÂëÑéÖ¤ÕýÈ· password_verif_result = 1; } else { password_verif_result =3; } } else { password_verif_result =2; } } }else if(com_frame_receive_inf_in.type_of_up_com==COM_FRAME_UP_TYPE_APP) //APP { if(com_frame_receive_inf_in.operation_level ==SUPPER_ADMIN) //APP²»ÁôÕâ¸ö¹¦ÄÜ { //³¬¼¶¹ÜÀíÔ±£¬ÎÞÐèÑéÖ¤ // password_verif_result =1; } else if(com_frame_receive_inf_in.operation_level ==MANAGE_USER) //¹ÜÀíÔ± { //if((com_frame_receive_inf_in.manufacturer_code[0] ==equipment_basic_inf_g.manufactuer_code[0])&&(com_frame_receive_inf_in.manufacturer_code[1] == equipment_basic_inf_g.manufactuer_code[1])) if(1) { //APP²»ÐèÒªÑéÖ¤³§¼Ò if((com_frame_receive_inf_in.use_password[0] ==device_password_g.APP_manage_user_password[0])&&(com_frame_receive_inf_in.use_password[1] == device_password_g.APP_manage_user_password[1])) { //ÃÜÂëÑéÖ¤ÕýÈ· password_verif_result = 1; } else { password_verif_result =3; } } else { password_verif_result =2; } } else if(com_frame_receive_inf_in.operation_level ==ADVANCED_USER) //¸ß¼¶Óû§ { if(1) { //APP²»ÐèÒªÑéÖ¤³§¼Ò if((com_frame_receive_inf_in.use_password[0] ==device_password_g.APP_advanced_user_password[0])&&(com_frame_receive_inf_in.use_password[1] == device_password_g.APP_advanced_user_password[1])) { //ÃÜÂëÑéÖ¤ÕýÈ· password_verif_result = 1; } else { password_verif_result =3; } } else { password_verif_result =2; } } else if(com_frame_receive_inf_in.operation_level ==GENERAL_USER)//ÆÕͨÓû§ { if(1) { //APP²»ÐèÒªÑéÖ¤³§¼Ò if((com_frame_receive_inf_in.use_password[0] ==device_password_g.APP_general_user_password[0])&&(com_frame_receive_inf_in.use_password[1] == device_password_g.APP_general_user_password[1])) { //ÃÜÂëÑéÖ¤ÕýÈ· password_verif_result = 1; } else { password_verif_result =3; } } else { password_verif_result =2; } } } if(password_verif_result ==1) { //ÃÜÂëÑéÖ¤³É¹¦£¬²úÉúËæ»úÂë com_frame_inf_g.random_number = rand(); if(com_frame_inf_g.random_number ==0) { com_frame_inf_g.random_number = rand(); if(com_frame_inf_g.random_number ==0) { com_frame_inf_g.random_number = 7788; } } } if((com_frame_receive_inf_in.type_of_up_com==COM_FRAME_UP_TYPE_PC)&&(com_frame_receive_inf_in.operation_level ==SUPPER_ADMIN)) { up_com_run_para_g.no_interaction_timeout_cnt = NO_INTERACTION_TIMEOUT_TIME; }else { up_com_run_para_g.no_interaction_timeout_cnt = NO_INTERACTION_TIMEOUT_TIME; } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_LOGIN; com_frame_inf_g.data_field_length =1; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = password_verif_result; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { } } //Í˳öµÇ¼֡´¦Àí void COM_Logout_handle(u8 WriteOrRead,COM_FRAME_INF_T com_frame_receive_inf_in) { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 SetResult=0; // u8 password_verif_result = 0; //1´ú±íÑéÖ¤³É¹¦ ,2´ú±í³§¼Ò´úÂëÎÞЧ 3´ú±íÃÜÂë´íÎó if(WriteOrRead==0) { //Ëæ»úÂë¸ø³õʼֵ0£¬Êµ¼ÊÑéÖ¤ÖУ¬Ëæ»úÂë0ÊÇÎÞЧµÄ com_frame_inf_g.random_number = 0; v20_system_para_g.system_set_authorize_flag = 0; } else if(WriteOrRead==1) { } } //É豸»ù´¡ÐÅÏ¢ÉèÖúͶÁÈ¡ void COM_equipment_basic_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; char charTemp[20]; u8 u8Temp; u8 changeFlag=0; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { /*É豸»ù´¡ÐÅÏ¢£¬É豸ÐòÁкÅ*/ arraya_2_arrayb((u8 *) &equipment_basic_inf_g.specification_model[0],(u8 *) &charTemp[0], 28); u8Temp = equipment_basic_inf_g.caliber_model; // equipment_basic_inf_g.equipment_type = 0x10; // equipment_basic_inf_g.product_type = UFG_TYPR_620; //02´ú±í620 // for(count_i =0;count_i<40;count_i++) // { // equipment_basic_inf_g.manufactuer_name[count_i] = 0; // } // equipment_basic_inf_g.manufactuer_code[0] = 0; // equipment_basic_inf_g.manufactuer_code[1] = 0; // for(count_i =0;count_i<20;count_i++) // { // equipment_basic_inf_g.specification_model[count_i] = 0; // } // equipment_basic_inf_g.caliber_model = DN50_TYPE; // equipment_basic_inf_g.serial_number[0] = 2; // equipment_basic_inf_g.serial_number[1] = 2; // equipment_basic_inf_g.serial_number[2] = 2; // equipment_basic_inf_g.serial_number[3] = 2; // equipment_basic_inf_g.serial_number[4] = 2; // equipment_basic_inf_g.serial_number[5] = 2; // equipment_basic_inf_g.serial_number[6] = 2; // equipment_basic_inf_g.serial_number[7] = 2; // // equipment_basic_inf_g.xinao_serial_number[0] ='Y'; // equipment_basic_inf_g.xinao_serial_number[1] ='Z'; // for(count_i =2;count_i<28;count_i++) // { // equipment_basic_inf_g.xinao_serial_number[count_i] = '1'; // } memcpy ( &equipment_basic_inf_g, DataPtr, EQUIPMENT_BASIC_INF_LENGTH); ///////////¿Ú¾¶ÐͺŷÖÎö£¬Èç¹ûÓб仯£¬°´ÕÕ¶ÔÓ¦±ä¸üĬÈÏÖµ////////////////////////////////////////////////////////// //µ¥Ë«Ïò if(strncmp(&equipment_basic_inf_g.specification_model[6],&charTemp[6], 2) !=0) { //µ¥Ë«Ïò¡¢±¾°²¸ô±¬Óбä¸ü if(equipment_basic_inf_g.specification_model[6]=='U') { //µ¥Ïò if(system_function_ctrl_word_g.fun_ctrl_word.bidirectional_measure == 1) //Ë«Ïò¼ÆÁ¿¿ª { //´ÓË«Ïò¸Ä³ÉÁ˵¥Ïò system_function_ctrl_word_g.fun_ctrl_word.bidirectional_measure = SYSTEM_SINGLE_BIT_SET0; system_function_ctrl_word_g.fun_ctrl_word.lcd_mode &=(~SFCW_LCD_BIDIRECTIONAL); eeprom_multiple_data_write((uint8_t *) &system_function_ctrl_word_g, SYSTEM_FUNCTION_CONTROL_WORD_ADDR, sizeof(SYSTEM_FUNCTION_CTRL_WORD_T) ); } }else if(equipment_basic_inf_g.specification_model[6]=='B') { //Ë«Ïò if(system_function_ctrl_word_g.fun_ctrl_word.bidirectional_measure == 1) //Ë«Ïò¼ÆÁ¿¿ª { }else { //´Óµ¥Ïò¸Ä³ÉÁËË«Ïò system_function_ctrl_word_g.fun_ctrl_word.bidirectional_measure = SYSTEM_SINGLE_BIT_SET1; system_function_ctrl_word_g.fun_ctrl_word.lcd_mode |= SFCW_LCD_BIDIRECTIONAL; eeprom_multiple_data_write((uint8_t *) &system_function_ctrl_word_g, SYSTEM_FUNCTION_CONTROL_WORD_ADDR, sizeof(SYSTEM_FUNCTION_CTRL_WORD_T) ); } } } //¿Ú¾¶£¬¿Ú¾¶¹ØÁªÁ÷Á¿ÉÏÏÂÏ޵ȡ¢¸ßƵÂö³åϵÊý changeFlag=0; if(strncmp(&equipment_basic_inf_g.specification_model[0],&charTemp[0], 6) !=0) { //²úÆ·ÀàÐͱä¸ü£¬¸ú¿Ú¾¶Ïà¹ØµÄ²ÎÊýÐèÒª×Ô¶¯¹ØÁª±ä¸ü changeFlag = 1; } if(strncmp(&equipment_basic_inf_g.specification_model[8],&charTemp[8], 3) !=0) { //¿Ú¾¶Óб仯£¬¸ú¿Ú¾¶Ïà¹ØµÄ²ÎÊýÐèÒª×Ô¶¯¹ØÁª±ä¸ü changeFlag = 1; } if(strncmp(&equipment_basic_inf_g.specification_model[0],"UFG620", 6) ==0) { if(cal_gas_para_g.ufg_type !=UFG_TYPR_620) { ultrasonic_sensor_abnormal_g.velocity_difference_threshold =50; eeprom_multiple_data_write((uint8_t *) &ultrasonic_sensor_abnormal_g, SONIC_SENSOR_ABNORMAL_PARAM_ADDR, sizeof(ULTRASONIC_SENSOR_ABNORMAL_T) ); } cal_gas_para_g.ufg_type = UFG_TYPR_620; equipment_basic_inf_g.product_type = UFG_TYPR_620; //02´ú±í620 } else if(strncmp(&equipment_basic_inf_g.specification_model[0],"UFG621", 6) ==0) { if(cal_gas_para_g.ufg_type !=UFG_TYPR_621) { ultrasonic_sensor_abnormal_g.velocity_difference_threshold =50; eeprom_multiple_data_write((uint8_t *) &ultrasonic_sensor_abnormal_g, SONIC_SENSOR_ABNORMAL_PARAM_ADDR, sizeof(ULTRASONIC_SENSOR_ABNORMAL_T) ); } cal_gas_para_g.ufg_type = UFG_TYPR_620; equipment_basic_inf_g.product_type = UFG_TYPR_621; //02´ú±í620 } else if(strncmp(&equipment_basic_inf_g.specification_model[0],"UFG630", 6) ==0) { if(cal_gas_para_g.ufg_type !=UFG_TYPR_630) { ultrasonic_sensor_abnormal_g.velocity_difference_threshold =150; eeprom_multiple_data_write((uint8_t *) &ultrasonic_sensor_abnormal_g, SONIC_SENSOR_ABNORMAL_PARAM_ADDR, sizeof(ULTRASONIC_SENSOR_ABNORMAL_T) ); } cal_gas_para_g.ufg_type = UFG_TYPR_630; equipment_basic_inf_g.product_type = UFG_TYPR_630; //08´ú±í630 } else if(strncmp(&equipment_basic_inf_g.specification_model[0],"UFG631", 6) ==0) { if(cal_gas_para_g.ufg_type !=UFG_TYPR_631) { ultrasonic_sensor_abnormal_g.velocity_difference_threshold =150; eeprom_multiple_data_write((uint8_t *) &ultrasonic_sensor_abnormal_g, SONIC_SENSOR_ABNORMAL_PARAM_ADDR, sizeof(ULTRASONIC_SENSOR_ABNORMAL_T) ); } cal_gas_para_g.ufg_type = UFG_TYPR_630; equipment_basic_inf_g.product_type = UFG_TYPR_631; //08´ú±í630 } else { // cal_gas_para_g.ufg_type = UFG_TYPR_620; // equipment_basic_inf_g.product_type = UFG_TYPR_620; //02´ú±í620 } if(strncmp(&equipment_basic_inf_g.specification_model[8],"025", 3) ==0) { equipment_basic_inf_g.caliber_model = DN25_TYPE; if(changeFlag==1) { flow_limit_g.flow_alarm_up_limit = DN25_MAX_FLOW * 0.9; flow_limit_g.flow_alarm_up_up_limit = DN25_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN25_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN25_FLOW_CUT_OFF; eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, sizeof(FLOW_LIMIT_T) ); high_pluse_para_out_g.high_pluse_para_out = HIGH_PLUSE_WORKING_INSTANTANEOUS_COEFFICIENT_DN25; high_pluse_para_out_g.high_pluse_para_out_mode = 1; eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR, sizeof(HIGH_PLUSE_PARA_OUT_T) ); } }else if(strncmp(&equipment_basic_inf_g.specification_model[8],"032", 3) ==0) { equipment_basic_inf_g.caliber_model = DN32_TYPE; if(changeFlag==1) { flow_limit_g.flow_alarm_up_limit = DN32_MAX_FLOW * 0.9; flow_limit_g.flow_alarm_up_up_limit = DN32_MAX_FLOW * 1.05; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN32_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN32_FLOW_CUT_OFF; eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, sizeof(FLOW_LIMIT_T) ); high_pluse_para_out_g.high_pluse_para_out = HIGH_PLUSE_WORKING_INSTANTANEOUS_COEFFICIENT_DN32; high_pluse_para_out_g.high_pluse_para_out_mode = 1; eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR, sizeof(HIGH_PLUSE_PARA_OUT_T) ); } }else if(strncmp(&equipment_basic_inf_g.specification_model[8],"040", 3) ==0) { equipment_basic_inf_g.caliber_model = DN40_TYPE; if(changeFlag==1) { flow_limit_g.flow_alarm_up_limit = DN40_MAX_FLOW * 0.9; flow_limit_g.flow_alarm_up_up_limit = DN40_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN40_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN40_FLOW_CUT_OFF; eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, sizeof(FLOW_LIMIT_T) ); high_pluse_para_out_g.high_pluse_para_out = HIGH_PLUSE_WORKING_INSTANTANEOUS_COEFFICIENT_DN40; high_pluse_para_out_g.high_pluse_para_out_mode = 1; eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR, sizeof(HIGH_PLUSE_PARA_OUT_T) ); } }else if(strncmp(&equipment_basic_inf_g.specification_model[8],"050", 3) ==0) { equipment_basic_inf_g.caliber_model = DN50_TYPE; if(changeFlag==1) { if(cal_gas_para_g.ufg_type == UFG_TYPR_630) { flow_limit_g.flow_alarm_up_limit = DN50_UFG630_MAX_FLOW * 0.9; flow_limit_g.flow_alarm_up_up_limit = DN50_UFG630_MAX_FLOW * 1.05; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN50_UFG630_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN50_UFG630_FLOW_CUT_OFF; }else { flow_limit_g.flow_alarm_up_limit = DN50_MAX_FLOW * 0.9 ; flow_limit_g.flow_alarm_up_up_limit = DN50_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN50_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN50_FLOW_CUT_OFF; } eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, sizeof(FLOW_LIMIT_T) ); high_pluse_para_out_g.high_pluse_para_out = HIGH_PLUSE_WORKING_INSTANTANEOUS_COEFFICIENT_DN50; high_pluse_para_out_g.high_pluse_para_out_mode = 1; eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR, sizeof(HIGH_PLUSE_PARA_OUT_T) ); } }else if(strncmp(&equipment_basic_inf_g.specification_model[8],"080", 3) ==0) { equipment_basic_inf_g.caliber_model = DN80_TYPE; if(changeFlag==1) { if(cal_gas_para_g.ufg_type == UFG_TYPR_630) { flow_limit_g.flow_alarm_up_limit = DN80_UFG630_MAX_FLOW * 0.9 ; flow_limit_g.flow_alarm_up_up_limit = DN80_UFG630_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN80_UFG630_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN80_UFG630_FLOW_CUT_OFF; }else { flow_limit_g.flow_alarm_up_limit = DN80_MAX_FLOW * 0.9 ; flow_limit_g.flow_alarm_up_up_limit = DN80_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN80_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN80_FLOW_CUT_OFF; } eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, sizeof(FLOW_LIMIT_T) ); high_pluse_para_out_g.high_pluse_para_out = HIGH_PLUSE_WORKING_INSTANTANEOUS_COEFFICIENT_DN80; high_pluse_para_out_g.high_pluse_para_out_mode = 1; eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR, sizeof(HIGH_PLUSE_PARA_OUT_T) ); } }else if(strncmp(&equipment_basic_inf_g.specification_model[8],"100", 3) ==0) { equipment_basic_inf_g.caliber_model = DN100_TYPE; if(changeFlag==1) { if(cal_gas_para_g.ufg_type == UFG_TYPR_630) { flow_limit_g.flow_alarm_up_limit = DN100_UFG630_MAX_FLOW * 0.9 ; flow_limit_g.flow_alarm_up_up_limit = DN100_UFG630_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN100_UFG630_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN100_UFG630_FLOW_CUT_OFF; }else { flow_limit_g.flow_alarm_up_limit = DN100_MAX_FLOW * 0.9 ; flow_limit_g.flow_alarm_up_up_limit = DN100_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN100_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN100_FLOW_CUT_OFF; } eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, sizeof(FLOW_LIMIT_T) ); high_pluse_para_out_g.high_pluse_para_out = HIGH_PLUSE_WORKING_INSTANTANEOUS_COEFFICIENT_DN100; high_pluse_para_out_g.high_pluse_para_out_mode = 1; eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR, sizeof(HIGH_PLUSE_PARA_OUT_T) ); } }else if(strncmp(&equipment_basic_inf_g.specification_model[8],"150", 3) ==0) { equipment_basic_inf_g.caliber_model = DN150_TYPE; if(changeFlag==1) { flow_limit_g.flow_alarm_up_limit = DN150_MAX_FLOW * 0.9; flow_limit_g.flow_alarm_up_up_limit = DN150_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN150_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN150_FLOW_CUT_OFF; eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, sizeof(FLOW_LIMIT_T) ); high_pluse_para_out_g.high_pluse_para_out = HIGH_PLUSE_WORKING_INSTANTANEOUS_COEFFICIENT_DN150; high_pluse_para_out_g.high_pluse_para_out_mode = 1; eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR, sizeof(HIGH_PLUSE_PARA_OUT_T) ); } }else if(strncmp(&equipment_basic_inf_g.specification_model[8],"200", 3) ==0) { equipment_basic_inf_g.caliber_model = DN200_TYPE; if(changeFlag==1) { flow_limit_g.flow_alarm_up_limit = DN200_MAX_FLOW * 0.9 ; flow_limit_g.flow_alarm_up_up_limit = DN200_MAX_FLOW * 1.05 ; flow_limit_g.flow_alarm_low_limit = 0; flow_limit_g.flow_up_up_limit_replace_value = DN200_MAX_FLOW * 1.2; flow_limit_g.flow_small_cut_off_value = DN200_FLOW_CUT_OFF; eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, sizeof(FLOW_LIMIT_T) ); high_pluse_para_out_g.high_pluse_para_out = HIGH_PLUSE_WORKING_INSTANTANEOUS_COEFFICIENT_DN200; high_pluse_para_out_g.high_pluse_para_out_mode = 1; eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR, sizeof(HIGH_PLUSE_PARA_OUT_T) ); } }else { } device_fgpa_para_init();//¿Ú¾¶ÉèÖÃÍêÐèÒª¸üвÎÊý //·ÅÔÚ¿Ú¾¶±ä¸üÖ®ºóÔÙ´æ´¢ eeprom_multiple_data_write((uint8_t *) &equipment_basic_inf_g, BASIC_INFORMATION_OF_EQUIPMENT_A_ADDR, EQUIPMENT_BASIC_INF_LENGTH ); eeprom_multiple_data_write((uint8_t *) &equipment_basic_inf_g, BASIC_INFORMATION_OF_EQUIPMENT_B_ADDR, EQUIPMENT_BASIC_INF_LENGTH ); eeprom_multiple_data_write((uint8_t *) &equipment_basic_inf_g, BASIC_INFORMATION_OF_EQUIPMENT_C_ADDR, EQUIPMENT_BASIC_INF_LENGTH ); arraya_2_arrayb((u8 *) &equipment_basic_inf_g.xinao_serial_number,(u8 *) ®DevxinaoSerialnum_p5.serialnum, 28); //ÓÃÓÚÊý¾Ý²É¼¯Ê±ÌṩµÄаÂ28λ±àºÅ£¬¼°Ê±¸üÐÂÊý¾Ý //ѹÁ¦ if(strncmp(&equipment_basic_inf_g.specification_model[11],&charTemp[11], 2) !=0) { //¿Ú¾¶Óб仯 if(strncmp(&equipment_basic_inf_g.specification_model[11],"05", 2) ==0) { pressure_para_set_g.pressure_para_b = 0; pressure_para_set_g.pressure_para_k = 1; pressure_para_set_g.pressure_measure_range_low = 70; pressure_para_set_g.pressure_measure_range_up = 500; pressure_para_set_g.pressure_up_limit = pressure_para_set_g.pressure_measure_range_up * 1.0; pressure_para_set_g.pressure_up_up_limit = pressure_para_set_g.pressure_measure_range_up * 1.2; pressure_para_set_g.pressure_low_limit = 70; pressure_para_set_g.pressure_low_low_limit =70; pressure_para_set_g.pressure_up_up_limit_replace_value = 101.32; eeprom_multiple_data_write((uint8_t *) &pressure_para_set_g, PRE_CONFIG_PARAM_ADDR, sizeof(PRESSURE_PARA_SET_T) ); }else if(strncmp(&equipment_basic_inf_g.specification_model[11],"10", 2) ==0) { pressure_para_set_g.pressure_para_b = 0; pressure_para_set_g.pressure_para_k = 1; pressure_para_set_g.pressure_measure_range_low = 70; pressure_para_set_g.pressure_measure_range_up = 1000; pressure_para_set_g.pressure_up_limit = pressure_para_set_g.pressure_measure_range_up * 1.0; pressure_para_set_g.pressure_up_up_limit = pressure_para_set_g.pressure_measure_range_up * 1.2; pressure_para_set_g.pressure_low_limit = 70; pressure_para_set_g.pressure_low_low_limit =70; pressure_para_set_g.pressure_up_up_limit_replace_value = 101.32; eeprom_multiple_data_write((uint8_t *) &pressure_para_set_g, PRE_CONFIG_PARAM_ADDR, sizeof(PRESSURE_PARA_SET_T) ); }else if(strncmp(&equipment_basic_inf_g.specification_model[11],"16", 2) ==0) { pressure_para_set_g.pressure_para_b = 0; pressure_para_set_g.pressure_para_k = 1; pressure_para_set_g.pressure_measure_range_low = 70; pressure_para_set_g.pressure_measure_range_up = 1600; pressure_para_set_g.pressure_up_limit = pressure_para_set_g.pressure_measure_range_up * 1.0; pressure_para_set_g.pressure_up_up_limit = pressure_para_set_g.pressure_measure_range_up * 1.2; pressure_para_set_g.pressure_low_limit = 70; pressure_para_set_g.pressure_low_low_limit =70; pressure_para_set_g.pressure_up_up_limit_replace_value = 101.32; eeprom_multiple_data_write((uint8_t *) &pressure_para_set_g, PRE_CONFIG_PARAM_ADDR, sizeof(PRESSURE_PARA_SET_T) ); }else { } } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); delay_ms(50); ufg620_System_Reset(); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =EQUIPMENT_BASIC_INF_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; memcpy ( &log_send_buffer[14], &equipment_basic_inf_g, EQUIPMENT_BASIC_INF_LENGTH); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //É豸ÈíÓ²¼þÐÅÏ¢¡ªÖ÷°å£¬ÉèÖúͶÁÈ¡ void COM_main_equipment_hardware_software_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &main_equipment_hardware_software_inf_g, DataPtr, 15); //¹Ì¼þ°æ±¾ºÅµÈÉèÖÃÎÞЧ eeprom_multiple_data_write((uint8_t *) &main_equipment_hardware_software_inf_g, MAIN_EQUIPM_HARDWARE_SOFTWARE_INFO_PARAM_ADDR, MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; memcpy ( &log_send_buffer[14], &main_equipment_hardware_software_inf_g, MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //É豸ÈíÓ²¼þÐÅÏ¢¡ªLCD°å£¬ÉèÖúͶÁÈ¡ void COM_lcd_equipment_hardware_software_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &lcd_equipment_hardware_software_inf_g, DataPtr, 15); eeprom_multiple_data_write((uint8_t *) &lcd_equipment_hardware_software_inf_g, LCD_EQUIPM_HARDWARE_SOFTWARE_INFO_PARAM_ADDR, LCD_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =LCD_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; memcpy ( &log_send_buffer[14], &lcd_equipment_hardware_software_inf_g, LCD_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //É豸ÈíÓ²¼þÐÅÏ¢¡ªÎÞÏ߰壬ÉèÖúͶÁÈ¡ void COM_wireless_equipment_hardware_software_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &wireless_equipment_hardware_software_inf_g, DataPtr, 15); eeprom_multiple_data_write((uint8_t *) &wireless_equipment_hardware_software_inf_g, WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INFO_PARAM_ADDR, WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; memcpy ( &log_send_buffer[14], &wireless_equipment_hardware_software_inf_g, WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //É豸ÈíÓ²¼þÐÅÏ¢¡ªÑ¹Á¦±äËÍÆ÷£¬ÉèÖúͶÁÈ¡ void COM_pre_equipment_hardware_software_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &pre_equipment_hardware_software_inf_g, DataPtr, 20); eeprom_multiple_data_write((uint8_t *) &pre_equipment_hardware_software_inf_g, PRE_EQUIPM_HARDWARE_SOFTWARE_INFO_PARAM_ADDR, PRE_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =PRE_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; memcpy ( &log_send_buffer[14], &pre_equipment_hardware_software_inf_g, PRE_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //É豸ÈíÓ²¼þÐÅÏ¢¡ªÎ¶ȱäËÍÆ÷£¬ÉèÖúͶÁÈ¡ void COM_tem_equipment_hardware_software_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &tem_equipment_hardware_software_inf_g, DataPtr, 20); eeprom_multiple_data_write((uint8_t *) &tem_equipment_hardware_software_inf_g, TEM_EQUIPM_HARDWARE_SOFTWARE_INFO_PARAM_ADDR, TEM_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =TEM_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; memcpy ( &log_send_buffer[14], &tem_equipment_hardware_software_inf_g, TEM_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //É豸ÈíÓ²¼þÐÅÏ¢¡ª³¬Éù²¨´«¸ÐÆ÷£¬ÉèÖúͶÁÈ¡ void COM_sonic_sensor_equipment_hardware_software_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &sonic_sensor_equipment_hardware_software_inf_g, DataPtr, SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); eeprom_multiple_data_write((uint8_t *) &sonic_sensor_equipment_hardware_software_inf_g, SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INFO_PARAM_ADDR, SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; memcpy ( &log_send_buffer[14], &sonic_sensor_equipment_hardware_software_inf_g, SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ʵʱ²ÎÊý void COM_realtime_data_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; float temp_flow_h; double temp_double=0; REALTIME_DATA_T realtime_data_s; LOG_SIZHU_CUMULATE_MODIFY_SAVE_T cumulate_modify_data_l; u8 para_change_flag =0; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { cumulate_modify_data_l.StandardGasUsageTotal_before = cal_gas_para_g.ctotal; cumulate_modify_data_l.WorkingGasUsageTotal_before = cal_gas_para_g.utotal; cumulate_modify_data_l.ReverseStandardGasUsageTotal_before = cal_gas_para_g.fanctotal; cumulate_modify_data_l.ReverseWorkingGasUsageTotal_before = cal_gas_para_g.fanutotal; NEW_arraya_2_arrayb(DataPtr,(u8 *)&cal_gas_para_g.ctotal,8,1); NEW_arraya_2_arrayb(DataPtr + 8,(u8 *)&cal_gas_para_g.utotal,8,1); NEW_arraya_2_arrayb(DataPtr + 16,(u8 *)&cal_gas_para_g.fanctotal,8,1); NEW_arraya_2_arrayb(DataPtr + 24,(u8 *)&cal_gas_para_g.fanutotal,8,1); NEW_arraya_2_arrayb(DataPtr + 32,(u8 *)&cal_gas_para_g.calibration_ctotal,8,1); NEW_arraya_2_arrayb(DataPtr + 40,(u8 *)&cal_gas_para_g.calibration_utotal,8,1); NEW_arraya_2_arrayb(DataPtr + 48,(u8 *)&cal_gas_para_g.error_ctotal,8,1); NEW_arraya_2_arrayb(DataPtr + 56,(u8 *)&cal_gas_para_g.error_utotal,8,1); NEW_arraya_2_arrayb(DataPtr + 64,(u8 *)&cal_gas_para_g.error_fan_ctotal,8,1); NEW_arraya_2_arrayb(DataPtr + 72,(u8 *)&cal_gas_para_g.error_fan_utotal,8,1); NEW_arraya_2_arrayb(DataPtr + 80,(u8 *)&cal_gas_para_g.residual_amount,8,1); NEW_arraya_2_arrayb(DataPtr + 88,(u8 *)&cal_gas_para_g.unit_price,4,1); NEW_arraya_2_arrayb(DataPtr + 96,(u8 *)&temp_flow_h,4,1); NEW_arraya_2_arrayb(DataPtr + 112,(u8 *)&sensor_g.temperature.temperature_average,4,1); NEW_arraya_2_arrayb(DataPtr + 124,(u8 *)&sensor_g.pressure.pressure_average,4,1); cal_gas_para_g.average_uvol = temp_flow_h /3600; //תΪÿÃëÁ÷Á¿ // realtime_data_s.standard_cumulative_flow = cal_gas_para_g.ctotal; // realtime_data_s.work_cumulative_flow = cal_gas_para_g.utotal; // realtime_data_s.reverse_standard_cumulative_flow = cal_gas_para_g.fanctotal; // realtime_data_s.reverse_work_cumulative_flow = cal_gas_para_g.fanutotal; // realtime_data_s.calibration_standard_cumulative_flow = cal_gas_para_g.calibration_ctotal; // realtime_data_s.calibration_work_cumulative_flow = cal_gas_para_g.calibration_utotal; // realtime_data_s.error_standard_cumulative_flow = cal_gas_para_g.error_ctotal; // realtime_data_s.error_work_cumulative_flow = cal_gas_para_g.error_utotal; // realtime_data_s.error_reverse_standard_cumulative_flow = cal_gas_para_g.error_fan_ctotal; // realtime_data_s.error_reverse_work_cumulative_flow = cal_gas_para_g.error_fan_utotal; // realtime_data_s.residual_amount = cal_gas_para_g.residual_amount; // realtime_data_s.unit_price = cal_gas_para_g.unit_price; // realtime_data_s.average_uvol = cal_gas_para_g.average_uvol; // realtime_data_s.average_medium_tem = sensor_g.temperature.temperature_average; // realtime_data_s.average_medium_pre = sensor_g.pressure.pressure_average; write_realtime_data_process(); // eeprom_multiple_data_write((uint8_t *) &sonic_sensor_equipment_hardware_software_inf_g, SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INFO_PARAM_ADDR, SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); cumulate_modify_data_l.StandardGasUsageTotal_after = cal_gas_para_g.ctotal; cumulate_modify_data_l.WorkingGasUsageTotal_after = cal_gas_para_g.utotal; cumulate_modify_data_l.ReverseStandardGasUsageTotal_after = cal_gas_para_g.fanctotal; cumulate_modify_data_l.ReverseWorkingGasUsageTotal_after = cal_gas_para_g.fanutotal; if(cumulate_modify_data_l.StandardGasUsageTotal_before !=cumulate_modify_data_l.StandardGasUsageTotal_after) { para_change_flag =1; low_pulse_out_para_check_fun(); } if(cumulate_modify_data_l.WorkingGasUsageTotal_before !=cumulate_modify_data_l.WorkingGasUsageTotal_after) { para_change_flag =1; } if(cumulate_modify_data_l.ReverseStandardGasUsageTotal_before !=cumulate_modify_data_l.ReverseStandardGasUsageTotal_after) { para_change_flag =1; } if(cumulate_modify_data_l.ReverseWorkingGasUsageTotal_before !=cumulate_modify_data_l.ReverseWorkingGasUsageTotal_after) { para_change_flag =1; } if(para_change_flag==1) { //±£´æÐ޸ļǼ cumulate_modify_data_l.serial_number = 0; cumulate_modify_data_l.modify_source = 1; cumulate_modify_data_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); cumulate_modify_data_l.Sample_month = HEX2BCD(calendar.month); cumulate_modify_data_l.Sample_day = HEX2BCD(calendar.date); cumulate_modify_data_l.Sample_hour = HEX2BCD(calendar.hour); cumulate_modify_data_l.Sample_min = HEX2BCD(calendar.min); cumulate_modify_data_l.Sample_sec = HEX2BCD(calendar.sec); cumulate_modify_data_l.para_modify_id = 1; ufg620_para_change_log_record_save(PARM_MODIFY_ID_CUMULATE,(uint8_t *)& cumulate_modify_data_l); } if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_cumulate_amend == 1) { if(alarm_report_para_g.cumulate_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; // memcpy ( &log_send_buffer[14], &sonic_sensor_equipment_hardware_software_inf_g, SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.ctotal,&log_send_buffer[14],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.utotal,&log_send_buffer[22],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.fanctotal,&log_send_buffer[30],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.fanutotal,&log_send_buffer[38],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.calibration_ctotal,&log_send_buffer[46],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.calibration_utotal,&log_send_buffer[54],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.error_ctotal,&log_send_buffer[62],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.error_utotal,&log_send_buffer[70],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.error_fan_ctotal,&log_send_buffer[78],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.error_fan_utotal,&log_send_buffer[86],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.residual_amount,&log_send_buffer[94],8,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.unit_price,&log_send_buffer[102],4,1); temp_flow_h = cal_gas_para_g.signed_uvol * 3600; //תΪСʱÁ÷Á¿ NEW_arraya_2_arrayb((u8 *)&temp_flow_h,&log_send_buffer[106],4,1); temp_flow_h = cal_gas_para_g.average_uvol * 3600; //תΪСʱÁ÷Á¿ NEW_arraya_2_arrayb((u8 *)&temp_flow_h,&log_send_buffer[110],4,1); temp_flow_h = cal_gas_para_g.signed_cvol * 3600; //תΪСʱÁ÷Á¿ NEW_arraya_2_arrayb((u8 *)&temp_flow_h,&log_send_buffer[114],4,1); NEW_arraya_2_arrayb((u8 *)&sensor_g.temperature.temperature,&log_send_buffer[118],4,1); NEW_arraya_2_arrayb((u8 *)&sensor_g.temperature.temperature_correction,&log_send_buffer[122],4,1); NEW_arraya_2_arrayb((u8 *)&sensor_g.temperature.temperature_average,&log_send_buffer[126],4,1); NEW_arraya_2_arrayb((u8 *)&sensor_g.pressure.pressure,&log_send_buffer[130],4,1); NEW_arraya_2_arrayb((u8 *)&sensor_g.pressure.pressure_correction,&log_send_buffer[134],4,1); NEW_arraya_2_arrayb((u8 *)&sensor_g.pressure.pressure_average,&log_send_buffer[138],4,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.gas_get_factor,&log_send_buffer[142],4,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.C_coe,&log_send_buffer[146],4,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.K_coe,&log_send_buffer[150],4,1); log_send_buffer[154] = HEX2BCD((u8)(calendar.year-2000)); log_send_buffer[155] = HEX2BCD(calendar.month); log_send_buffer[156] = HEX2BCD(calendar.date); log_send_buffer[157] = HEX2BCD(calendar.hour); log_send_buffer[158] = HEX2BCD(calendar.min); log_send_buffer[159] = HEX2BCD(calendar.sec); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.ambient_temperature,&log_send_buffer[160],4,1); log_send_buffer[164] = v20_system_para_g.system_bat_power *0.1; log_send_buffer[165] = v20_system_para_g.system_bat_power *0.1; NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.up_sound_timea,&log_send_buffer[166],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.up_sound_timeb,&log_send_buffer[170],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.down_sound_timea,&log_send_buffer[174],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.down_sound_timeb,&log_send_buffer[178],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.mid_sound_timea,&log_send_buffer[182],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.mid_sound_timeb,&log_send_buffer[186],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.up_sound_time_difference,&log_send_buffer[190],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.down_sound_time_difference,&log_send_buffer[194],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.mid_sound_time_difference,&log_send_buffer[198],4,1); log_send_buffer[202] = flow_device_detection_g.upstrea; log_send_buffer[203] = flow_device_detection_g.upstreb; log_send_buffer[204] = flow_device_detection_g.downstrea; log_send_buffer[205] = flow_device_detection_g.downstreb; log_send_buffer[206] = flow_device_detection_g.midstrea; log_send_buffer[207] = flow_device_detection_g.midstreb; log_send_buffer[208] = flow_device_detection_g.upgaina; log_send_buffer[209] = flow_device_detection_g.upgainb; log_send_buffer[210] = flow_device_detection_g.downgaina; log_send_buffer[211] = flow_device_detection_g.downgainb; log_send_buffer[212] = flow_device_detection_g.midgaina; log_send_buffer[213] = flow_device_detection_g.midgainb; NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.upsnra,&log_send_buffer[214],2,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.upsnrb,&log_send_buffer[216],2,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.downsnra,&log_send_buffer[218],2,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.downsnrb,&log_send_buffer[220],2,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.midsnra,&log_send_buffer[222],2,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.midsnrb,&log_send_buffer[224],2,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.up_vec,&log_send_buffer[226],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.down_vec,&log_send_buffer[230],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.mid_vec,&log_send_buffer[234],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.up_working_instantaneous_flow,&log_send_buffer[238],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.down_working_instantaneous_flow,&log_send_buffer[242],4,1); NEW_arraya_2_arrayb((u8 *)&flow_device_detection_g.mid_working_instantaneous_flow,&log_send_buffer[246],4,1); NEW_arraya_2_arrayb((u8 *)&cal_gas_para_g.synthetic_sound_velocity,&log_send_buffer[250],4,1); log_send_buffer[254] = flow_device_detection_g.uptriglevela; log_send_buffer[255] = flow_device_detection_g.uptriglevelb; log_send_buffer[256] = flow_device_detection_g.downtriglevela; log_send_buffer[257] = flow_device_detection_g.downtriglevelb; log_send_buffer[258] = flow_device_detection_g.midtriglevela; log_send_buffer[259] = flow_device_detection_g.midtriglevelb; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ͳ¼Æ²ÎÊý void COM_statistical_data_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; float temp_flow_h; double temp_double=0; REALTIME_DATA_T realtime_data_s; LOG_SIZHU_CUMULATE_MODIFY_SAVE_T cumulate_modify_data_l; u8 para_change_flag =0; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { // delay_ms(50); // ufg620_System_Reset(); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =STATISTICAL_DATA_T_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_hour_work_cumulative_flow,&log_send_buffer[14],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_hour_standard_cumulative_flow,&log_send_buffer[22],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_hour_work_cumulative_flow,&log_send_buffer[30],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_hour_standard_cumulative_flow,&log_send_buffer[38],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_day_work_cumulative_flow,&log_send_buffer[46],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_day_standard_cumulative_flow,&log_send_buffer[54],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_day_work_cumulative_flow,&log_send_buffer[62],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_day_standard_cumulative_flow,&log_send_buffer[70],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_month_work_cumulative_flow,&log_send_buffer[78],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_month_standard_cumulative_flow,&log_send_buffer[86],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_month_work_cumulative_flow,&log_send_buffer[94],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_month_standard_cumulative_flow,&log_send_buffer[102],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_hour_reverse_work_cumulative_flow,&log_send_buffer[110],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_hour_reverse_standard_cumulative_flow,&log_send_buffer[118],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_hour_reverse_work_cumulative_flow,&log_send_buffer[126],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_hour_reverse_standard_cumulative_flow,&log_send_buffer[134],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_day_reverse_work_cumulative_flow,&log_send_buffer[142],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_day_reverse_standard_cumulative_flow,&log_send_buffer[150],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_day_reverse_work_cumulative_flow,&log_send_buffer[158],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_day_reverse_standard_cumulative_flow,&log_send_buffer[166],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_month_reverse_work_cumulative_flow,&log_send_buffer[174],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.current_month_reverse_standard_cumulative_flow,&log_send_buffer[182],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_month_reverse_work_cumulative_flow,&log_send_buffer[190],8,1); NEW_arraya_2_arrayb((u8 *)&statistical_data_g.last_month_reverse_standard_cumulative_flow,&log_send_buffer[198],8,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //̽ͷУ׼²ÎÊý£¬ÉèÖúͶÁÈ¡ void COM_device_size_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; // DEVICE_SIZE_INF_T device_size_in; LOG_SIZHU_SONIC_SENSOR_CALIBRATION_MODIFY_SAVE_T sonic_sensor_calibration_modify_para_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_distance_before, &device_size_inf_g.device_size_mid_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_distance_before, &device_size_inf_g.device_size_up_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_distance_before, &device_size_inf_g.device_size_down_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timea_before, &device_size_inf_g.device_size_mid_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timeb_before, &device_size_inf_g.device_size_mid_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timea_before, &device_size_inf_g.device_size_up_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timeb_before, &device_size_inf_g.device_size_up_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timea_before, &device_size_inf_g.device_size_down_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timeb_before, &device_size_inf_g.device_size_down_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.set_sound_value_before, &device_size_inf_g.set_sound_value, 4); sonic_sensor_calibration_modify_para_l.set_mode_before = device_size_inf_g.set_mode; memcpy ( &sonic_sensor_calibration_modify_para_l.mid_sound_levela1_before, &ultrasonic_sensor_trige_level_g.mid_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.mid_sound_levelb1_before, &ultrasonic_sensor_trige_level_g.mid_sound_levelb1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.up_sound_levela1_before, &ultrasonic_sensor_trige_level_g.up_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.up_sound_levelb1_before, &ultrasonic_sensor_trige_level_g.up_sound_levelb1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.down_sound_levela1_before, &ultrasonic_sensor_trige_level_g.down_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.down_sound_levelb1_before, &ultrasonic_sensor_trige_level_g.down_sound_levelb1, 2); sonic_sensor_calibration_modify_para_l.trigger_level_up_limit_before = 0; sonic_sensor_calibration_modify_para_l.trigger_level_low_limit_before = 0; //memcpy ( &device_size_inf_g, DataPtr, DEVICE_SIZE_INF_LENGTH); NEW_arraya_2_arrayb(DataPtr,(u8 *)&device_size_inf_g.device_size_mid_distance,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&device_size_inf_g.device_size_up_distance,4,1); NEW_arraya_2_arrayb(DataPtr+8,(u8 *)&device_size_inf_g.device_size_down_distance,4,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&device_size_inf_g.device_size_mid_reimbursed_timea,4,1); NEW_arraya_2_arrayb(DataPtr+16,(u8 *)&device_size_inf_g.device_size_mid_reimbursed_timeb,4,1); NEW_arraya_2_arrayb(DataPtr+20,(u8 *)&device_size_inf_g.device_size_up_reimbursed_timea,4,1); NEW_arraya_2_arrayb(DataPtr+24,(u8 *)&device_size_inf_g.device_size_up_reimbursed_timeb,4,1); NEW_arraya_2_arrayb(DataPtr+28,(u8 *)&device_size_inf_g.device_size_down_reimbursed_timea,4,1); NEW_arraya_2_arrayb(DataPtr+32,(u8 *)&device_size_inf_g.device_size_down_reimbursed_timeb,4,1); NEW_arraya_2_arrayb(DataPtr+36,(u8 *)&device_size_inf_g.set_sound_value,4,1); device_size_inf_g.set_mode = *( DataPtr+40); IWDG_Feed(); WD_GPIO_diff /*¼ÆËã²¹³¥Ê±¼ä*/ if(device_size_inf_g.set_mode == 1) { system_para_control_run_g.device_size_mid_distance = device_size_inf_g.device_size_mid_distance * 1000; system_para_control_run_g.device_size_up_distance = device_size_inf_g.device_size_up_distance * 1000; system_para_control_run_g.device_size_down_distance = device_size_inf_g.device_size_down_distance *1000; device_size_inf_g.device_size_mid_reimbursed_timea = (system_para_control_run_g.device_size_mid_distance / device_size_inf_g.set_sound_value) - system_para_rv_g.flow_time[MID_TRIG_A]; device_size_inf_g.device_size_mid_reimbursed_timeb = (system_para_control_run_g.device_size_mid_distance / device_size_inf_g.set_sound_value) - system_para_rv_g.flow_time[MID_TRIG_B]; device_size_inf_g.device_size_up_reimbursed_timea = (system_para_control_run_g.device_size_up_distance / device_size_inf_g.set_sound_value) - system_para_rv_g.flow_time[A_TRIG_1]; device_size_inf_g.device_size_up_reimbursed_timeb = (system_para_control_run_g.device_size_up_distance / device_size_inf_g.set_sound_value) - system_para_rv_g.flow_time[B_TRIG_1]; device_size_inf_g.device_size_down_reimbursed_timea = (system_para_control_run_g.device_size_down_distance / device_size_inf_g.set_sound_value) - system_para_rv_g.flow_time[A_TRIG_2]; device_size_inf_g.device_size_down_reimbursed_timeb = (system_para_control_run_g.device_size_down_distance / device_size_inf_g.set_sound_value) - system_para_rv_g.flow_time[B_TRIG_2]; eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_A_ADDR, sizeof(DEVICE_SIZE_INF_T) ); eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_B_ADDR, sizeof(DEVICE_SIZE_INF_T) ); eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_C_ADDR, sizeof(DEVICE_SIZE_INF_T) ); }else if(device_size_inf_g.set_mode == 2) { system_para_control_run_g.device_size_mid_distance = device_size_inf_g.device_size_mid_distance * 1000; system_para_control_run_g.device_size_up_distance = device_size_inf_g.device_size_up_distance * 1000; system_para_control_run_g.device_size_down_distance = device_size_inf_g.device_size_down_distance *1000; device_size_inf_g.device_size_mid_reimbursed_timea = sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timea_before; device_size_inf_g.device_size_mid_reimbursed_timeb = sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timeb_before; device_size_inf_g.device_size_up_reimbursed_timea = sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timea_before; device_size_inf_g.device_size_up_reimbursed_timeb = sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timeb_before; device_size_inf_g.device_size_down_reimbursed_timea = sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timea_before; device_size_inf_g.device_size_down_reimbursed_timeb = sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timeb_before; eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_A_ADDR, sizeof(DEVICE_SIZE_INF_T) ); eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_B_ADDR, sizeof(DEVICE_SIZE_INF_T) ); eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_C_ADDR, sizeof(DEVICE_SIZE_INF_T) ); }else if(device_size_inf_g.set_mode == 3) { device_size_inf_g.device_size_mid_distance = sonic_sensor_calibration_modify_para_l.device_size_mid_distance_before; device_size_inf_g.device_size_up_distance = sonic_sensor_calibration_modify_para_l.device_size_up_distance_before; device_size_inf_g.device_size_down_distance = sonic_sensor_calibration_modify_para_l.device_size_down_distance_before; eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_A_ADDR, sizeof(DEVICE_SIZE_INF_T) ); eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_B_ADDR, sizeof(DEVICE_SIZE_INF_T) ); eeprom_multiple_data_write((uint8_t *) &device_size_inf_g, SONIC_CALIBRATION_PARAM_C_ADDR, sizeof(DEVICE_SIZE_INF_T) ); } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ sonic_sensor_calibration_modify_para_l.serial_number = 0; sonic_sensor_calibration_modify_para_l.modify_source = 1; sonic_sensor_calibration_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); sonic_sensor_calibration_modify_para_l.Sample_month = HEX2BCD(calendar.month); sonic_sensor_calibration_modify_para_l.Sample_day = HEX2BCD(calendar.date); sonic_sensor_calibration_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); sonic_sensor_calibration_modify_para_l.Sample_min = HEX2BCD(calendar.min); sonic_sensor_calibration_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); sonic_sensor_calibration_modify_para_l.para_modify_id = 8; memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_distance_after, &device_size_inf_g.device_size_mid_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_distance_after, &device_size_inf_g.device_size_up_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_distance_after, &device_size_inf_g.device_size_down_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timea_after, &device_size_inf_g.device_size_mid_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timeb_after, &device_size_inf_g.device_size_mid_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timea_after, &device_size_inf_g.device_size_up_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timeb_after, &device_size_inf_g.device_size_up_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timea_after, &device_size_inf_g.device_size_down_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timeb_after, &device_size_inf_g.device_size_down_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.set_sound_value_after, &device_size_inf_g.set_sound_value, 4); sonic_sensor_calibration_modify_para_l.set_mode_after = device_size_inf_g.set_mode; memcpy ( &sonic_sensor_calibration_modify_para_l.mid_sound_levela1_after, &ultrasonic_sensor_trige_level_g.mid_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.mid_sound_levelb1_after, &ultrasonic_sensor_trige_level_g.mid_sound_levelb1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.up_sound_levela1_after, &ultrasonic_sensor_trige_level_g.up_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.up_sound_levelb1_after, &ultrasonic_sensor_trige_level_g.up_sound_levelb1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.down_sound_levela1_after, &ultrasonic_sensor_trige_level_g.down_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.down_sound_levelb1_after, &ultrasonic_sensor_trige_level_g.down_sound_levelb1, 2); sonic_sensor_calibration_modify_para_l.trigger_level_up_limit_after = 0; sonic_sensor_calibration_modify_para_l.trigger_level_low_limit_after = 0; ufg620_para_change_log_record_save(PARM_MODIFY_ID_SONIC_SENSOR_CALIBRATION,(uint8_t *)& sonic_sensor_calibration_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.ut_cal_amend == 1) { if(alarm_report_para_g.sonic_sensor_calibration_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; //memcpy ( &log_send_buffer[14], &device_size_inf_g, DEVICE_SIZE_INF_LENGTH); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_mid_distance,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_up_distance,&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_down_distance,&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_mid_reimbursed_timea,&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_mid_reimbursed_timeb,&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_up_reimbursed_timea,&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_up_reimbursed_timeb,&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_down_reimbursed_timea,&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.device_size_down_reimbursed_timeb,&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&device_size_inf_g.set_sound_value,&log_send_buffer[50],4,1); log_send_buffer[54] = device_size_inf_g.set_mode; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //´¥·¢ÏßÉèÖà void COM_ultrasonic_sensor_trige_level_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_SONIC_SENSOR_CALIBRATION_MODIFY_SAVE_T sonic_sensor_calibration_modify_para_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_distance_before, &device_size_inf_g.device_size_mid_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_distance_before, &device_size_inf_g.device_size_up_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_distance_before, &device_size_inf_g.device_size_down_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timea_before, &device_size_inf_g.device_size_mid_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timeb_before, &device_size_inf_g.device_size_mid_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timea_before, &device_size_inf_g.device_size_up_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timeb_before, &device_size_inf_g.device_size_up_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timea_before, &device_size_inf_g.device_size_down_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timeb_before, &device_size_inf_g.device_size_down_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.set_sound_value_before, &device_size_inf_g.set_sound_value, 4); sonic_sensor_calibration_modify_para_l.set_mode_before = device_size_inf_g.set_mode; memcpy ( &sonic_sensor_calibration_modify_para_l.mid_sound_levela1_before, &ultrasonic_sensor_trige_level_g.mid_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.mid_sound_levelb1_before, &ultrasonic_sensor_trige_level_g.mid_sound_levelb1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.up_sound_levela1_before, &ultrasonic_sensor_trige_level_g.up_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.up_sound_levelb1_before, &ultrasonic_sensor_trige_level_g.up_sound_levelb1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.down_sound_levela1_before, &ultrasonic_sensor_trige_level_g.down_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.down_sound_levelb1_before, &ultrasonic_sensor_trige_level_g.down_sound_levelb1, 2); sonic_sensor_calibration_modify_para_l.trigger_level_up_limit_before = 0; sonic_sensor_calibration_modify_para_l.trigger_level_low_limit_before = 0; //memcpy ( &ultrasonic_sensor_trige_level_g, DataPtr, ULTRASONIC_SENSOR_TRIGE_LEVEL_LENGTH); NEW_arraya_2_arrayb(DataPtr,(u8 *)&ultrasonic_sensor_trige_level_g.mid_sound_levela1,2,1); NEW_arraya_2_arrayb(DataPtr + 2,(u8 *)&ultrasonic_sensor_trige_level_g.mid_sound_levelb1,2,1); NEW_arraya_2_arrayb(DataPtr + 4,(u8 *)&ultrasonic_sensor_trige_level_g.up_sound_levela1,2,1); NEW_arraya_2_arrayb(DataPtr + 6,(u8 *)&ultrasonic_sensor_trige_level_g.up_sound_levelb1,2,1); NEW_arraya_2_arrayb(DataPtr + 8,(u8 *)&ultrasonic_sensor_trige_level_g.down_sound_levela1,2,1); NEW_arraya_2_arrayb(DataPtr + 10,(u8 *)&ultrasonic_sensor_trige_level_g.down_sound_levelb1,2,1); eeprom_multiple_data_write((uint8_t *) &ultrasonic_sensor_trige_level_g, THRESHOLD_SET_PARAM_A_ADDR, sizeof(ULTRASONIC_SENSOR_TRIGE_LEVEL_T) ); eeprom_multiple_data_write((uint8_t *) &ultrasonic_sensor_trige_level_g, THRESHOLD_SET_PARAM_B_ADDR, sizeof(ULTRASONIC_SENSOR_TRIGE_LEVEL_T) ); eeprom_multiple_data_write((uint8_t *) &ultrasonic_sensor_trige_level_g, THRESHOLD_SET_PARAM_C_ADDR, sizeof(ULTRASONIC_SENSOR_TRIGE_LEVEL_T) ); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ sonic_sensor_calibration_modify_para_l.serial_number = 0; sonic_sensor_calibration_modify_para_l.modify_source = 1; sonic_sensor_calibration_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); sonic_sensor_calibration_modify_para_l.Sample_month = HEX2BCD(calendar.month); sonic_sensor_calibration_modify_para_l.Sample_day = HEX2BCD(calendar.date); sonic_sensor_calibration_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); sonic_sensor_calibration_modify_para_l.Sample_min = HEX2BCD(calendar.min); sonic_sensor_calibration_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); sonic_sensor_calibration_modify_para_l.para_modify_id = 8; memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_distance_after, &device_size_inf_g.device_size_mid_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_distance_after, &device_size_inf_g.device_size_up_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_distance_after, &device_size_inf_g.device_size_down_distance, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timea_after, &device_size_inf_g.device_size_mid_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_mid_reimbursed_timeb_after, &device_size_inf_g.device_size_mid_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timea_after, &device_size_inf_g.device_size_up_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_up_reimbursed_timeb_after, &device_size_inf_g.device_size_up_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timea_after, &device_size_inf_g.device_size_down_reimbursed_timea, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.device_size_down_reimbursed_timeb_after, &device_size_inf_g.device_size_down_reimbursed_timeb, 4); memcpy ( &sonic_sensor_calibration_modify_para_l.set_sound_value_after, &device_size_inf_g.set_sound_value, 4); sonic_sensor_calibration_modify_para_l.set_mode_after = device_size_inf_g.set_mode; memcpy ( &sonic_sensor_calibration_modify_para_l.mid_sound_levela1_after, &ultrasonic_sensor_trige_level_g.mid_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.mid_sound_levelb1_after, &ultrasonic_sensor_trige_level_g.mid_sound_levelb1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.up_sound_levela1_after, &ultrasonic_sensor_trige_level_g.up_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.up_sound_levelb1_after, &ultrasonic_sensor_trige_level_g.up_sound_levelb1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.down_sound_levela1_after, &ultrasonic_sensor_trige_level_g.down_sound_levela1, 2); memcpy ( &sonic_sensor_calibration_modify_para_l.down_sound_levelb1_after, &ultrasonic_sensor_trige_level_g.down_sound_levelb1, 2); sonic_sensor_calibration_modify_para_l.trigger_level_up_limit_after = 0; sonic_sensor_calibration_modify_para_l.trigger_level_low_limit_after = 0; ufg620_para_change_log_record_save(PARM_MODIFY_ID_SONIC_SENSOR_CALIBRATION,(uint8_t *)& sonic_sensor_calibration_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.ut_cal_amend == 1) { if(alarm_report_para_g.sonic_sensor_calibration_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = ultrasonic_sensor_trige_level_g.mid_sound_levela1 >>8; log_send_buffer[15] = ultrasonic_sensor_trige_level_g.mid_sound_levela1; log_send_buffer[16] = ultrasonic_sensor_trige_level_g.mid_sound_levelb1 >>8; log_send_buffer[17] = ultrasonic_sensor_trige_level_g.mid_sound_levelb1; log_send_buffer[18] = ultrasonic_sensor_trige_level_g.up_sound_levela1 >>8; log_send_buffer[19] = ultrasonic_sensor_trige_level_g.up_sound_levela1; log_send_buffer[20] = ultrasonic_sensor_trige_level_g.up_sound_levelb1 >>8; log_send_buffer[21] = ultrasonic_sensor_trige_level_g.up_sound_levelb1; log_send_buffer[22] = ultrasonic_sensor_trige_level_g.down_sound_levela1 >>8; log_send_buffer[23] = ultrasonic_sensor_trige_level_g.down_sound_levela1; log_send_buffer[24] = ultrasonic_sensor_trige_level_g.down_sound_levelb1 >>8; log_send_buffer[25] = ultrasonic_sensor_trige_level_g.down_sound_levelb1; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÕæÊµ´¥·¢Ïß²éѯ void COM_ultrasonic_sensor_real_trige_level_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =12 +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = flow_device_detection_g.midtriglevela >>8; log_send_buffer[15] = flow_device_detection_g.midtriglevela; log_send_buffer[16] = flow_device_detection_g.midtriglevelb >>8; log_send_buffer[17] = flow_device_detection_g.midtriglevelb; log_send_buffer[18] = flow_device_detection_g.uptriglevela >>8; log_send_buffer[19] = flow_device_detection_g.uptriglevela; log_send_buffer[20] = flow_device_detection_g.uptriglevelb >>8; log_send_buffer[21] = flow_device_detection_g.uptriglevelb; log_send_buffer[22] = flow_device_detection_g.downtriglevela >>8; log_send_buffer[23] = flow_device_detection_g.downtriglevela; log_send_buffer[24] = flow_device_detection_g.downtriglevelb >>8; log_send_buffer[25] = flow_device_detection_g.downtriglevelb; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÕýÏòÁ÷Á¿±ê¶¨ÐÞÕý²ÎÊý void COM_positive_flow_correct_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_FLOW_CORRECTION_MODIFY_SAVE_T flow_correct_modify_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &flow_correct_modify_l.first_flow_point_before, &flow_correct_set_g.first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_before, &flow_correct_set_g.second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_before, &flow_correct_set_g.flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_before, &flow_correct_set_g.flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_before, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_before, &flow_correct_set_g.real_flow_coe, 4); NEW_arraya_2_arrayb(DataPtr,(u8 *)&flow_correct_set_g.first_flow_point[0],4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&flow_correct_set_g.first_flow_point[1],4,1); NEW_arraya_2_arrayb(DataPtr+8,(u8 *)&flow_correct_set_g.first_flow_point[2],4,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&flow_correct_set_g.first_flow_point[3],4,1); NEW_arraya_2_arrayb(DataPtr+16,(u8 *)&flow_correct_set_g.first_flow_point[4],4,1); NEW_arraya_2_arrayb(DataPtr+20,(u8 *)&flow_correct_set_g.first_flow_point[5],4,1); NEW_arraya_2_arrayb(DataPtr+24,(u8 *)&flow_correct_set_g.first_flow_point[6],4,1); NEW_arraya_2_arrayb(DataPtr+28,(u8 *)&flow_correct_set_g.first_flow_point[7],4,1); NEW_arraya_2_arrayb(DataPtr+32,(u8 *)&flow_correct_set_g.first_flow_point[8],4,1); NEW_arraya_2_arrayb(DataPtr+36,(u8 *)&flow_correct_set_g.first_flow_point[9],4,1); NEW_arraya_2_arrayb(DataPtr+40,(u8 *)&flow_correct_set_g.first_flow_point[10],4,1); NEW_arraya_2_arrayb(DataPtr+44,(u8 *)&flow_correct_set_g.first_flow_point[11],4,1); NEW_arraya_2_arrayb(DataPtr+48,(u8 *)&flow_correct_set_g.first_flow_point[12],4,1); NEW_arraya_2_arrayb(DataPtr+52,(u8 *)&flow_correct_set_g.first_flow_point[13],4,1); NEW_arraya_2_arrayb(DataPtr+56,(u8 *)&flow_correct_set_g.first_flow_point[14],4,1); NEW_arraya_2_arrayb(DataPtr+60,(u8 *)&flow_correct_set_g.first_flow_point_para[0],4,1); NEW_arraya_2_arrayb(DataPtr+64,(u8 *)&flow_correct_set_g.first_flow_point_para[1],4,1); NEW_arraya_2_arrayb(DataPtr+68,(u8 *)&flow_correct_set_g.first_flow_point_para[2],4,1); NEW_arraya_2_arrayb(DataPtr+72,(u8 *)&flow_correct_set_g.first_flow_point_para[3],4,1); NEW_arraya_2_arrayb(DataPtr+76,(u8 *)&flow_correct_set_g.first_flow_point_para[4],4,1); NEW_arraya_2_arrayb(DataPtr+80,(u8 *)&flow_correct_set_g.first_flow_point_para[5],4,1); NEW_arraya_2_arrayb(DataPtr+84,(u8 *)&flow_correct_set_g.first_flow_point_para[6],4,1); NEW_arraya_2_arrayb(DataPtr+88,(u8 *)&flow_correct_set_g.first_flow_point_para[7],4,1); NEW_arraya_2_arrayb(DataPtr+92,(u8 *)&flow_correct_set_g.first_flow_point_para[8],4,1); NEW_arraya_2_arrayb(DataPtr+96,(u8 *)&flow_correct_set_g.first_flow_point_para[9],4,1); NEW_arraya_2_arrayb(DataPtr+100,(u8 *)&flow_correct_set_g.first_flow_point_para[10],4,1); NEW_arraya_2_arrayb(DataPtr+104,(u8 *)&flow_correct_set_g.first_flow_point_para[11],4,1); NEW_arraya_2_arrayb(DataPtr+108,(u8 *)&flow_correct_set_g.first_flow_point_para[12],4,1); NEW_arraya_2_arrayb(DataPtr+112,(u8 *)&flow_correct_set_g.first_flow_point_para[13],4,1); NEW_arraya_2_arrayb(DataPtr+116,(u8 *)&flow_correct_set_g.first_flow_point_para[14],4,1); /*¼ÆËã²¹³¥Ê±¼ä*/ for(count_i = 0; count_i < 15; count_i ++) { if(flow_correct_set_g.first_flow_point[count_i] != 0) { flow_correct_set_g.real_first_flow_point_para[count_i] = 1.0 / (1 + flow_correct_set_g.first_flow_point_para[count_i]/100); flow_correct_set_g.real_first_flow_point[count_i] = flow_correct_set_g.first_flow_point[count_i] / flow_correct_set_g.real_first_flow_point_para[count_i]; } else { flow_correct_set_g.real_first_flow_point_para[count_i] = 1; flow_correct_set_g.real_first_flow_point[count_i] = 0; } } eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.first_flow_point, POSITIVE_FLOW_POINT_CORRECT_A_ADDR, 240); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.first_flow_point, POSITIVE_FLOW_POINT_CORRECT_B_ADDR, 240); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.first_flow_point, POSITIVE_FLOW_POINT_CORRECT_C_ADDR, 240); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); IWDG_Feed(); WD_GPIO_diff //±£´æÐ޸ļǼ flow_correct_modify_l.serial_number = 0; flow_correct_modify_l.modify_source = 1; flow_correct_modify_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); flow_correct_modify_l.Sample_month = HEX2BCD(calendar.month); flow_correct_modify_l.Sample_day = HEX2BCD(calendar.date); flow_correct_modify_l.Sample_hour = HEX2BCD(calendar.hour); flow_correct_modify_l.Sample_min = HEX2BCD(calendar.min); flow_correct_modify_l.Sample_sec = HEX2BCD(calendar.sec); flow_correct_modify_l.para_modify_id = 2; flow_correct_modify_l.reverse_flag = 0; memcpy ( &flow_correct_modify_l.first_flow_point_after, &flow_correct_set_g.first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_after, &flow_correct_set_g.second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_after, &flow_correct_set_g.flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_after, &flow_correct_set_g.flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_after, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_after, &flow_correct_set_g.real_flow_coe, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_FLOW_CORRECTION,(uint8_t *)& flow_correct_modify_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_cal_amend == 1) { if(alarm_report_para_g.flow_correction_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[0],&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[1],&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[2],&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[3],&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[4],&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[5],&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[6],&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[7],&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[8],&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[9],&log_send_buffer[50],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[10],&log_send_buffer[54],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[11],&log_send_buffer[58],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[12],&log_send_buffer[62],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[13],&log_send_buffer[66],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point[14],&log_send_buffer[70],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[0],&log_send_buffer[74],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[1],&log_send_buffer[78],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[2],&log_send_buffer[82],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[3],&log_send_buffer[86],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[4],&log_send_buffer[90],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[5],&log_send_buffer[94],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[6],&log_send_buffer[98],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[7],&log_send_buffer[102],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[8],&log_send_buffer[106],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[9],&log_send_buffer[110],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[10],&log_send_buffer[114],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[11],&log_send_buffer[118],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[12],&log_send_buffer[122],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[13],&log_send_buffer[126],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.first_flow_point_para[14],&log_send_buffer[130],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÕýÏòʵ¼ÊÁ÷Á¿ÐÞÕý²ÎÊý void COM_positive_real_flow_correct_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =120 +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[0],&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[1],&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[2],&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[3],&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[4],&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[5],&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[6],&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[7],&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[8],&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[9],&log_send_buffer[50],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[10],&log_send_buffer[54],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[11],&log_send_buffer[58],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[12],&log_send_buffer[62],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[13],&log_send_buffer[66],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point[14],&log_send_buffer[70],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[0],&log_send_buffer[74],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[1],&log_send_buffer[78],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[2],&log_send_buffer[82],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[3],&log_send_buffer[86],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[4],&log_send_buffer[90],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[5],&log_send_buffer[94],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[6],&log_send_buffer[98],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[7],&log_send_buffer[102],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[8],&log_send_buffer[106],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[9],&log_send_buffer[110],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[10],&log_send_buffer[114],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[11],&log_send_buffer[118],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[12],&log_send_buffer[122],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[13],&log_send_buffer[126],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_first_flow_point_para[14],&log_send_buffer[130],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÕýÏòÁ÷Á¿¶þ´ÎÐÞÕý²ÎÊý void COM_positive_flow_correct_second_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_FLOW_CORRECTION_MODIFY_SAVE_T flow_correct_modify_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &flow_correct_modify_l.first_flow_point_before, &flow_correct_set_g.first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_before, &flow_correct_set_g.second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_before, &flow_correct_set_g.flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_before, &flow_correct_set_g.flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_before, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_before, &flow_correct_set_g.real_flow_coe, 4); NEW_arraya_2_arrayb(DataPtr, (u8 *)&flow_correct_set_g.second_flow_point[0],4,1); NEW_arraya_2_arrayb(DataPtr+4, (u8 *)&flow_correct_set_g.second_flow_point[1],4,1); NEW_arraya_2_arrayb(DataPtr+8, (u8 *)&flow_correct_set_g.second_flow_point[2],4,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&flow_correct_set_g.second_flow_point[3],4,1); NEW_arraya_2_arrayb(DataPtr+16,(u8 *)&flow_correct_set_g.second_flow_point[4],4,1); NEW_arraya_2_arrayb(DataPtr+20,(u8 *)&flow_correct_set_g.second_flow_point_para[0],4,1); NEW_arraya_2_arrayb(DataPtr+24,(u8 *)&flow_correct_set_g.second_flow_point_para[1],4,1); NEW_arraya_2_arrayb(DataPtr+28,(u8 *)&flow_correct_set_g.second_flow_point_para[2],4,1); NEW_arraya_2_arrayb(DataPtr+32,(u8 *)&flow_correct_set_g.second_flow_point_para[3],4,1); NEW_arraya_2_arrayb(DataPtr+36,(u8 *)&flow_correct_set_g.second_flow_point_para[4],4,1); /*¼ÆËã²¹³¥Ê±¼ä*/ for(count_i = 0; count_i < 5; count_i ++) { if(flow_correct_set_g.second_flow_point[count_i] != 0) { flow_correct_set_g.real_second_flow_point_para[count_i] = 1.0 / (1 + flow_correct_set_g.second_flow_point_para[count_i]/100); flow_correct_set_g.real_second_flow_point[count_i] = flow_correct_set_g.second_flow_point[count_i] / flow_correct_set_g.real_second_flow_point_para[count_i]; } else { flow_correct_set_g.real_second_flow_point_para[count_i] = 1; flow_correct_set_g.real_second_flow_point[count_i] = 0; } } eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.second_flow_point, POSITIVE_FLOW_POINT_SECOND_A_ADDR, 80); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.second_flow_point, POSITIVE_FLOW_POINT_SECOND_B_ADDR, 80); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.second_flow_point, POSITIVE_FLOW_POINT_SECOND_C_ADDR, 80); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); IWDG_Feed(); WD_GPIO_diff //±£´æÐ޸ļǼ flow_correct_modify_l.serial_number = 0; flow_correct_modify_l.modify_source = 1; flow_correct_modify_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); flow_correct_modify_l.Sample_month = HEX2BCD(calendar.month); flow_correct_modify_l.Sample_day = HEX2BCD(calendar.date); flow_correct_modify_l.Sample_hour = HEX2BCD(calendar.hour); flow_correct_modify_l.Sample_min = HEX2BCD(calendar.min); flow_correct_modify_l.Sample_sec = HEX2BCD(calendar.sec); flow_correct_modify_l.para_modify_id = 2; flow_correct_modify_l.reverse_flag = 0; memcpy ( &flow_correct_modify_l.first_flow_point_after, &flow_correct_set_g.first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_after, &flow_correct_set_g.second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_after, &flow_correct_set_g.flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_after, &flow_correct_set_g.flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_after, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_after, &flow_correct_set_g.real_flow_coe, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_FLOW_CORRECTION,(uint8_t *)& flow_correct_modify_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_cal_amend == 1) { if(alarm_report_para_g.flow_correction_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point[0],&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point[1],&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point[2],&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point[3],&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point[4],&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point_para[0],&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point_para[1],&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point_para[2],&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point_para[3],&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.second_flow_point_para[4],&log_send_buffer[50],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÕýÏòʵ¼ÊÁ÷Á¿¶þ´ÎÐÞÕý²ÎÊý void COM_positive_real_flow_correct_second_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =40 +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point[0],&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point[1],&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point[2],&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point[3],&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point[4],&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point_para[0],&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point_para[1],&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point_para[2],&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point_para[3],&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_second_flow_point_para[4],&log_send_buffer[50],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÕýÏòÁ÷Á¿ÆäËûÐÞÕý²ÎÊý void COM_positive_flow_correct_other_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_FLOW_CORRECTION_MODIFY_SAVE_T flow_correct_modify_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &flow_correct_modify_l.first_flow_point_before, &flow_correct_set_g.first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_before, &flow_correct_set_g.second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_before, &flow_correct_set_g.flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_before, &flow_correct_set_g.flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_before, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_before, &flow_correct_set_g.real_flow_coe, 4); NEW_arraya_2_arrayb(DataPtr,(u8 *)&flow_correct_set_g.flow_all_correct_k,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&flow_correct_set_g.flow_all_correct_b,4,1); NEW_arraya_2_arrayb(DataPtr+8,(u8 *)&flow_correct_set_g.fixed_compression_factor,4,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&flow_correct_set_g.real_flow_coe,4,1); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.flow_all_correct_k, POSITIVE_FLOW_POINT_OTHER_A_ADDR, 16); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.flow_all_correct_k, POSITIVE_FLOW_POINT_OTHER_B_ADDR, 16); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.flow_all_correct_k, POSITIVE_FLOW_POINT_OTHER_C_ADDR, 16); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); IWDG_Feed(); WD_GPIO_diff //±£´æÐ޸ļǼ flow_correct_modify_l.serial_number = 0; flow_correct_modify_l.modify_source = 1; flow_correct_modify_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); flow_correct_modify_l.Sample_month = HEX2BCD(calendar.month); flow_correct_modify_l.Sample_day = HEX2BCD(calendar.date); flow_correct_modify_l.Sample_hour = HEX2BCD(calendar.hour); flow_correct_modify_l.Sample_min = HEX2BCD(calendar.min); flow_correct_modify_l.Sample_sec = HEX2BCD(calendar.sec); flow_correct_modify_l.para_modify_id = 2; flow_correct_modify_l.reverse_flag = 0; memcpy ( &flow_correct_modify_l.first_flow_point_after, &flow_correct_set_g.first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_after, &flow_correct_set_g.second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_after, &flow_correct_set_g.flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_after, &flow_correct_set_g.flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_after, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_after, &flow_correct_set_g.real_flow_coe, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_FLOW_CORRECTION,(uint8_t *)& flow_correct_modify_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_cal_amend == 1) { if(alarm_report_para_g.flow_correction_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.flow_all_correct_k,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.flow_all_correct_b,&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.fixed_compression_factor,&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.real_flow_coe,&log_send_buffer[26],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //·´ÏòÁ÷Á¿±ê¶¨ÐÞÕý²ÎÊý void COM_reverse_flow_correct_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_FLOW_CORRECTION_MODIFY_SAVE_T flow_correct_modify_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &flow_correct_modify_l.first_flow_point_before, &flow_correct_set_g.reverse_first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_before, &flow_correct_set_g.reverse_second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_before, &flow_correct_set_g.reverse_flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_before, &flow_correct_set_g.reverse_flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_before, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_before, &flow_correct_set_g.real_flow_coe, 4); NEW_arraya_2_arrayb(DataPtr,(u8 *)&flow_correct_set_g.reverse_first_flow_point[0],4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&flow_correct_set_g.reverse_first_flow_point[1],4,1); NEW_arraya_2_arrayb(DataPtr+8,(u8 *)&flow_correct_set_g.reverse_first_flow_point[2],4,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&flow_correct_set_g.reverse_first_flow_point[3],4,1); NEW_arraya_2_arrayb(DataPtr+16,(u8 *)&flow_correct_set_g.reverse_first_flow_point[4],4,1); NEW_arraya_2_arrayb(DataPtr+20,(u8 *)&flow_correct_set_g.reverse_first_flow_point[5],4,1); NEW_arraya_2_arrayb(DataPtr+24,(u8 *)&flow_correct_set_g.reverse_first_flow_point[6],4,1); NEW_arraya_2_arrayb(DataPtr+28,(u8 *)&flow_correct_set_g.reverse_first_flow_point[7],4,1); NEW_arraya_2_arrayb(DataPtr+32,(u8 *)&flow_correct_set_g.reverse_first_flow_point[8],4,1); NEW_arraya_2_arrayb(DataPtr+36,(u8 *)&flow_correct_set_g.reverse_first_flow_point[9],4,1); NEW_arraya_2_arrayb(DataPtr+40,(u8 *)&flow_correct_set_g.reverse_first_flow_point[10],4,1); NEW_arraya_2_arrayb(DataPtr+44,(u8 *)&flow_correct_set_g.reverse_first_flow_point[11],4,1); NEW_arraya_2_arrayb(DataPtr+48,(u8 *)&flow_correct_set_g.reverse_first_flow_point[12],4,1); NEW_arraya_2_arrayb(DataPtr+52,(u8 *)&flow_correct_set_g.reverse_first_flow_point[13],4,1); NEW_arraya_2_arrayb(DataPtr+56,(u8 *)&flow_correct_set_g.reverse_first_flow_point[14],4,1); NEW_arraya_2_arrayb(DataPtr+60,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[0],4,1); NEW_arraya_2_arrayb(DataPtr+64,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[1],4,1); NEW_arraya_2_arrayb(DataPtr+68,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[2],4,1); NEW_arraya_2_arrayb(DataPtr+72,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[3],4,1); NEW_arraya_2_arrayb(DataPtr+76,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[4],4,1); NEW_arraya_2_arrayb(DataPtr+80,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[5],4,1); NEW_arraya_2_arrayb(DataPtr+84,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[6],4,1); NEW_arraya_2_arrayb(DataPtr+88,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[7],4,1); NEW_arraya_2_arrayb(DataPtr+92,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[8],4,1); NEW_arraya_2_arrayb(DataPtr+96,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[9],4,1); NEW_arraya_2_arrayb(DataPtr+100,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[10],4,1); NEW_arraya_2_arrayb(DataPtr+104,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[11],4,1); NEW_arraya_2_arrayb(DataPtr+108,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[12],4,1); NEW_arraya_2_arrayb(DataPtr+112,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[13],4,1); NEW_arraya_2_arrayb(DataPtr+116,(u8 *)&flow_correct_set_g.reverse_first_flow_point_para[14],4,1); /*¼ÆËã²¹³¥Ê±¼ä*/ for(count_i = 0; count_i < 15; count_i ++) { if(flow_correct_set_g.reverse_first_flow_point[count_i] != 0) { flow_correct_set_g.reverse_real_first_flow_point_para[count_i] = 1.0 / (1 + flow_correct_set_g.reverse_first_flow_point_para[count_i]/100); flow_correct_set_g.reverse_real_first_flow_point[count_i] = flow_correct_set_g.reverse_first_flow_point[count_i] / flow_correct_set_g.reverse_real_first_flow_point_para[count_i]; } else { flow_correct_set_g.reverse_real_first_flow_point_para[count_i] = 1; flow_correct_set_g.reverse_real_first_flow_point[count_i] = 0; } } eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_first_flow_point, REVERSE_FLOW_POINT_CORRECT_A_ADDR, 240); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_first_flow_point, REVERSE_FLOW_POINT_CORRECT_B_ADDR, 240); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_first_flow_point, REVERSE_FLOW_POINT_CORRECT_C_ADDR, 240); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ flow_correct_modify_l.serial_number = 0; flow_correct_modify_l.modify_source = 1; flow_correct_modify_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); flow_correct_modify_l.Sample_month = HEX2BCD(calendar.month); flow_correct_modify_l.Sample_day = HEX2BCD(calendar.date); flow_correct_modify_l.Sample_hour = HEX2BCD(calendar.hour); flow_correct_modify_l.Sample_min = HEX2BCD(calendar.min); flow_correct_modify_l.Sample_sec = HEX2BCD(calendar.sec); flow_correct_modify_l.para_modify_id = 2; flow_correct_modify_l.reverse_flag = 1; memcpy ( &flow_correct_modify_l.first_flow_point_after, &flow_correct_set_g.reverse_first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_after, &flow_correct_set_g.reverse_second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_after, &flow_correct_set_g.reverse_flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_after, &flow_correct_set_g.reverse_flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_after, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_after, &flow_correct_set_g.real_flow_coe, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_FLOW_CORRECTION,(uint8_t *)& flow_correct_modify_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_cal_amend == 1) { if(alarm_report_para_g.flow_correction_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[0],&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[1],&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[2],&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[3],&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[4],&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[5],&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[6],&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[7],&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[8],&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[9],&log_send_buffer[50],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[10],&log_send_buffer[54],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[11],&log_send_buffer[58],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[12],&log_send_buffer[62],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[13],&log_send_buffer[66],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point[14],&log_send_buffer[70],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[0],&log_send_buffer[74],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[1],&log_send_buffer[78],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[2],&log_send_buffer[82],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[3],&log_send_buffer[86],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[4],&log_send_buffer[90],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[5],&log_send_buffer[94],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[6],&log_send_buffer[98],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[7],&log_send_buffer[102],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[8],&log_send_buffer[106],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[9],&log_send_buffer[110],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[10],&log_send_buffer[114],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[11],&log_send_buffer[118],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[12],&log_send_buffer[122],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[13],&log_send_buffer[126],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_first_flow_point_para[14],&log_send_buffer[130],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //·´Ïòʵ¼ÊÁ÷Á¿±ê¶¨ÐÞÕý²ÎÊý void COM_reverse_real_flow_correct_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =120 +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[0],&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[1],&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[2],&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[3],&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[4],&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[5],&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[6],&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[7],&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[8],&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[9],&log_send_buffer[50],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[10],&log_send_buffer[54],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[11],&log_send_buffer[58],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[12],&log_send_buffer[62],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[13],&log_send_buffer[66],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point[14],&log_send_buffer[70],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[0],&log_send_buffer[74],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[1],&log_send_buffer[78],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[2],&log_send_buffer[82],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[3],&log_send_buffer[86],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[4],&log_send_buffer[90],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[5],&log_send_buffer[94],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[6],&log_send_buffer[98],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[7],&log_send_buffer[102],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[8],&log_send_buffer[106],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[9],&log_send_buffer[110],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[10],&log_send_buffer[114],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[11],&log_send_buffer[118],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[12],&log_send_buffer[122],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[13],&log_send_buffer[126],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_first_flow_point_para[14],&log_send_buffer[130],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //·´ÏòÁ÷Á¿¶þ´ÎÐÞÕý²ÎÊý void COM_reverse_flow_correct_second_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_FLOW_CORRECTION_MODIFY_SAVE_T flow_correct_modify_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &flow_correct_modify_l.first_flow_point_before, &flow_correct_set_g.reverse_first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_before, &flow_correct_set_g.reverse_second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_before, &flow_correct_set_g.reverse_flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_before, &flow_correct_set_g.reverse_flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_before, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_before, &flow_correct_set_g.real_flow_coe, 4); NEW_arraya_2_arrayb(DataPtr,(u8 *)&flow_correct_set_g.reverse_second_flow_point[0],4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&flow_correct_set_g.reverse_second_flow_point[1],4,1); NEW_arraya_2_arrayb(DataPtr+8,(u8 *)&flow_correct_set_g.reverse_second_flow_point[2],4,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&flow_correct_set_g.reverse_second_flow_point[3],4,1); NEW_arraya_2_arrayb(DataPtr+16,(u8 *)&flow_correct_set_g.reverse_second_flow_point[4],4,1); NEW_arraya_2_arrayb(DataPtr+20,(u8 *)&flow_correct_set_g.reverse_second_flow_point_para[0],4,1); NEW_arraya_2_arrayb(DataPtr+24,(u8 *)&flow_correct_set_g.reverse_second_flow_point_para[1],4,1); NEW_arraya_2_arrayb(DataPtr+28,(u8 *)&flow_correct_set_g.reverse_second_flow_point_para[2],4,1); NEW_arraya_2_arrayb(DataPtr+32,(u8 *)&flow_correct_set_g.reverse_second_flow_point_para[3],4,1); NEW_arraya_2_arrayb(DataPtr+36,(u8 *)&flow_correct_set_g.reverse_second_flow_point_para[4],4,1); /*¼ÆËã²¹³¥Ê±¼ä*/ for(count_i = 0; count_i < 5; count_i ++) { if(flow_correct_set_g.reverse_second_flow_point[count_i] != 0) { flow_correct_set_g.reverse_real_second_flow_point_para[count_i] = 1.0 / (1 + flow_correct_set_g.reverse_second_flow_point_para[count_i]/100); flow_correct_set_g.reverse_real_second_flow_point[count_i] = flow_correct_set_g.reverse_second_flow_point[count_i] / flow_correct_set_g.reverse_real_second_flow_point_para[count_i]; } else { flow_correct_set_g.reverse_real_second_flow_point_para[count_i] = 1; flow_correct_set_g.reverse_real_second_flow_point[count_i] = 0; } } eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_second_flow_point, REVERSE_FLOW_POINT_SECOND_A_ADDR, 80); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_second_flow_point, REVERSE_FLOW_POINT_SECOND_B_ADDR, 80); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_second_flow_point, REVERSE_FLOW_POINT_SECOND_C_ADDR, 80); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); IWDG_Feed(); WD_GPIO_diff //±£´æÐ޸ļǼ flow_correct_modify_l.serial_number = 0; flow_correct_modify_l.modify_source = 1; flow_correct_modify_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); flow_correct_modify_l.Sample_month = HEX2BCD(calendar.month); flow_correct_modify_l.Sample_day = HEX2BCD(calendar.date); flow_correct_modify_l.Sample_hour = HEX2BCD(calendar.hour); flow_correct_modify_l.Sample_min = HEX2BCD(calendar.min); flow_correct_modify_l.Sample_sec = HEX2BCD(calendar.sec); flow_correct_modify_l.para_modify_id = 2; flow_correct_modify_l.reverse_flag = 1; memcpy ( &flow_correct_modify_l.first_flow_point_after, &flow_correct_set_g.reverse_first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_after, &flow_correct_set_g.reverse_second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_after, &flow_correct_set_g.reverse_flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_after, &flow_correct_set_g.reverse_flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_after, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_after, &flow_correct_set_g.real_flow_coe, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_FLOW_CORRECTION,(uint8_t *)& flow_correct_modify_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_cal_amend == 1) { if(alarm_report_para_g.flow_correction_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point[0],&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point[1],&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point[2],&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point[3],&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point[4],&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point_para[0],&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point_para[1],&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point_para[2],&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point_para[3],&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_second_flow_point_para[4],&log_send_buffer[50],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //·´Ïòʵ¼ÊÁ÷Á¿¶þ´ÎÐÞÕý²ÎÊý void COM_reverse_real_flow_correct_second_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =40 +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point[0],&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point[1],&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point[2],&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point[3],&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point[4],&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point_para[0],&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point_para[1],&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point_para[2],&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point_para[3],&log_send_buffer[46],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_real_second_flow_point_para[4],&log_send_buffer[50],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //·´ÏòÁ÷Á¿ÆäËûÐÞÕý²ÎÊý void COM_reverse_flow_correct_other_para_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_FLOW_CORRECTION_MODIFY_SAVE_T flow_correct_modify_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &flow_correct_modify_l.first_flow_point_before, &flow_correct_set_g.first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_before, &flow_correct_set_g.second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_before, &flow_correct_set_g.flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_before, &flow_correct_set_g.flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_before, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_before, &flow_correct_set_g.real_flow_coe, 4); NEW_arraya_2_arrayb(DataPtr,(u8 *)&flow_correct_set_g.reverse_flow_all_correct_k,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&flow_correct_set_g.reverse_flow_all_correct_b,4,1); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_flow_all_correct_k, REVERSE_FLOW_POINT_OTHER_A_ADDR, 8); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_flow_all_correct_k, REVERSE_FLOW_POINT_OTHER_B_ADDR, 8); eeprom_multiple_data_write((uint8_t *) &flow_correct_set_g.reverse_flow_all_correct_k, REVERSE_FLOW_POINT_OTHER_C_ADDR, 8); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); IWDG_Feed(); WD_GPIO_diff //±£´æÐ޸ļǼ flow_correct_modify_l.serial_number = 0; flow_correct_modify_l.modify_source = 1; flow_correct_modify_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); flow_correct_modify_l.Sample_month = HEX2BCD(calendar.month); flow_correct_modify_l.Sample_day = HEX2BCD(calendar.date); flow_correct_modify_l.Sample_hour = HEX2BCD(calendar.hour); flow_correct_modify_l.Sample_min = HEX2BCD(calendar.min); flow_correct_modify_l.Sample_sec = HEX2BCD(calendar.sec); flow_correct_modify_l.para_modify_id = 2; flow_correct_modify_l.reverse_flag = 1; memcpy ( &flow_correct_modify_l.first_flow_point_after, &flow_correct_set_g.reverse_first_flow_point[0], 120); memcpy ( &flow_correct_modify_l.second_flow_point_after, &flow_correct_set_g.reverse_second_flow_point[0], 40); memcpy ( &flow_correct_modify_l.flow_all_correct_k_after, &flow_correct_set_g.reverse_flow_all_correct_k, 4); memcpy ( &flow_correct_modify_l.flow_all_correct_b_after, &flow_correct_set_g.reverse_flow_all_correct_b, 4); memcpy ( &flow_correct_modify_l.fixed_compression_factor_after, &flow_correct_set_g.fixed_compression_factor, 4); memcpy ( &flow_correct_modify_l.real_flow_coe_after, &flow_correct_set_g.real_flow_coe, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_FLOW_CORRECTION,(uint8_t *)& flow_correct_modify_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_cal_amend == 1) { if(alarm_report_para_g.flow_correction_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_flow_all_correct_k,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_correct_set_g.reverse_flow_all_correct_b,&log_send_buffer[18],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //Á÷Á¿ÅäÖòÎÊý void COM_flow_limit_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_FLOW_CONFIG_MODIFY_SAVE_T flow_config_modify_para_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &flow_config_modify_para_l.flow_alarm_up_limit_before, &flow_limit_g.flow_alarm_up_limit, 4); memcpy ( &flow_config_modify_para_l.flow_alarm_up_up_limit_before, &flow_limit_g.flow_alarm_up_up_limit, 4); memcpy ( &flow_config_modify_para_l.flow_alarm_low_limit_before, &flow_limit_g.flow_alarm_low_limit, 4); memcpy ( &flow_config_modify_para_l.flow_up_up_limit_replace_value_before, &flow_limit_g.flow_up_up_limit_replace_value, 4); memcpy ( &flow_config_modify_para_l.flow_small_cut_off_value_before, &flow_limit_g.flow_small_cut_off_value, 4); NEW_arraya_2_arrayb(DataPtr,(u8 *)&flow_limit_g.flow_alarm_up_limit,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&flow_limit_g.flow_alarm_up_up_limit,4,1); NEW_arraya_2_arrayb(DataPtr+8,(u8 *)&flow_limit_g.flow_alarm_low_limit,4,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&flow_limit_g.flow_up_up_limit_replace_value,4,1); NEW_arraya_2_arrayb(DataPtr+16,(u8 *)&flow_limit_g.flow_small_cut_off_value,4,1); eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, FLOW_LIMIT_LENGTH); system_para_control_run_g.small_flow_cut = flow_limit_g.flow_small_cut_off_value / 3600; com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ flow_config_modify_para_l.serial_number = 0; flow_config_modify_para_l.modify_source = 1; flow_config_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); flow_config_modify_para_l.Sample_month = HEX2BCD(calendar.month); flow_config_modify_para_l.Sample_day = HEX2BCD(calendar.date); flow_config_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); flow_config_modify_para_l.Sample_min = HEX2BCD(calendar.min); flow_config_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); flow_config_modify_para_l.para_modify_id = 5; memcpy ( &flow_config_modify_para_l.flow_alarm_up_limit_after, &flow_limit_g.flow_alarm_up_limit, 4); memcpy ( &flow_config_modify_para_l.flow_alarm_up_up_limit_after, &flow_limit_g.flow_alarm_up_up_limit, 4); memcpy ( &flow_config_modify_para_l.flow_alarm_low_limit_after, &flow_limit_g.flow_alarm_low_limit, 4); memcpy ( &flow_config_modify_para_l.flow_up_up_limit_replace_value_after, &flow_limit_g.flow_up_up_limit_replace_value, 4); memcpy ( &flow_config_modify_para_l.flow_small_cut_off_value_after, &flow_limit_g.flow_small_cut_off_value, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_FLOW_CONFIG,(uint8_t *)& flow_config_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_para_amend == 1) { if(alarm_report_para_g.flow_config_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_alarm_up_limit,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_alarm_up_up_limit,&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_alarm_low_limit,&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_up_up_limit_replace_value,&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_small_cut_off_value,&log_send_buffer[30],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ѹÁ¦ÅäÖòÎÊý void COM_pressure_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_PRE_MODIFY_SAVE_T pre_modify_para_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &pre_modify_para_l.pressure_para_k_before, &pressure_para_set_g.pressure_para_k, 4); memcpy ( &pre_modify_para_l.pressure_para_b_before, &pressure_para_set_g.pressure_para_b, 4); memcpy ( &pre_modify_para_l.pressure_up_limit_before, &pressure_para_set_g.pressure_up_limit, 4); memcpy ( &pre_modify_para_l.pressure_up_up_limit_before, &pressure_para_set_g.pressure_up_up_limit, 4); memcpy ( &pre_modify_para_l.pressure_low_limit_before, &pressure_para_set_g.pressure_low_limit, 4); memcpy ( &pre_modify_para_l.pressure_low_low_limit_before, &pressure_para_set_g.pressure_low_low_limit, 4); memcpy ( &pre_modify_para_l.pressure_measure_range_up_before, &pressure_para_set_g.pressure_measure_range_up, 4); memcpy ( &pre_modify_para_l.pressure_measure_range_low_before, &pressure_para_set_g.pressure_measure_range_low, 4); memcpy ( &pre_modify_para_l.pressure_up_up_limit_replace_value_before, &pressure_para_set_g.pressure_up_up_limit_replace_value, 4); NEW_arraya_2_arrayb(DataPtr,(u8 *)&pressure_para_set_g.pressure_para_k,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&pressure_para_set_g.pressure_para_b,4,1); NEW_arraya_2_arrayb(DataPtr+8,(u8 *)&pressure_para_set_g.pressure_up_limit,4,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&pressure_para_set_g.pressure_up_up_limit,4,1); NEW_arraya_2_arrayb(DataPtr+16,(u8 *)&pressure_para_set_g.pressure_low_limit,4,1); NEW_arraya_2_arrayb(DataPtr+20,(u8 *)&pressure_para_set_g.pressure_low_low_limit,4,1); NEW_arraya_2_arrayb(DataPtr+24,(u8 *)&pressure_para_set_g.pressure_measure_range_up,4,1); NEW_arraya_2_arrayb(DataPtr+28,(u8 *)&pressure_para_set_g.pressure_measure_range_low,4,1); NEW_arraya_2_arrayb(DataPtr+32,(u8 *)&pressure_para_set_g.pressure_up_up_limit_replace_value,4,1); eeprom_multiple_data_write((uint8_t *) &pressure_para_set_g, PRE_CONFIG_PARAM_ADDR, PRESSURE_PARA_SET_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ pre_modify_para_l.serial_number = 0; pre_modify_para_l.modify_source = 1; pre_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); pre_modify_para_l.Sample_month = HEX2BCD(calendar.month); pre_modify_para_l.Sample_day = HEX2BCD(calendar.date); pre_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); pre_modify_para_l.Sample_min = HEX2BCD(calendar.min); pre_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); pre_modify_para_l.para_modify_id = 3; memcpy ( &pre_modify_para_l.pressure_para_k_after, &pressure_para_set_g.pressure_para_k, 4); memcpy ( &pre_modify_para_l.pressure_para_b_after, &pressure_para_set_g.pressure_para_b, 4); memcpy ( &pre_modify_para_l.pressure_up_limit_after, &pressure_para_set_g.pressure_up_limit, 4); memcpy ( &pre_modify_para_l.pressure_up_up_limit_after, &pressure_para_set_g.pressure_up_up_limit, 4); memcpy ( &pre_modify_para_l.pressure_low_limit_after, &pressure_para_set_g.pressure_low_limit, 4); memcpy ( &pre_modify_para_l.pressure_low_low_limit_after, &pressure_para_set_g.pressure_low_low_limit, 4); memcpy ( &pre_modify_para_l.pressure_measure_range_up_after, &pressure_para_set_g.pressure_measure_range_up, 4); memcpy ( &pre_modify_para_l.pressure_measure_range_low_after, &pressure_para_set_g.pressure_measure_range_low, 4); memcpy ( &pre_modify_para_l.pressure_up_up_limit_replace_value_after, &pressure_para_set_g.pressure_up_up_limit_replace_value, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_PRE_CONFIG,(uint8_t *)& pre_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.press_para_amend == 1) { if(alarm_report_para_g.pre_config_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_para_k,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_para_b,&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_up_limit,&log_send_buffer[22],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_up_up_limit,&log_send_buffer[26],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_low_limit,&log_send_buffer[30],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_low_low_limit,&log_send_buffer[34],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_measure_range_up,&log_send_buffer[38],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_measure_range_low,&log_send_buffer[42],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_up_up_limit_replace_value,&log_send_buffer[46],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ζÈÅäÖòÎÊý void COM_temperature_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_TEM_MODIFY_SAVE_T tem_modify_para_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &tem_modify_para_l.temperature_para_k_before, &temperature_para_set_g.temperature_para_k, 4); memcpy ( &tem_modify_para_l.temperature_para_b_before, &temperature_para_set_g.temperature_para_b, 4); memcpy ( &tem_modify_para_l.temperature_up_limit_before, &temperature_para_set_g.temperature_up_limit, 2); memcpy ( &tem_modify_para_l.temperature_up_up_limit_before, &temperature_para_set_g.temperature_up_up_limit, 2); memcpy ( &tem_modify_para_l.temperature_low_limit_before, &temperature_para_set_g.temperature_low_limit, 2); memcpy ( &tem_modify_para_l.temperature_low_low_limit_before, &temperature_para_set_g.temperature_low_low_limit, 2); memcpy ( &tem_modify_para_l.temperature_measure_range_up_before, &temperature_para_set_g.temperature_measure_range_up, 2); memcpy ( &tem_modify_para_l.temperature_measure_range_low_before, &temperature_para_set_g.temperature_measure_range_low, 2); memcpy ( &tem_modify_para_l.temperature_up_up_limit_replace_value_before, &temperature_para_set_g.temperature_up_up_limit_replace_value, 2); memcpy ( &tem_modify_para_l.temperature_upheaval_valve_before, &temperature_para_set_g.temperature_upheaval_valve, 4); memcpy ( &tem_modify_para_l.ambient_temperature_up_limit_before, &temperature_para_set_g.ambient_temperature_up_limit, 2); memcpy ( &tem_modify_para_l.ambient_temperature_low_limit_before, &temperature_para_set_g.ambient_temperature_low_limit, 2); NEW_arraya_2_arrayb(DataPtr,(u8 *)&temperature_para_set_g.temperature_para_k,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&temperature_para_set_g.temperature_para_b,4,1); NEW_arraya_2_arrayb(DataPtr+8,(u8 *)&temperature_para_set_g.temperature_up_limit,2,1); NEW_arraya_2_arrayb(DataPtr+10,(u8 *)&temperature_para_set_g.temperature_up_up_limit,2,1); NEW_arraya_2_arrayb(DataPtr+12,(u8 *)&temperature_para_set_g.temperature_low_limit,2,1); NEW_arraya_2_arrayb(DataPtr+14,(u8 *)&temperature_para_set_g.temperature_low_low_limit,2,1); NEW_arraya_2_arrayb(DataPtr+16,(u8 *)&temperature_para_set_g.temperature_measure_range_up,2,1); NEW_arraya_2_arrayb(DataPtr+18,(u8 *)&temperature_para_set_g.temperature_measure_range_low,2,1); NEW_arraya_2_arrayb(DataPtr+20,(u8 *)&temperature_para_set_g.temperature_up_up_limit_replace_value,2,1); NEW_arraya_2_arrayb(DataPtr+22,(u8 *)&temperature_para_set_g.temperature_upheaval_valve,4,1); NEW_arraya_2_arrayb(DataPtr+26,(u8 *)&temperature_para_set_g.ambient_temperature_up_limit,2,1); NEW_arraya_2_arrayb(DataPtr+28,(u8 *)&temperature_para_set_g.ambient_temperature_low_limit,2,1); eeprom_multiple_data_write((uint8_t *) &temperature_para_set_g, TEM_CONFIG_PARAM_ADDR, TEMPERATURE_PARA_SET_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ tem_modify_para_l.serial_number = 0; tem_modify_para_l.modify_source = 1; tem_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); tem_modify_para_l.Sample_month = HEX2BCD(calendar.month); tem_modify_para_l.Sample_day = HEX2BCD(calendar.date); tem_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); tem_modify_para_l.Sample_min = HEX2BCD(calendar.min); tem_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); tem_modify_para_l.para_modify_id = 4; memcpy ( &tem_modify_para_l.temperature_para_k_after, &temperature_para_set_g.temperature_para_k, 4); memcpy ( &tem_modify_para_l.temperature_para_b_after, &temperature_para_set_g.temperature_para_b, 4); memcpy ( &tem_modify_para_l.temperature_up_limit_after, &temperature_para_set_g.temperature_up_limit, 2); memcpy ( &tem_modify_para_l.temperature_up_up_limit_after, &temperature_para_set_g.temperature_up_up_limit, 2); memcpy ( &tem_modify_para_l.temperature_low_limit_after, &temperature_para_set_g.temperature_low_limit, 2); memcpy ( &tem_modify_para_l.temperature_low_low_limit_after, &temperature_para_set_g.temperature_low_low_limit, 2); memcpy ( &tem_modify_para_l.temperature_measure_range_up_after, &temperature_para_set_g.temperature_measure_range_up, 2); memcpy ( &tem_modify_para_l.temperature_measure_range_low_after, &temperature_para_set_g.temperature_measure_range_low, 2); memcpy ( &tem_modify_para_l.temperature_up_up_limit_replace_value_after, &temperature_para_set_g.temperature_up_up_limit_replace_value, 2); memcpy ( &tem_modify_para_l.temperature_upheaval_valve_after, &temperature_para_set_g.temperature_upheaval_valve, 4); memcpy ( &tem_modify_para_l.ambient_temperature_up_limit_after, &temperature_para_set_g.ambient_temperature_up_limit, 2); memcpy ( &tem_modify_para_l.ambient_temperature_low_limit_after, &temperature_para_set_g.ambient_temperature_low_limit, 2); ufg620_para_change_log_record_save(PARM_MODIFY_ID_TEM_CONFIG,(uint8_t *)& tem_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.temp_para_amend == 1) { if(alarm_report_para_g.tem_config_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_para_k,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_para_b,&log_send_buffer[18],4,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_up_limit,&log_send_buffer[22],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_up_up_limit,&log_send_buffer[24],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_low_limit,&log_send_buffer[26],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_low_low_limit,&log_send_buffer[28],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_measure_range_up,&log_send_buffer[30],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_measure_range_low,&log_send_buffer[32],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_up_up_limit_replace_value,&log_send_buffer[34],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_upheaval_valve,&log_send_buffer[36],4,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.ambient_temperature_up_limit,&log_send_buffer[40],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.ambient_temperature_low_limit,&log_send_buffer[42],2,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //Á÷Á¿ÎÂѹ×éºÏÅäÖòÎÊý void COM_flow_pre_tem_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_SAVE_T sys_function_control_word_modify_para_l; LOG_SIZHU_PRE_MODIFY_SAVE_T pre_modify_para_l; LOG_SIZHU_FLOW_CONFIG_MODIFY_SAVE_T flow_config_modify_para_l; LOG_SIZHU_TEM_MODIFY_SAVE_T tem_modify_para_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { //¹¦ÄÜ¿ØÖÆ×Ö²¿·ÖÐÞ¸Ä memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[0], &system_function_ctrl_word_g.fun_ctrl_union[0], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[1], &system_function_ctrl_word_g.fun_ctrl_union[1], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[2], &system_function_ctrl_word_g.fun_ctrl_union[2], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[3], &system_function_ctrl_word_g.fun_ctrl_union[3], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[4], &system_function_ctrl_word_g.fun_ctrl_union[4], 2); if( *DataPtr ==1) { system_function_ctrl_word_g.fun_ctrl_word.small_flow_cut_off = SYSTEM_SINGLE_BIT_SET1; }else { system_function_ctrl_word_g.fun_ctrl_word.small_flow_cut_off = SYSTEM_SINGLE_BIT_SET0; } if( *(DataPtr +1) ==1) { system_function_ctrl_word_g.fun_ctrl_word.penalty_measure2 = 0; }else { system_function_ctrl_word_g.fun_ctrl_word.penalty_measure2 = 1; } if( *(DataPtr +2) ==1) { system_function_ctrl_word_g.fun_ctrl_word.penalty_measure3 = 0; }else { system_function_ctrl_word_g.fun_ctrl_word.penalty_measure3 = 1; } if( *(DataPtr +94) ==1) { system_function_ctrl_word_g.fun_ctrl_word.compressibility_factor_choose = SYSTEM_SINGLE_BIT_SET1; }else { system_function_ctrl_word_g.fun_ctrl_word.compressibility_factor_choose = SYSTEM_SINGLE_BIT_SET0; } eeprom_multiple_data_write((uint8_t *) &system_function_ctrl_word_g, SYSTEM_FUNCTION_CONTROL_WORD_ADDR, SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH); //Á÷Á¿²ÎÊýÐÞ¸Ä memcpy ( &flow_config_modify_para_l.flow_alarm_up_limit_before, &flow_limit_g.flow_alarm_up_limit, 4); memcpy ( &flow_config_modify_para_l.flow_alarm_up_up_limit_before, &flow_limit_g.flow_alarm_up_up_limit, 4); memcpy ( &flow_config_modify_para_l.flow_alarm_low_limit_before, &flow_limit_g.flow_alarm_low_limit, 4); memcpy ( &flow_config_modify_para_l.flow_up_up_limit_replace_value_before, &flow_limit_g.flow_up_up_limit_replace_value, 4); memcpy ( &flow_config_modify_para_l.flow_small_cut_off_value_before, &flow_limit_g.flow_small_cut_off_value, 4); NEW_arraya_2_arrayb(DataPtr+3,(u8 *)&flow_limit_g.flow_alarm_up_limit,4,1); NEW_arraya_2_arrayb(DataPtr+7,(u8 *)&flow_limit_g.flow_alarm_up_up_limit,4,1); NEW_arraya_2_arrayb(DataPtr+11,(u8 *)&flow_limit_g.flow_alarm_low_limit,4,1); NEW_arraya_2_arrayb(DataPtr+15,(u8 *)&flow_limit_g.flow_up_up_limit_replace_value,4,1); NEW_arraya_2_arrayb(DataPtr+19,(u8 *)&flow_limit_g.flow_small_cut_off_value,4,1); eeprom_multiple_data_write((uint8_t *) &flow_limit_g, FLOW_CONFIG_PARAM_ADDR, FLOW_LIMIT_LENGTH); system_para_control_run_g.small_flow_cut = flow_limit_g.flow_small_cut_off_value / 3600; //ѹÁ¦²ÎÊý memcpy ( &pre_modify_para_l.pressure_para_k_before, &pressure_para_set_g.pressure_para_k, 4); memcpy ( &pre_modify_para_l.pressure_para_b_before, &pressure_para_set_g.pressure_para_b, 4); memcpy ( &pre_modify_para_l.pressure_up_limit_before, &pressure_para_set_g.pressure_up_limit, 4); memcpy ( &pre_modify_para_l.pressure_up_up_limit_before, &pressure_para_set_g.pressure_up_up_limit, 4); memcpy ( &pre_modify_para_l.pressure_low_limit_before, &pressure_para_set_g.pressure_low_limit, 4); memcpy ( &pre_modify_para_l.pressure_low_low_limit_before, &pressure_para_set_g.pressure_low_low_limit, 4); memcpy ( &pre_modify_para_l.pressure_measure_range_up_before, &pressure_para_set_g.pressure_measure_range_up, 4); memcpy ( &pre_modify_para_l.pressure_measure_range_low_before, &pressure_para_set_g.pressure_measure_range_low, 4); memcpy ( &pre_modify_para_l.pressure_up_up_limit_replace_value_before, &pressure_para_set_g.pressure_up_up_limit_replace_value, 4); NEW_arraya_2_arrayb(DataPtr+25,(u8 *)&pressure_para_set_g.pressure_para_k,4,1); NEW_arraya_2_arrayb(DataPtr+29,(u8 *)&pressure_para_set_g.pressure_para_b,4,1); NEW_arraya_2_arrayb(DataPtr+33,(u8 *)&pressure_para_set_g.pressure_up_limit,4,1); NEW_arraya_2_arrayb(DataPtr+37,(u8 *)&pressure_para_set_g.pressure_up_up_limit,4,1); NEW_arraya_2_arrayb(DataPtr+41,(u8 *)&pressure_para_set_g.pressure_low_limit,4,1); NEW_arraya_2_arrayb(DataPtr+45,(u8 *)&pressure_para_set_g.pressure_low_low_limit,4,1); NEW_arraya_2_arrayb(DataPtr+49,(u8 *)&pressure_para_set_g.pressure_measure_range_up,4,1); NEW_arraya_2_arrayb(DataPtr+53,(u8 *)&pressure_para_set_g.pressure_measure_range_low,4,1); NEW_arraya_2_arrayb(DataPtr+57,(u8 *)&pressure_para_set_g.pressure_up_up_limit_replace_value,4,1); eeprom_multiple_data_write((uint8_t *) &pressure_para_set_g, PRE_CONFIG_PARAM_ADDR, PRESSURE_PARA_SET_LENGTH); //ζȲÎÊý memcpy ( &tem_modify_para_l.temperature_para_k_before, &temperature_para_set_g.temperature_para_k, 4); memcpy ( &tem_modify_para_l.temperature_para_b_before, &temperature_para_set_g.temperature_para_b, 4); memcpy ( &tem_modify_para_l.temperature_up_limit_before, &temperature_para_set_g.temperature_up_limit, 2); memcpy ( &tem_modify_para_l.temperature_up_up_limit_before, &temperature_para_set_g.temperature_up_up_limit, 2); memcpy ( &tem_modify_para_l.temperature_low_limit_before, &temperature_para_set_g.temperature_low_limit, 2); memcpy ( &tem_modify_para_l.temperature_low_low_limit_before, &temperature_para_set_g.temperature_low_low_limit, 2); memcpy ( &tem_modify_para_l.temperature_measure_range_up_before, &temperature_para_set_g.temperature_measure_range_up, 2); memcpy ( &tem_modify_para_l.temperature_measure_range_low_before, &temperature_para_set_g.temperature_measure_range_low, 2); memcpy ( &tem_modify_para_l.temperature_up_up_limit_replace_value_before, &temperature_para_set_g.temperature_up_up_limit_replace_value, 2); memcpy ( &tem_modify_para_l.temperature_upheaval_valve_before, &temperature_para_set_g.temperature_upheaval_valve, 4); memcpy ( &tem_modify_para_l.ambient_temperature_up_limit_before, &temperature_para_set_g.ambient_temperature_up_limit, 2); memcpy ( &tem_modify_para_l.ambient_temperature_low_limit_before, &temperature_para_set_g.ambient_temperature_low_limit, 2); NEW_arraya_2_arrayb(DataPtr+63 ,(u8 *)&temperature_para_set_g.temperature_para_k,4,1); NEW_arraya_2_arrayb(DataPtr+67,(u8 *)&temperature_para_set_g.temperature_para_b,4,1); NEW_arraya_2_arrayb(DataPtr+71,(u8 *)&temperature_para_set_g.temperature_up_limit,2,1); NEW_arraya_2_arrayb(DataPtr+73,(u8 *)&temperature_para_set_g.temperature_up_up_limit,2,1); NEW_arraya_2_arrayb(DataPtr+75,(u8 *)&temperature_para_set_g.temperature_low_limit,2,1); NEW_arraya_2_arrayb(DataPtr+77,(u8 *)&temperature_para_set_g.temperature_low_low_limit,2,1); NEW_arraya_2_arrayb(DataPtr+79,(u8 *)&temperature_para_set_g.temperature_measure_range_up,2,1); NEW_arraya_2_arrayb(DataPtr+81,(u8 *)&temperature_para_set_g.temperature_measure_range_low,2,1); NEW_arraya_2_arrayb(DataPtr+83,(u8 *)&temperature_para_set_g.temperature_up_up_limit_replace_value,2,1); NEW_arraya_2_arrayb(DataPtr+85,(u8 *)&temperature_para_set_g.temperature_upheaval_valve,4,1); NEW_arraya_2_arrayb(DataPtr+89,(u8 *)&temperature_para_set_g.ambient_temperature_up_limit,2,1); NEW_arraya_2_arrayb(DataPtr+91,(u8 *)&temperature_para_set_g.ambient_temperature_low_limit,2,1); eeprom_multiple_data_write((uint8_t *) &temperature_para_set_g, TEM_CONFIG_PARAM_ADDR, TEMPERATURE_PARA_SET_LENGTH); //¹¦ÄÜ¿ØÖÆ×ÖÐ޸ļǼ±£´æ sys_function_control_word_modify_para_l.serial_number = 0; sys_function_control_word_modify_para_l.modify_source = 1; sys_function_control_word_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); sys_function_control_word_modify_para_l.Sample_month = HEX2BCD(calendar.month); sys_function_control_word_modify_para_l.Sample_day = HEX2BCD(calendar.date); sys_function_control_word_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); sys_function_control_word_modify_para_l.Sample_min = HEX2BCD(calendar.min); sys_function_control_word_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); sys_function_control_word_modify_para_l.para_modify_id = 10; memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[0], &system_function_ctrl_word_g.fun_ctrl_union[0], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[1], &system_function_ctrl_word_g.fun_ctrl_union[1], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[2], &system_function_ctrl_word_g.fun_ctrl_union[2], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[3], &system_function_ctrl_word_g.fun_ctrl_union[3], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[4], &system_function_ctrl_word_g.fun_ctrl_union[4], 2); ufg620_para_change_log_record_save(PARM_MODIFY_ID_SYSTEM_FUNCTION_CONTROL_WORD,(uint8_t *)& sys_function_control_word_modify_para_l); //Á÷Á¿²ÎÊýÐ޸ļǼ±£´æ flow_config_modify_para_l.serial_number = 0; flow_config_modify_para_l.modify_source = 1; flow_config_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); flow_config_modify_para_l.Sample_month = HEX2BCD(calendar.month); flow_config_modify_para_l.Sample_day = HEX2BCD(calendar.date); flow_config_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); flow_config_modify_para_l.Sample_min = HEX2BCD(calendar.min); flow_config_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); flow_config_modify_para_l.para_modify_id = 5; memcpy ( &flow_config_modify_para_l.flow_alarm_up_limit_after, &flow_limit_g.flow_alarm_up_limit, 4); memcpy ( &flow_config_modify_para_l.flow_alarm_up_up_limit_after, &flow_limit_g.flow_alarm_up_up_limit, 4); memcpy ( &flow_config_modify_para_l.flow_alarm_low_limit_after, &flow_limit_g.flow_alarm_low_limit, 4); memcpy ( &flow_config_modify_para_l.flow_up_up_limit_replace_value_after, &flow_limit_g.flow_up_up_limit_replace_value, 4); memcpy ( &flow_config_modify_para_l.flow_small_cut_off_value_after, &flow_limit_g.flow_small_cut_off_value, 4); ufg620_para_change_log_record_save(PARM_MODIFY_ID_FLOW_CONFIG,(uint8_t *)& flow_config_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.gas_para_amend == 1) { if(alarm_report_para_g.flow_config_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 96 +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; if(system_function_ctrl_word_g.fun_ctrl_word.small_flow_cut_off == 1) { log_send_buffer[14] = 1; }else { log_send_buffer[14] = 0; } if(system_function_ctrl_word_g.fun_ctrl_word.penalty_measure2 == 0) //³Í½ä¼ÆÁ¿¹¦ÄÜ¹Ø { log_send_buffer[15] = 1; }else { log_send_buffer[15] = 0; } if(system_function_ctrl_word_g.fun_ctrl_word.penalty_measure3 == 0) //³Í½ä¼ÆÁ¿¹¦ÄÜ¹Ø { log_send_buffer[16] = 1; }else { log_send_buffer[16] = 0; } NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_alarm_up_limit,&log_send_buffer[17],4,1); NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_alarm_up_up_limit,&log_send_buffer[21],4,1); NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_alarm_low_limit,&log_send_buffer[25],4,1); NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_up_up_limit_replace_value,&log_send_buffer[29],4,1); NEW_arraya_2_arrayb((u8 *)&flow_limit_g.flow_small_cut_off_value,&log_send_buffer[33],4,1); log_send_buffer[37] = 0; log_send_buffer[38] = 0; NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_para_k,&log_send_buffer[39],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_para_b,&log_send_buffer[43],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_up_limit,&log_send_buffer[47],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_up_up_limit,&log_send_buffer[51],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_low_limit,&log_send_buffer[55],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_low_low_limit,&log_send_buffer[59],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_measure_range_up,&log_send_buffer[63],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_measure_range_low,&log_send_buffer[67],4,1); NEW_arraya_2_arrayb((u8 *)&pressure_para_set_g.pressure_up_up_limit_replace_value,&log_send_buffer[71],4,1); log_send_buffer[75] = 0; log_send_buffer[76] = 0; NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_para_k,&log_send_buffer[77],4,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_para_b,&log_send_buffer[81],4,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_up_limit,&log_send_buffer[85],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_up_up_limit,&log_send_buffer[87],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_low_limit,&log_send_buffer[89],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_low_low_limit,&log_send_buffer[91],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_measure_range_up,&log_send_buffer[93],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_measure_range_low,&log_send_buffer[95],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_up_up_limit_replace_value,&log_send_buffer[97],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.temperature_upheaval_valve,&log_send_buffer[99],4,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.ambient_temperature_up_limit,&log_send_buffer[103],2,1); NEW_arraya_2_arrayb((u8 *)&temperature_para_set_g.ambient_temperature_low_limit,&log_send_buffer[105],2,1); log_send_buffer[107] = 0; if(system_function_ctrl_word_g.fun_ctrl_word.compressibility_factor_choose == 1) { log_send_buffer[108] = 1; }else { log_send_buffer[108] = 0; } log_send_buffer[109] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÍƵÂö³å²ÎÊý void COM_low_pluse_para_out_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_LOW_PULSE_CONFIG_MODIFY_SAVE_T low_pulse_config_modify_para_l; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { memcpy ( &low_pulse_config_modify_para_l.low_pluse_para_out_value_before, &low_pluse_para_out_g.low_pluse_para_out_value, 4); memcpy ( &low_pulse_config_modify_para_l.low_pluse_para_out_wide_before, &low_pluse_para_out_g.low_pluse_para_out_wide, 2); low_pulse_config_modify_para_l.low_pluse_flow_type_before = 0; NEW_arraya_2_arrayb(DataPtr,(u8 *)&low_pluse_para_out_g.low_pluse_para_out_value,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&low_pluse_para_out_g.low_pluse_para_out_wide,2,1); eeprom_multiple_data_write((uint8_t *) &low_pluse_para_out_g, LOW_PULSE_CONFIG_PARAM_ADDR, LOW_PULSE_PARA_OUT_LENGTH); low_pulse_out_para_check_fun(); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ low_pulse_config_modify_para_l.serial_number = 0; low_pulse_config_modify_para_l.modify_source = 1; low_pulse_config_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); low_pulse_config_modify_para_l.Sample_month = HEX2BCD(calendar.month); low_pulse_config_modify_para_l.Sample_day = HEX2BCD(calendar.date); low_pulse_config_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); low_pulse_config_modify_para_l.Sample_min = HEX2BCD(calendar.min); low_pulse_config_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); low_pulse_config_modify_para_l.para_modify_id = 6; memcpy ( &low_pulse_config_modify_para_l.low_pluse_para_out_value_after, &low_pluse_para_out_g.low_pluse_para_out_value, 4); memcpy ( &low_pulse_config_modify_para_l.low_pluse_para_out_wide_after, &low_pluse_para_out_g.low_pluse_para_out_wide, 2); low_pulse_config_modify_para_l.low_pluse_flow_type_after = 0; ufg620_para_change_log_record_save(PARM_MODIFY_ID_LOW_PULSE_CONFIG,(uint8_t *)& low_pulse_config_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.low_pulse_para_amend == 1) { if(alarm_report_para_g.low_pulse_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&low_pluse_para_out_g.low_pluse_para_out_value,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&low_pluse_para_out_g.low_pluse_para_out_wide,&log_send_buffer[18],2,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µçÁ÷»·ÅäÖòÎÊý void COM_electric_current_loop_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_CURRENT_LOOP_CONFIG_MODIFY_SAVE_T current_loop_config_modify_para_l; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { memcpy ( ¤t_loop_config_modify_para_l.flow_low_limit_before, &electric_current_loop_g.electric_current_min_value, 4); memcpy ( ¤t_loop_config_modify_para_l.flow_up_limit_before, &electric_current_loop_g.electric_current_max_value, 4); current_loop_config_modify_para_l.flow_type_before = (system_function_ctrl_word_g.fun_ctrl_word.current_loop_set); NEW_arraya_2_arrayb(DataPtr,(u8 *)&electric_current_loop_g.electric_current_min_value,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&electric_current_loop_g.electric_current_max_value,4,1); eeprom_multiple_data_write((uint8_t *) &electric_current_loop_g, CURRENT_LOOP_CONFIG_PARAM_ADDR, ELECTRIC_CURRENT_LOOP_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ current_loop_config_modify_para_l.serial_number = 0; current_loop_config_modify_para_l.modify_source = 1; current_loop_config_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); current_loop_config_modify_para_l.Sample_month = HEX2BCD(calendar.month); current_loop_config_modify_para_l.Sample_day = HEX2BCD(calendar.date); current_loop_config_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); current_loop_config_modify_para_l.Sample_min = HEX2BCD(calendar.min); current_loop_config_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); current_loop_config_modify_para_l.para_modify_id = 7; memcpy ( ¤t_loop_config_modify_para_l.flow_low_limit_after, &electric_current_loop_g.electric_current_min_value, 4); memcpy ( ¤t_loop_config_modify_para_l.flow_up_limit_after, &electric_current_loop_g.electric_current_max_value, 4); current_loop_config_modify_para_l.flow_type_after = system_function_ctrl_word_g.fun_ctrl_word.current_loop_set; ufg620_para_change_log_record_save(PARM_MODIFY_ID_CURRENT_LOOP_CONFIG,(uint8_t *)& current_loop_config_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.current_loop_para_amend == 1) { if(alarm_report_para_g.current_loop_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&electric_current_loop_g.electric_current_min_value,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&electric_current_loop_g.electric_current_max_value,&log_send_buffer[18],4,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //RS485ÅäÖòÎÊý void COM_device_modbus_btl_set_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { flow_device_modbus_g.set_modbus_addr = *DataPtr; NEW_arraya_2_arrayb(DataPtr + 1,(u8 *)&flow_device_modbus_g.set_modbus_rate,4,1); flow_device_modbus_g.set_modbus_parity = *(DataPtr + 5); eeprom_multiple_data_write((uint8_t *) &flow_device_modbus_g, RS485_CONFIG_PARAM_ADDR, DEVICE_MODBUS_BTL_SET_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); modbus_uart_init(); //RS485²ÎÊýÐÞ¸ÄÁ¢¼´ÉúЧ } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =8 +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = flow_device_modbus_g.set_modbus_addr; NEW_arraya_2_arrayb((u8 *)&flow_device_modbus_g.set_modbus_rate,&log_send_buffer[15],4,1); log_send_buffer[19] = flow_device_modbus_g.set_modbus_parity; log_send_buffer[20] = 1; log_send_buffer[21] = 1; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÉÏλ»ú/APPÃÜÂëÉèÖà void COM_device_password_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &device_password_g, DataPtr, DEVICE_PASSWORD_LENGTH); eeprom_multiple_data_write((uint8_t *) &device_password_g, APP_PC_PASSWORD_ADDR, DEVICE_PASSWORD_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if((WriteOrRead==1)&&(v20_system_para_g.system_set_authorize_flag==2)) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = DEVICE_PASSWORD_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; memcpy ( &log_send_buffer[14],&device_password_g , DEVICE_PASSWORD_LENGTH); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //¼ÆÁ¿¶³½á²ÎÊý void COM_measure_freez_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr,(u8 *)&measure_freez_para_g.period_freez_interval,2,1); NEW_arraya_2_arrayb(DataPtr+2,(u8 *)&measure_freez_para_g.daily_cumulative_settlement_time,2,0); eeprom_multiple_data_write((uint8_t *) &measure_freez_para_g, MEASURE_FREEZ_PARAM_ADDR, MEASURE_FREEZ_PARA_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =MEASURE_FREEZ_PARA_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&measure_freez_para_g.period_freez_interval,&log_send_buffer[14],2,1); NEW_arraya_2_arrayb((u8 *)&measure_freez_para_g.daily_cumulative_settlement_time,&log_send_buffer[16],2,0); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //˼ÖþÍøÂçÅäÖòÎÊý void COM_network_com_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr,(u8 *)&network_com_para_g.company_ip1,4,0); NEW_arraya_2_arrayb(DataPtr + 4,(u8 *)&network_com_para_g.company_ip_port1,2,1); network_com_para_g.ip1_connect_mode = *(DataPtr + 6); NEW_arraya_2_arrayb(DataPtr + 7,(u8 *)&network_com_para_g.company_ip2,4,0); NEW_arraya_2_arrayb(DataPtr + 11,(u8 *)&network_com_para_g.company_ip_port2,2,1); network_com_para_g.ip2_connect_mode = *(DataPtr + 13); NEW_arraya_2_arrayb(DataPtr + 14,(u8 *)&network_com_para_g.company_net_bat_power_data_period,2,1); NEW_arraya_2_arrayb(DataPtr + 16,(u8 *)&network_com_para_g.company_net_ext_power_data_period,2,1); network_com_para_g.company_send_type = *(DataPtr + 18); NEW_arraya_2_arrayb(DataPtr + 19,(u8 *)&network_com_para_g.company_net_bat_power_send_period,2,1); NEW_arraya_2_arrayb(DataPtr + 21,(u8 *)&network_com_para_g.company_net_ext_power_send_period,2,1); NEW_arraya_2_arrayb(DataPtr + 23,(u8 *)&network_com_para_g.company_net_send_first_time,2,0); network_com_para_g.company_net_time_send_times = *(DataPtr + 25); memcpy ( &network_com_para_g.company_net_send_time, DataPtr + 26, 24); NEW_arraya_2_arrayb(DataPtr + 50,(u8 *)&network_com_para_g.retransmission_interval,2,1); network_com_para_g.retransmission_number = *(DataPtr + 52); // NEW_arraya_2_arrayb(DataPtr + 50,(u8 *)&v20_system_para_g.system_bat_work_period2,2,1); // v20_system_para_g.system_bat_power_percent = *(DataPtr + 52); NEW_arraya_2_arrayb(DataPtr + 53,(u8 *)&network_com_para_g.communicationTimeout,2,1); if(network_com_para_g.company_net_bat_power_send_period < 60) { network_com_para_g.company_net_bat_power_send_period = 60; } if(network_com_para_g.company_net_ext_power_send_period < 5) { network_com_para_g.company_net_ext_power_send_period = 5; } if(network_com_para_g.retransmission_number>5) { network_com_para_g.retransmission_number = 1; } if(network_com_para_g.retransmission_interval >120) { network_com_para_g.retransmission_interval = 10; } if(network_com_para_g.communicationTimeout<60 || network_com_para_g.communicationTimeout>250) { network_com_para_g.communicationTimeout=120; } eeprom_multiple_data_write((uint8_t *) &network_com_para_g, WIRELESS_COM_PARAM_ADDR, 55); // GPRS_Init(ONPOWERGPRSSEND); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 55 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_ip1,&log_send_buffer[14],4,0); NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_ip_port1,&log_send_buffer[18],2,1); log_send_buffer[20] = network_com_para_g.ip1_connect_mode ; NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_ip2,&log_send_buffer[21],4,0); NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_ip_port2,&log_send_buffer[25],2,1); log_send_buffer[27] = network_com_para_g.ip2_connect_mode ; NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_net_bat_power_data_period,&log_send_buffer[28],2,1); NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_net_ext_power_data_period,&log_send_buffer[30],2,1); log_send_buffer[32] = network_com_para_g.company_send_type ; NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_net_bat_power_send_period,&log_send_buffer[33],2,1); NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_net_ext_power_send_period,&log_send_buffer[35],2,1); NEW_arraya_2_arrayb((u8 *)&network_com_para_g.company_net_send_first_time,&log_send_buffer[37],2,0); log_send_buffer[39] = network_com_para_g.company_net_time_send_times; memcpy (&log_send_buffer[40] ,&network_com_para_g.company_net_send_time , 24); NEW_arraya_2_arrayb((u8 *)&network_com_para_g.retransmission_interval,&log_send_buffer[64],2,1); log_send_buffer[66] = network_com_para_g.retransmission_number; // NEW_arraya_2_arrayb((u8 *)&v20_system_para_g.system_bat_work_period2,&log_send_buffer[64],2,1); // log_send_buffer[66] = v20_system_para_g.system_bat_power_percent; NEW_arraya_2_arrayb((u8 *)&network_com_para_g.communicationTimeout,&log_send_buffer[67],2,1); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //˼ÖþÍøÂçÅäÖòÎÊýAPN void COM_network_com_apn_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { network_com_apn_g.APN_config_options = *(DataPtr + 0); NEW_arraya_2_arrayb(DataPtr + 1,(u8 *)&network_com_apn_g.APN[0],64,0); NEW_arraya_2_arrayb(DataPtr + 65,(u8 *)&network_com_apn_g.user_name[0],32,0); NEW_arraya_2_arrayb(DataPtr + 97,(u8 *)&network_com_apn_g.password[0],32,0); NEW_arraya_2_arrayb(DataPtr + 129,(u8 *)&network_com_apn_g.listening_port,2,1); eeprom_multiple_data_write((uint8_t *) &network_com_apn_g, WIRELESS_COM_APN_ADDR, NETWORK_COM_APN_LENGTH ); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 163 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = network_com_apn_g.APN_config_options; NEW_arraya_2_arrayb((u8 *)&network_com_apn_g.APN[0],&log_send_buffer[15],64,0); NEW_arraya_2_arrayb((u8 *)&network_com_apn_g.user_name[0],&log_send_buffer[79],32,0); NEW_arraya_2_arrayb((u8 *)&network_com_apn_g.password[0],&log_send_buffer[111],32,0); NEW_arraya_2_arrayb((u8 *)&network_com_apn_g.listening_port,&log_send_buffer[143],2,1); NEW_arraya_2_arrayb((u8 *)&VariaDlg.Local_IP,&log_send_buffer[145],4,0); for(count_i=0;count_i<28;count_i++) { log_send_buffer[149 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µç³ØÅäÖòÎÊý void COM_battery_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; // if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { battery_para_g.lith_power_low_valve = *DataPtr; battery_para_g.lith_power_down_valve = *(DataPtr + 1); battery_para_g.alka_power_low_valve = *(DataPtr + 2); battery_para_g.alka_power_down_valve = *(DataPtr + 3); eeprom_multiple_data_write((uint8_t *) &battery_para_g, BATTERY_PARAM_ADDR, BATTERY_PARA_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = BATTERY_PARA_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = battery_para_g.lith_power_low_valve; log_send_buffer[15] = battery_para_g.lith_power_down_valve; log_send_buffer[16] = battery_para_g.alka_power_low_valve; log_send_buffer[17] = battery_para_g.alka_power_down_valve; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //̽ͷÒì³£Åж¨²ÎÊý void COM_ultrasonic_sensor_abnormal_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_SONIC_SENSOR_ABNORMAL_MODIFY_SAVE_T sonic_sensor_abnormal_modify_para_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &sonic_sensor_abnormal_modify_para_l.velocity_difference_threshold_before, &ultrasonic_sensor_abnormal_g.velocity_difference_threshold, 2); memcpy ( &sonic_sensor_abnormal_modify_para_l.channel_time_difference_threshold_before, &ultrasonic_sensor_abnormal_g.channel_time_difference_threshold, 2); memcpy ( &sonic_sensor_abnormal_modify_para_l.sound_velocity_difference_threshold_before, &ultrasonic_sensor_abnormal_g.sound_velocity_difference_threshold, 2); sonic_sensor_abnormal_modify_para_l.SNR_threshold_before = ultrasonic_sensor_abnormal_g.SNR_threshold; sonic_sensor_abnormal_modify_para_l.signal_up_limit_threshold_before = ultrasonic_sensor_abnormal_g.signal_up_limit_threshold; sonic_sensor_abnormal_modify_para_l.signal_low_limit_threshold_before = ultrasonic_sensor_abnormal_g.signal_low_limit_threshold; sonic_sensor_abnormal_modify_para_l.gain_abnormal_threshold_before = ultrasonic_sensor_abnormal_g.gain_abnormal_threshold; NEW_arraya_2_arrayb(DataPtr,(u8 *)&ultrasonic_sensor_abnormal_g.velocity_difference_threshold,2,1); NEW_arraya_2_arrayb(DataPtr + 2,(u8 *)&ultrasonic_sensor_abnormal_g.channel_time_difference_threshold,2,1); NEW_arraya_2_arrayb(DataPtr + 4,(u8 *)&ultrasonic_sensor_abnormal_g.sound_velocity_difference_threshold,2,1); ultrasonic_sensor_abnormal_g.SNR_threshold = *(DataPtr + 6); ultrasonic_sensor_abnormal_g.signal_up_limit_threshold = *(DataPtr + 7); ultrasonic_sensor_abnormal_g.signal_low_limit_threshold = *(DataPtr + 8); ultrasonic_sensor_abnormal_g.gain_abnormal_threshold = *(DataPtr + 9); eeprom_multiple_data_write((uint8_t *) &ultrasonic_sensor_abnormal_g, SONIC_SENSOR_ABNORMAL_PARAM_ADDR,ULTRASONIC_SENSOR_ABNORMAL_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ sonic_sensor_abnormal_modify_para_l.serial_number = 0; sonic_sensor_abnormal_modify_para_l.modify_source = 1; sonic_sensor_abnormal_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); sonic_sensor_abnormal_modify_para_l.Sample_month = HEX2BCD(calendar.month); sonic_sensor_abnormal_modify_para_l.Sample_day = HEX2BCD(calendar.date); sonic_sensor_abnormal_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); sonic_sensor_abnormal_modify_para_l.Sample_min = HEX2BCD(calendar.min); sonic_sensor_abnormal_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); sonic_sensor_abnormal_modify_para_l.para_modify_id = 9; memcpy ( &sonic_sensor_abnormal_modify_para_l.velocity_difference_threshold_after, &ultrasonic_sensor_abnormal_g.velocity_difference_threshold, 2); memcpy ( &sonic_sensor_abnormal_modify_para_l.channel_time_difference_threshold_after, &ultrasonic_sensor_abnormal_g.channel_time_difference_threshold, 2); memcpy ( &sonic_sensor_abnormal_modify_para_l.sound_velocity_difference_threshold_after, &ultrasonic_sensor_abnormal_g.sound_velocity_difference_threshold, 2); sonic_sensor_abnormal_modify_para_l.SNR_threshold_after = ultrasonic_sensor_abnormal_g.SNR_threshold; sonic_sensor_abnormal_modify_para_l.signal_up_limit_threshold_after = ultrasonic_sensor_abnormal_g.signal_up_limit_threshold; sonic_sensor_abnormal_modify_para_l.signal_low_limit_threshold_after = ultrasonic_sensor_abnormal_g.signal_low_limit_threshold; sonic_sensor_abnormal_modify_para_l.gain_abnormal_threshold_after = ultrasonic_sensor_abnormal_g.gain_abnormal_threshold; ufg620_para_change_log_record_save(PARM_MODIFY_ID_SONIC_SENSOR_ABNORMAL,(uint8_t *)& sonic_sensor_abnormal_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.ut_err_amend == 1) { if(alarm_report_para_g.sensor_err_para_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&ultrasonic_sensor_abnormal_g.velocity_difference_threshold,&log_send_buffer[14],2,1); NEW_arraya_2_arrayb((u8 *)&ultrasonic_sensor_abnormal_g.channel_time_difference_threshold,&log_send_buffer[16],2,1); NEW_arraya_2_arrayb((u8 *)&ultrasonic_sensor_abnormal_g.sound_velocity_difference_threshold,&log_send_buffer[18],2,1); log_send_buffer[20] = ultrasonic_sensor_abnormal_g.SNR_threshold; log_send_buffer[21] = ultrasonic_sensor_abnormal_g.signal_up_limit_threshold; log_send_buffer[22] = ultrasonic_sensor_abnormal_g.signal_low_limit_threshold; log_send_buffer[23] = ultrasonic_sensor_abnormal_g.gain_abnormal_threshold; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //¸ßƵÂö³å²ÎÊý void COM_high_pluse_para_out_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr,(u8 *)&high_pluse_para_out_g.high_pluse_para_out,4,1); high_pluse_para_out_g.high_pluse_para_out_mode = *(DataPtr + 4); eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR,HIGH_PLUSE_PARA_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); // delay_ms(50); // ufg620_System_Reset(); if(system_alarm_ctrl_word_g.alarm_ctl_word.pluse_cal_amend == 1) { if(alarm_report_para_g.high_pulse_para_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&high_pluse_para_out_g.high_pluse_para_out,&log_send_buffer[14],4,1); log_send_buffer[18] = high_pluse_para_out_g.high_pluse_para_out_mode; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //×ۺϲÎÊýÅäÖÃ1£¬°üÀ¨µÍƵ¡¢¸ßƵ¡¢µçÁ÷»·¡¢RS485¡¢µç³Ø²ÎÊýµÈ void COM_synthesize_fun_1_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_SAVE_T sys_function_control_word_modify_para_l; LOG_SIZHU_LOW_PULSE_CONFIG_MODIFY_SAVE_T low_pulse_config_modify_para_l; LOG_SIZHU_CURRENT_LOOP_CONFIG_MODIFY_SAVE_T current_loop_config_modify_para_l; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { //¹¦ÄÜ¿ØÖÆ×Ö²¿·ÖÐÞ¸Ä memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[0], &system_function_ctrl_word_g.fun_ctrl_union[0], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[1], &system_function_ctrl_word_g.fun_ctrl_union[1], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[2], &system_function_ctrl_word_g.fun_ctrl_union[2], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[3], &system_function_ctrl_word_g.fun_ctrl_union[3], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[4], &system_function_ctrl_word_g.fun_ctrl_union[4], 2); if( *(DataPtr +12) ==1) { system_function_ctrl_word_g.fun_ctrl_word.current_loop_set &= (~(SFCW_CURRENT_LOOP_OPEN |SFCW_CURRENT_LOOP_LOW_LIMIT |SFCW_CURRENT_LOOP_WORK_CONDITION)); system_function_ctrl_word_g.fun_ctrl_word.current_loop_set |= SFCW_CURRENT_LOOP_OPEN; }else if( *(DataPtr +12) ==3) { system_function_ctrl_word_g.fun_ctrl_word.current_loop_set &= (~(SFCW_CURRENT_LOOP_OPEN |SFCW_CURRENT_LOOP_LOW_LIMIT |SFCW_CURRENT_LOOP_WORK_CONDITION)); system_function_ctrl_word_g.fun_ctrl_word.current_loop_set |= (SFCW_CURRENT_LOOP_OPEN | SFCW_CURRENT_LOOP_LOW_LIMIT); }else if( *(DataPtr +12) ==5) { system_function_ctrl_word_g.fun_ctrl_word.current_loop_set &= (~(SFCW_CURRENT_LOOP_OPEN |SFCW_CURRENT_LOOP_LOW_LIMIT |SFCW_CURRENT_LOOP_WORK_CONDITION)); system_function_ctrl_word_g.fun_ctrl_word.current_loop_set |= (SFCW_CURRENT_LOOP_OPEN | SFCW_CURRENT_LOOP_WORK_CONDITION); }else if( *(DataPtr +12) ==7) { system_function_ctrl_word_g.fun_ctrl_word.current_loop_set &= (~(SFCW_CURRENT_LOOP_OPEN |SFCW_CURRENT_LOOP_LOW_LIMIT |SFCW_CURRENT_LOOP_WORK_CONDITION)); system_function_ctrl_word_g.fun_ctrl_word.current_loop_set |= (SFCW_CURRENT_LOOP_OPEN |SFCW_CURRENT_LOOP_LOW_LIMIT |SFCW_CURRENT_LOOP_WORK_CONDITION); } else { system_function_ctrl_word_g.fun_ctrl_word.current_loop_set &= (~(SFCW_CURRENT_LOOP_OPEN |SFCW_CURRENT_LOOP_LOW_LIMIT |SFCW_CURRENT_LOOP_WORK_CONDITION)); } eeprom_multiple_data_write((uint8_t *) &system_function_ctrl_word_g, SYSTEM_FUNCTION_CONTROL_WORD_ADDR, SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH); //µÍƵÂö³å memcpy ( &low_pulse_config_modify_para_l.low_pluse_para_out_value_before, &low_pluse_para_out_g.low_pluse_para_out_value, 4); memcpy ( &low_pulse_config_modify_para_l.low_pluse_para_out_wide_before, &low_pluse_para_out_g.low_pluse_para_out_wide, 2); low_pulse_config_modify_para_l.low_pluse_flow_type_before = 0; NEW_arraya_2_arrayb(DataPtr,(u8 *)&low_pluse_para_out_g.low_pluse_para_out_value,4,1); NEW_arraya_2_arrayb(DataPtr+4,(u8 *)&low_pluse_para_out_g.low_pluse_para_out_wide,2,1); eeprom_multiple_data_write((uint8_t *) &low_pluse_para_out_g, LOW_PULSE_CONFIG_PARAM_ADDR, LOW_PULSE_PARA_OUT_LENGTH); low_pulse_out_para_check_fun(); //¸ßƵÂö³å NEW_arraya_2_arrayb(DataPtr+7,(u8 *)&high_pluse_para_out_g.high_pluse_para_out,4,1); high_pluse_para_out_g.high_pluse_para_out_mode = *(DataPtr + 11); eeprom_multiple_data_write((uint8_t *) &high_pluse_para_out_g, HIGH_PULSR_CONFIG_PARAM_ADDR,HIGH_PLUSE_PARA_LENGTH); high_pulse_out_para_check_fun(); //µçÁ÷»· memcpy ( ¤t_loop_config_modify_para_l.flow_low_limit_before, &electric_current_loop_g.electric_current_min_value, 4); memcpy ( ¤t_loop_config_modify_para_l.flow_up_limit_before, &electric_current_loop_g.electric_current_max_value, 4); current_loop_config_modify_para_l.flow_type_before = system_function_ctrl_word_g.fun_ctrl_word.current_loop_set; NEW_arraya_2_arrayb(DataPtr+13,(u8 *)&electric_current_loop_g.electric_current_min_value,4,1); NEW_arraya_2_arrayb(DataPtr+17,(u8 *)&electric_current_loop_g.electric_current_max_value,4,1); eeprom_multiple_data_write((uint8_t *) &electric_current_loop_g, CURRENT_LOOP_CONFIG_PARAM_ADDR, ELECTRIC_CURRENT_LOOP_LENGTH); electric_current_init();//µçÁ÷»·ÉèÖóõʼ»¯ //rs485 flow_device_modbus_g.set_modbus_addr = *(DataPtr + 21); NEW_arraya_2_arrayb(DataPtr + 22,(u8 *)&flow_device_modbus_g.set_modbus_rate,4,1); flow_device_modbus_g.set_modbus_parity = *(DataPtr + 26); eeprom_multiple_data_write((uint8_t *) &flow_device_modbus_g, RS485_CONFIG_PARAM_ADDR, DEVICE_MODBUS_BTL_SET_LENGTH); modbus_uart_init(); //RS485²ÎÊýÐÞ¸ÄÁ¢¼´ÉúЧ //¼ÆÁ¿¶³½á²ÎÊý NEW_arraya_2_arrayb(DataPtr+29,(u8 *)&measure_freez_para_g.period_freez_interval,2,1); NEW_arraya_2_arrayb(DataPtr+31,(u8 *)&measure_freez_para_g.daily_cumulative_settlement_time,2,0); eeprom_multiple_data_write((uint8_t *) &measure_freez_para_g, MEASURE_FREEZ_PARAM_ADDR, MEASURE_FREEZ_PARA_LENGTH); //µç³Ø battery_para_g.lith_power_low_valve = *(DataPtr + 33); battery_para_g.lith_power_down_valve = *(DataPtr + 34); battery_para_g.alka_power_low_valve = *(DataPtr + 35); battery_para_g.alka_power_down_valve = *(DataPtr + 36); eeprom_multiple_data_write((uint8_t *) &battery_para_g, BATTERY_PARAM_ADDR, BATTERY_PARA_LENGTH); //¹¦ÄÜ¿ØÖÆ×ÖÐ޸ļǼ±£´æ sys_function_control_word_modify_para_l.serial_number = 0; sys_function_control_word_modify_para_l.modify_source = 1; sys_function_control_word_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); sys_function_control_word_modify_para_l.Sample_month = HEX2BCD(calendar.month); sys_function_control_word_modify_para_l.Sample_day = HEX2BCD(calendar.date); sys_function_control_word_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); sys_function_control_word_modify_para_l.Sample_min = HEX2BCD(calendar.min); sys_function_control_word_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); sys_function_control_word_modify_para_l.para_modify_id = 10; memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[0], &system_function_ctrl_word_g.fun_ctrl_union[0], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[1], &system_function_ctrl_word_g.fun_ctrl_union[1], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[2], &system_function_ctrl_word_g.fun_ctrl_union[2], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[3], &system_function_ctrl_word_g.fun_ctrl_union[3], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[4], &system_function_ctrl_word_g.fun_ctrl_union[4], 2); ufg620_para_change_log_record_save(PARM_MODIFY_ID_SYSTEM_FUNCTION_CONTROL_WORD,(uint8_t *)& sys_function_control_word_modify_para_l); //µÍƵÐ޸ļǼ±£´æ low_pulse_config_modify_para_l.serial_number = 0; low_pulse_config_modify_para_l.modify_source = 1; low_pulse_config_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); low_pulse_config_modify_para_l.Sample_month = HEX2BCD(calendar.month); low_pulse_config_modify_para_l.Sample_day = HEX2BCD(calendar.date); low_pulse_config_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); low_pulse_config_modify_para_l.Sample_min = HEX2BCD(calendar.min); low_pulse_config_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); low_pulse_config_modify_para_l.para_modify_id = 6; memcpy ( &low_pulse_config_modify_para_l.low_pluse_para_out_value_after, &low_pluse_para_out_g.low_pluse_para_out_value, 4); memcpy ( &low_pulse_config_modify_para_l.low_pluse_para_out_wide_after, &low_pluse_para_out_g.low_pluse_para_out_wide, 2); low_pulse_config_modify_para_l.low_pluse_flow_type_after = 0; ufg620_para_change_log_record_save(PARM_MODIFY_ID_LOW_PULSE_CONFIG,(uint8_t *)& low_pulse_config_modify_para_l); if(system_alarm_ctrl_word_g.alarm_ctl_word.low_pulse_para_amend == 1) { if(alarm_report_para_g.low_pulse_param_modify_cnt>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length =37 +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&low_pluse_para_out_g.low_pluse_para_out_value,&log_send_buffer[14],4,1); NEW_arraya_2_arrayb((u8 *)&low_pluse_para_out_g.low_pluse_para_out_wide,&log_send_buffer[18],2,1); log_send_buffer[20] = 0; NEW_arraya_2_arrayb((u8 *)&high_pluse_para_out_g.high_pluse_para_out,&log_send_buffer[21],4,1); log_send_buffer[25] = high_pluse_para_out_g.high_pluse_para_out_mode; log_send_buffer[26] = 0; if((system_function_ctrl_word_g.fun_ctrl_word.current_loop_set&SFCW_CURRENT_LOOP_OPEN) == SFCW_CURRENT_LOOP_OPEN) { log_send_buffer[26] |=0x01; if((system_function_ctrl_word_g.fun_ctrl_word.current_loop_set&SFCW_CURRENT_LOOP_LOW_LIMIT) == SFCW_CURRENT_LOOP_LOW_LIMIT) { log_send_buffer[26] |=0x02; } if((system_function_ctrl_word_g.fun_ctrl_word.current_loop_set&SFCW_CURRENT_LOOP_WORK_CONDITION) == SFCW_CURRENT_LOOP_WORK_CONDITION) { log_send_buffer[26] |=0x04; } }else { log_send_buffer[26] = 0; } NEW_arraya_2_arrayb((u8 *)&electric_current_loop_g.electric_current_min_value,&log_send_buffer[27],4,1); NEW_arraya_2_arrayb((u8 *)&electric_current_loop_g.electric_current_max_value,&log_send_buffer[31],4,1); log_send_buffer[35] = flow_device_modbus_g.set_modbus_addr; NEW_arraya_2_arrayb((u8 *)&flow_device_modbus_g.set_modbus_rate,&log_send_buffer[36],4,1); log_send_buffer[40] = flow_device_modbus_g.set_modbus_parity; log_send_buffer[41] = 1; log_send_buffer[42] = 1; NEW_arraya_2_arrayb((u8 *)&measure_freez_para_g.period_freez_interval,&log_send_buffer[43],2,1); NEW_arraya_2_arrayb((u8 *)&measure_freez_para_g.daily_cumulative_settlement_time,&log_send_buffer[45],2,0); log_send_buffer[47] = battery_para_g.lith_power_low_valve; log_send_buffer[48] = battery_para_g.lith_power_down_valve; log_send_buffer[49] = battery_para_g.alka_power_low_valve; log_send_buffer[50] = battery_para_g.alka_power_down_valve; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ϵͳ״̬×Ö void COM_system_status_word_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { NEW_arraya_2_arrayb(DataPtr,(u8 *)&system_status_word_g.status_word_union[0],2,0); NEW_arraya_2_arrayb(DataPtr + 2,(u8 *)&system_status_word_g.status_word_union[1],2,0); NEW_arraya_2_arrayb(DataPtr + 4,(u8 *)&system_status_word_g.status_word_union[2],2,0); NEW_arraya_2_arrayb(DataPtr + 6,(u8 *)&system_status_word_g.status_word_union[3],2,0); NEW_arraya_2_arrayb(DataPtr + 8,(u8 *)&system_status_word_g.status_word_union[4],2,0); NEW_arraya_2_arrayb(DataPtr + 10,(u8 *)&system_status_word_g.status_word_union[5],2,0); eeprom_multiple_data_write((uint8_t *) &system_status_word_g, SYSTEM_STATUS_WORD_ADDR, SYSTEM_STATUS_WORD_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = SYSTEM_STATUS_WORD_INF_LENGTH +2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&system_status_word_g.status_word_union[0],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX],2,0); NEW_arraya_2_arrayb((u8 *)&system_status_word_g.status_word_union[1],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+2],2,0); NEW_arraya_2_arrayb((u8 *)&system_status_word_g.status_word_union[2],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+4],2,0); NEW_arraya_2_arrayb((u8 *)&system_status_word_g.status_word_union[3],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+6],2,0); NEW_arraya_2_arrayb((u8 *)&system_status_word_g.status_word_union[4],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+8],2,0); NEW_arraya_2_arrayb((u8 *)&system_status_word_g.status_word_union[5],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+10],2,0); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ϵͳ¹¦ÄÜ¿ØÖÆ×Ö void COM_system_function_ctrl_word_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; LOG_SIZHU_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_SAVE_T sys_function_control_word_modify_para_l; LOG_SIZHU_CURRENT_LOOP_CONFIG_MODIFY_SAVE_T current_loop_config_modify_para_l; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[0], &system_function_ctrl_word_g.fun_ctrl_union[0], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[1], &system_function_ctrl_word_g.fun_ctrl_union[1], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[2], &system_function_ctrl_word_g.fun_ctrl_union[2], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[3], &system_function_ctrl_word_g.fun_ctrl_union[3], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_union[4], &system_function_ctrl_word_g.fun_ctrl_union[4], 2); NEW_arraya_2_arrayb(DataPtr,(u8 *)&system_function_ctrl_word_g.fun_ctrl_union[0],2,0); NEW_arraya_2_arrayb(DataPtr + 2,(u8 *)&system_function_ctrl_word_g.fun_ctrl_union[1],2,0); NEW_arraya_2_arrayb(DataPtr + 4,(u8 *)&system_function_ctrl_word_g.fun_ctrl_union[2],2,0); NEW_arraya_2_arrayb(DataPtr + 6,(u8 *)&system_function_ctrl_word_g.fun_ctrl_union[3],2,0); // NEW_arraya_2_arrayb(DataPtr + 8,(u8 *)&system_function_ctrl_word_g.fun_ctrl_union[4],2,0); if(sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_word.bidirectional_measure != system_function_ctrl_word_g.fun_ctrl_word.bidirectional_measure )//µ¥Ë«ÏòÓбä¸ü£¬ÔòÏÔʾµÄµ¥Ë«Ïò¸úËæ { if(system_function_ctrl_word_g.fun_ctrl_word.bidirectional_measure == 1) //Ë«Ïò¼ÆÁ¿¿ª { system_function_ctrl_word_g.fun_ctrl_word.lcd_mode |=SFCW_LCD_BIDIRECTIONAL; }else { system_function_ctrl_word_g.fun_ctrl_word.lcd_mode |=SFCW_LCD_BIDIRECTIONAL; } } eeprom_multiple_data_write((uint8_t *) &system_function_ctrl_word_g, SYSTEM_FUNCTION_CONTROL_WORD_ADDR, SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); //±£´æÐ޸ļǼ sys_function_control_word_modify_para_l.serial_number = 0; sys_function_control_word_modify_para_l.modify_source = 1; sys_function_control_word_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); sys_function_control_word_modify_para_l.Sample_month = HEX2BCD(calendar.month); sys_function_control_word_modify_para_l.Sample_day = HEX2BCD(calendar.date); sys_function_control_word_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); sys_function_control_word_modify_para_l.Sample_min = HEX2BCD(calendar.min); sys_function_control_word_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); sys_function_control_word_modify_para_l.para_modify_id = 10; memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[0], &system_function_ctrl_word_g.fun_ctrl_union[0], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[1], &system_function_ctrl_word_g.fun_ctrl_union[1], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[2], &system_function_ctrl_word_g.fun_ctrl_union[2], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[3], &system_function_ctrl_word_g.fun_ctrl_union[3], 2); memcpy ( &sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_union[4], &system_function_ctrl_word_g.fun_ctrl_union[4], 2); ufg620_para_change_log_record_save(PARM_MODIFY_ID_SYSTEM_FUNCTION_CONTROL_WORD,(uint8_t *)& sys_function_control_word_modify_para_l); if(sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_word.manual_flow_para_ctrl == 0) { if(system_function_ctrl_word_g.fun_ctrl_word.manual_flow_para_ctrl == 1) { //Ô¶³ÌÁ÷Á¿µ÷Õû¹¦ÄÜ´Ó¿ªµ½¹Ø,ÔòÖØÖÃϵÊý cal_gas_para_g.A1_work_flow = 0; cal_gas_para_g.A2_work_flow = 0; cal_gas_para_g.A3_work_flow = 0; cal_gas_para_g.B1_para_flow = 1; cal_gas_para_g.B2_para_flow = 1; cal_gas_para_g.B3_para_flow = 1; eeprom_multiple_data_write( (uint8_t *) &cal_gas_para_g.A1_work_flow, SYSTEM_CMD_MAN_SET_FLOW_POINT_1, 24 ); } } if(sys_function_control_word_modify_para_l.ctrl_word_before.fun_ctrl_word.current_loop_set != sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_word.current_loop_set) { //µçÁ÷»·ÅäÖÃÓÐÐÞ¸Ä current_loop_config_modify_para_l.serial_number = 0; current_loop_config_modify_para_l.modify_source = 1; current_loop_config_modify_para_l.Sample_year = HEX2BCD((u8)(calendar.year-2000)); current_loop_config_modify_para_l.Sample_month = HEX2BCD(calendar.month); current_loop_config_modify_para_l.Sample_day = HEX2BCD(calendar.date); current_loop_config_modify_para_l.Sample_hour = HEX2BCD(calendar.hour); current_loop_config_modify_para_l.Sample_min = HEX2BCD(calendar.min); current_loop_config_modify_para_l.Sample_sec = HEX2BCD(calendar.sec); current_loop_config_modify_para_l.para_modify_id = 7; memcpy ( ¤t_loop_config_modify_para_l.flow_low_limit_before, &electric_current_loop_g.electric_current_min_value, 4); memcpy ( ¤t_loop_config_modify_para_l.flow_up_limit_before, &electric_current_loop_g.electric_current_max_value, 4); current_loop_config_modify_para_l.flow_type_before = sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_word.current_loop_set; memcpy ( ¤t_loop_config_modify_para_l.flow_low_limit_after, &electric_current_loop_g.electric_current_min_value, 4); memcpy ( ¤t_loop_config_modify_para_l.flow_up_limit_after, &electric_current_loop_g.electric_current_max_value, 4); current_loop_config_modify_para_l.flow_type_after = sys_function_control_word_modify_para_l.ctrl_word_after.fun_ctrl_word.current_loop_set; ufg620_para_change_log_record_save(PARM_MODIFY_ID_CURRENT_LOOP_CONFIG,(uint8_t *)& current_loop_config_modify_para_l); electric_current_init();//µçÁ÷»·ÉèÖóõʼ»¯ } } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; // com_frame_inf_g.data_field_length = SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH + 2; com_frame_inf_g.data_field_length = SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH-2 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; system_function_ctrl_word_g.fun_ctrl_union[3]|= 0x0040;//Íâ·þ¹Ø±Õ NEW_arraya_2_arrayb((u8 *)&system_function_ctrl_word_g.fun_ctrl_union[0],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX],2,0); NEW_arraya_2_arrayb((u8 *)&system_function_ctrl_word_g.fun_ctrl_union[1],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+2],2,0); NEW_arraya_2_arrayb((u8 *)&system_function_ctrl_word_g.fun_ctrl_union[2],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+4],2,0); NEW_arraya_2_arrayb((u8 *)&system_function_ctrl_word_g.fun_ctrl_union[3],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+6],2,0); // NEW_arraya_2_arrayb((u8 *)&system_function_ctrl_word_g.fun_ctrl_union[4],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+8],2,0); // for(count_i=0;count_i<6;count_i++) // { // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 10 + count_i] = 0; // } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ϵͳ±¨¾¯¿ØÖÆ×Ö void COM_system_alarm_ctrl_word_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; // if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr,(u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[0],2,0); NEW_arraya_2_arrayb(DataPtr + 2,(u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[1],2,0); NEW_arraya_2_arrayb(DataPtr + 4,(u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[2],2,0); NEW_arraya_2_arrayb(DataPtr + 6,(u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[3],2,0); NEW_arraya_2_arrayb(DataPtr + 8,(u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[4],2,0); NEW_arraya_2_arrayb(DataPtr + 10,(u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[5],2,0); NEW_arraya_2_arrayb(DataPtr + 12,(u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[6],2,0); NEW_arraya_2_arrayb(DataPtr + 14,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[0],2,0); NEW_arraya_2_arrayb(DataPtr + 16,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[1],2,0); NEW_arraya_2_arrayb(DataPtr + 18,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[2],2,0); NEW_arraya_2_arrayb(DataPtr + 20,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[3],2,0); NEW_arraya_2_arrayb(DataPtr + 22,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[4],2,0); NEW_arraya_2_arrayb(DataPtr + 24,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[5],2,0); NEW_arraya_2_arrayb(DataPtr + 26,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[6],2,0); eeprom_multiple_data_write((uint8_t *) &system_alarm_report_ctrl_word_g, SYSTEM_SEND_UP_CONTROL_WORD_ADDR, SYSTEM_ALARM_WORD_INF_LENGTH); eeprom_multiple_data_write((uint8_t *) &system_alarm_ctrl_word_g, SYSTEM_ALARM_CONTROL_WORD_ADDR, SYSTEM_ALARM_WORD_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = SYSTEM_ALARM_WORD_INF_LENGTH*2 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[0],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[1],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +2],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[2],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+4],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[3],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+6],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[4],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+8],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[5],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+10],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_ctrl_word_g.alarm_ctl_word_union[6],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+12],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[0],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX+14],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[1],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +16],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[2],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +18],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[3],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +20],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[4],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +22],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[5],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +24],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[6],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +26],2,0); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ϵͳ±¨¾¯Éϱ¨¿ØÖÆ×Ö void COM_system_alarm_report_ctrl_word_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; // if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[0],2,0); NEW_arraya_2_arrayb(DataPtr + 2,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[1],2,0); NEW_arraya_2_arrayb(DataPtr + 4,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[2],2,0); NEW_arraya_2_arrayb(DataPtr + 6,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[3],2,0); NEW_arraya_2_arrayb(DataPtr + 8,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[4],2,0); NEW_arraya_2_arrayb(DataPtr + 10,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[5],2,0); NEW_arraya_2_arrayb(DataPtr + 12,(u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[6],2,0); eeprom_multiple_data_write((uint8_t *) &system_alarm_report_ctrl_word_g, SYSTEM_SEND_UP_CONTROL_WORD_ADDR, SYSTEM_ALARM_WORD_INF_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = SYSTEM_ALARM_WORD_INF_LENGTH +2 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[0],&log_send_buffer[14],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[1],&log_send_buffer[16],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[2],&log_send_buffer[18],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[3],&log_send_buffer[20],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[4],&log_send_buffer[22],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[5],&log_send_buffer[24],2,0); NEW_arraya_2_arrayb((u8 *)&system_alarm_report_ctrl_word_g.alarm_ctl_send_union[6],&log_send_buffer[26],2,0); for(count_i=0;count_i<2;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 14 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ʱ¼ä void COM_time_set_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; sClockBCD tempBCDTime; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { tempBCDTime.year = *DataPtr; tempBCDTime.month = *(DataPtr + 1); tempBCDTime.day = *(DataPtr + 2); tempBCDTime.hour = *(DataPtr + 3); tempBCDTime.min = *(DataPtr + 4); tempBCDTime.sec = *(DataPtr + 5); BCD_time_Set(tempBCDTime.year,tempBCDTime.month,tempBCDTime.day,1,tempBCDTime.hour,tempBCDTime.min,tempBCDTime.sec); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 6 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = HEX2BCD((u8)(calendar.year-2000)); log_send_buffer[15] = HEX2BCD(calendar.month); log_send_buffer[16] = HEX2BCD(calendar.date); log_send_buffer[17] = HEX2BCD(calendar.hour); log_send_buffer[18] = HEX2BCD(calendar.min); log_send_buffer[19] = HEX2BCD(calendar.sec); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µ÷ÊÔ״̬ÉèÖà void COM_debug_state_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; sClockBCD tempBCDTime; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { if(*DataPtr ==1) { flowmeter_select_g.flow_status_select = 1; }else { flowmeter_select_g.flow_status_select = 2; } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 1 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = flowmeter_select_g.flow_status_select; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µ÷ÊÔ²ÎÊýÉèÖà u8 COM_debug_para_set_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; sClockBCD tempBCDTime; if(SYSTEM_DEBUG_MODE != v20_system_para_g.system_mode) { return 1; } if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { flowdebug_para_g.debug_ch = *DataPtr -1; flowdebug_para_g.debug_delay = *(DataPtr + 1); flowdebug_para_g.debug_gain = *(DataPtr + 2); flowdebug_para_g.debug_org_fir_data = *(DataPtr + 3) -1; com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 4 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = flowdebug_para_g.debug_ch + 1; log_send_buffer[15] = flowdebug_para_g.debug_delay; log_send_buffer[16] = flowdebug_para_g.debug_gain; log_send_buffer[17] = flowdebug_para_g.debug_org_fir_data + 1; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } return 0; } //ԭʼ²¨ÐζÁÈ¡ u8 COM_original_para_set_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; sClockBCD tempBCDTime; if(SYSTEM_DEBUG_MODE != v20_system_para_g.system_mode) { return 1; } if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { // com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; // com_frame_inf_g.data_field_length =3; // // NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); // log_send_buffer[7] = com_frame_inf_g.random_number>>8; // log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; // log_send_buffer[9] = com_frame_inf_g.control_code; // log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; // log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; // log_send_buffer[12] = data_category_ID >>8; // log_send_buffer[13] = data_category_ID& 0x00ff; // log_send_buffer[14] = 0; // // CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; // // CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); // // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; // // bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = ROW_DATA_INF_LENGTH + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; /*¿´ÃŹ·Î¹¹·*/ IWDG_Feed(); WD_GPIO_diff /*Êý¾Ý²É¼¯º¯Êý*/ debug_process(); /*¿´ÃŹ·Î¹¹·*/ IWDG_Feed(); WD_GPIO_diff for(count_i=0;count_i<(ROW_DATA_INF_LENGTH * 0.5);count_i++) { log_send_buffer[14 + count_i *2] = initnal_data_g.original_data[count_i] >>8; log_send_buffer[15 + count_i *2] = initnal_data_g.original_data[count_i] & 0x00ff; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } return 0; } //¿Í»§ÃÜÂëÐÞ¸Ä void COM_user_password_set_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 writeResult =1; if(WriteOrRead==0) { if(*DataPtr ==0) { if(*(DataPtr+1)==MANAGE_USER) { if((*(DataPtr+4) == *(DataPtr+6))&&(*(DataPtr+5) == *(DataPtr+7))) { if((*(DataPtr+2) == device_password_g.PC_manage_user_password[0])&&(*(DataPtr+3) == device_password_g.PC_manage_user_password[1])) { device_password_g.PC_manage_user_password[0] = *(DataPtr+4); device_password_g.PC_manage_user_password[1] = *(DataPtr+5); eeprom_multiple_data_write((uint8_t *) &device_password_g.PC_manage_user_password, PC_MANAGE_USER_PASSWORD_ADDR, 2); writeResult =0; } } }else if(*(DataPtr+1)==ADVANCED_USER) { if((*(DataPtr+4) == *(DataPtr+6))&&(*(DataPtr+5) == *(DataPtr+7))) { if((*(DataPtr+2) == device_password_g.PC_advanced_user_password[0])&&(*(DataPtr+3) == device_password_g.PC_advanced_user_password[1])) { device_password_g.PC_advanced_user_password[0] = *(DataPtr+4); device_password_g.PC_advanced_user_password[1] = *(DataPtr+5); eeprom_multiple_data_write((uint8_t *) &device_password_g.PC_advanced_user_password, PC_ADVANCED_USER_PASSWORD_ADDR, 2); writeResult =0; } } }else if(*(DataPtr+1)==GENERAL_USER) { if((*(DataPtr+4) == *(DataPtr+6))&&(*(DataPtr+5) == *(DataPtr+7))) { if((*(DataPtr+2) == device_password_g.PC_general_user_password[0])&&(*(DataPtr+3) == device_password_g.PC_general_user_password[1])) { device_password_g.PC_general_user_password[0] = *(DataPtr+4); device_password_g.PC_general_user_password[1] = *(DataPtr+5); eeprom_multiple_data_write((uint8_t *) &device_password_g.PC_general_user_password, PC_GENERAL_USER_PASSWORD_ADDR, 2); writeResult =0; } } } }else if(*DataPtr ==1) { if(*(DataPtr+1)==MANAGE_USER) { if((*(DataPtr+4) == *(DataPtr+6))&&(*(DataPtr+5) == *(DataPtr+7))) { if((*(DataPtr+2) == device_password_g.APP_manage_user_password[0])&&(*(DataPtr+3) == device_password_g.APP_manage_user_password[1])) { device_password_g.APP_manage_user_password[0] = *(DataPtr+4); device_password_g.APP_manage_user_password[1] = *(DataPtr+5); eeprom_multiple_data_write((uint8_t *) &device_password_g.APP_manage_user_password, APP_MANAGE_USER_PASSWORD_ADDR, 2); writeResult =0; } } }else if(*(DataPtr+1)==ADVANCED_USER) { if((*(DataPtr+4) == *(DataPtr+6))&&(*(DataPtr+5) == *(DataPtr+7))) { if((*(DataPtr+2) == device_password_g.APP_advanced_user_password[0])&&(*(DataPtr+3) == device_password_g.APP_advanced_user_password[1])) { device_password_g.APP_advanced_user_password[0] = *(DataPtr+4); device_password_g.APP_advanced_user_password[1] = *(DataPtr+5); eeprom_multiple_data_write((uint8_t *) &device_password_g.APP_advanced_user_password, APP_ADVANCED_USER_PASSWORD_ADDR, 2); writeResult =0; } } }else if(*(DataPtr+1)==GENERAL_USER) { if((*(DataPtr+4) == *(DataPtr+6))&&(*(DataPtr+5) == *(DataPtr+7))) { if((*(DataPtr+2) == device_password_g.APP_general_user_password[0])&&(*(DataPtr+3) == device_password_g.APP_general_user_password[1])) { device_password_g.APP_general_user_password[0] = *(DataPtr+4); device_password_g.APP_general_user_password[1] = *(DataPtr+5); eeprom_multiple_data_write((uint8_t *) &device_password_g.APP_general_user_password, APP_GENERAL_USER_PASSWORD_ADDR, 2); writeResult =0; } } } } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = writeResult; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { // com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; // // com_frame_inf_g.data_field_length = 8 + 2; // // NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); // log_send_buffer[7] = com_frame_inf_g.random_number>>8; // log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; // log_send_buffer[9] = com_frame_inf_g.control_code; // log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; // log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; // log_send_buffer[12] = data_category_ID >>8; // log_send_buffer[13] = data_category_ID& 0x00ff; // // CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; // // CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); // // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; // // bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //²ÎÊý³õʼ»¯ void COM_para_init_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 writeResult =1; u8 needRssetFlag = 0; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { if(SYSTEM_DEBUG_MODE == v20_system_para_g.system_mode) //µ÷ÊÔģʽϲÅÔÊÐí²ÎÊý³õʼ»¯£¬³õʼ»¯Ö®ºó»á¸´Î» { if(*DataPtr ==1) { //»ù´¡²ÎÊý basic_para_eeprom_default_init(); needRssetFlag = 1; } if(*(DataPtr +1) ==1) { //ÀúÊ·Êý¾ÝÈÕÖ¾¡¢Éϱ¨Êý¾Ý´æ´¢¼Ç¼ sizhu_historical_eeprom_default_init(); ufg620_gprs_sizhu_log_eeprom_default_init(); needRssetFlag = 1; } if(*(DataPtr +2) ==1) { //±¨¾¯ÈÕÖ¾¼Ç¼²ÎÊý ufg620_alarm_log_eeprom_default_init(); needRssetFlag = 1; } if(*(DataPtr +3) ==1) { //²ÎÊýÐÞ¸ÄÈÕÖ¾¼Ç¼²ÎÊý ufg620_para_change_log_eeprom_default_init(); needRssetFlag = 1; } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = writeResult; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); if(needRssetFlag == 1) { delay_ms(50); ufg620_System_Reset(); } } } else if(WriteOrRead==1) { // com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; // // com_frame_inf_g.data_field_length = 8 + 2; // // NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); // log_send_buffer[7] = com_frame_inf_g.random_number>>8; // log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; // log_send_buffer[9] = com_frame_inf_g.control_code; // log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; // log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; // log_send_buffer[12] = data_category_ID >>8; // log_send_buffer[13] = data_category_ID& 0x00ff; // // CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; // // CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); // // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; // // bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½É豸»ù±¾ÐÅÏ¢²ÎÊý void COM_third_equipment_basic_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&(v20_system_para_g.system_set_authorize_flag==2)) { if(ucharcmp(DataPtr,(u8 *)&equipment_basic_inf_g.xinao_serial_number[0],28) !=1) { NEW_arraya_2_arrayb(DataPtr ,(u8 *)&equipment_basic_inf_g.xinao_serial_number[0],28,DATA_LITTLE_END); eeprom_multiple_data_write((uint8_t *) &equipment_basic_inf_g, BASIC_INFORMATION_OF_EQUIPMENT_A_ADDR, EQUIPMENT_BASIC_INF_LENGTH ); eeprom_multiple_data_write((uint8_t *) &equipment_basic_inf_g, BASIC_INFORMATION_OF_EQUIPMENT_B_ADDR, EQUIPMENT_BASIC_INF_LENGTH ); eeprom_multiple_data_write((uint8_t *) &equipment_basic_inf_g, BASIC_INFORMATION_OF_EQUIPMENT_C_ADDR, EQUIPMENT_BASIC_INF_LENGTH ); } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 120 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&equipment_basic_inf_g.xinao_serial_number[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 0],28,DATA_LITTLE_END); for(count_i=0;count_i<92;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 28 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½·þÎñÆ÷ÔËÓªÓòÃû²ÎÊý void COM_third_server_domain_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 domain_length = 0; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr , (u8 * )&IOT_domain_para_g.Domain_Identity, 133,DATA_LITTLE_END); eeprom_multiple_data_write_CS_2(&IOT_domain_para_g.Domain_Identity,XA_SERVER_DOMAIN_FLAG_ADDR,sizeof(IOT_DOMAIN_PARA)); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 150 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 * )&IOT_domain_para_g.Domain_Identity ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX ] , 133,DATA_LITTLE_END); for(count_i=0;count_i<17;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 133 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½·þÎñÆ÷²âÊÔÓòÃû²ÎÊý void COM_third_server_test_domain_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 domain_length = 0; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr , (u8 * )&IOT_domain_para_g.Domain_IdentityTest, 133,DATA_LITTLE_END); eeprom_multiple_data_write_CS_2(&IOT_domain_para_g.Domain_Identity,XA_SERVER_DOMAIN_FLAG_ADDR,sizeof(IOT_DOMAIN_PARA)); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 150 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 * )&IOT_domain_para_g.Domain_IdentityTest ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX ] , 133,DATA_LITTLE_END); for(count_i=0;count_i<17;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 133 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½·þÎñÆ÷IP²ÎÊý void COM_third_server_ip_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 domain_length = 0; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { IOT_ip_para_g.IP_IdentityTest = *DataPtr; NEW_arraya_2_arrayb(DataPtr + 1 + 0*7 , (u8 * )&IOT_ip_para_g.XAServerIP_Test1[0], 6,DATA_LITTLE_END); NEW_arraya_2_arrayb(DataPtr + 1 + 1*7 , (u8 * )&IOT_ip_para_g.XAServerIP_Test2[0], 6,DATA_LITTLE_END); NEW_arraya_2_arrayb(DataPtr + 1 + 2*7 , (u8 * )&IOT_ip_para_g.XAServerIP_Test3[0], 6,DATA_LITTLE_END); NEW_arraya_2_arrayb(DataPtr + 1 + 3*7 , (u8 * )&IOT_ip_para_g.XAServerIP_Test4[0], 6,DATA_LITTLE_END); IOT_ip_para_g.IP_IdentityTest = *(DataPtr + 29); NEW_arraya_2_arrayb(DataPtr + 30 + 0*7 , (u8 * )&IOT_ip_para_g.XAServerIP1[0], 6,DATA_LITTLE_END); NEW_arraya_2_arrayb(DataPtr + 30 + 1*7 , (u8 * )&IOT_ip_para_g.XAServerIP2[0], 6,DATA_LITTLE_END); NEW_arraya_2_arrayb(DataPtr + 30 + 2*7 , (u8 * )&IOT_ip_para_g.XAServerIP3[0], 6,DATA_LITTLE_END); NEW_arraya_2_arrayb(DataPtr + 30 + 3*7 , (u8 * )&IOT_ip_para_g.XAServerIP4[0], 6,DATA_LITTLE_END); eeprom_multiple_data_write_CS_2(&IOT_ip_para_g.XAServerIP1[0],XA_SERVER_IP1_ADDR,sizeof(IOT_IP_PARA)); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 58 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[COM_FRAME_FIRST_DATA_INDEX] = IOT_ip_para_g.IP_IdentityTest; NEW_arraya_2_arrayb((u8 * )&IOT_ip_para_g.XAServerIP_Test1[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 1 + 0*7 ] , 6,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_ip_para_g.XAServerIP_Test2[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 1 + 1*7 ] , 6,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_ip_para_g.XAServerIP_Test3[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 1 + 2*7 ] , 6,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_ip_para_g.XAServerIP_Test4[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 1 + 3*7 ] , 6,DATA_LITTLE_END); log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 29] = IOT_ip_para_g.IP_Identity; NEW_arraya_2_arrayb((u8 * )&IOT_ip_para_g.XAServerIP1[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 30 + 0*7 ] , 6,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_ip_para_g.XAServerIP2[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 30 + 1*7 ] , 6,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_ip_para_g.XAServerIP3[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 30 + 2*7 ] , 6,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_ip_para_g.XAServerIP4[0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 30 + 3*7 ] , 6,DATA_LITTLE_END); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈýͨѶ²ÎÊý void COM_third_server_com_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { IOT_Parameter.server_connect_mode = *DataPtr; eeprom_data_write_CS_2(IOT_Parameter.server_connect_mode,THIRD_SERVER_CONNECT_MODE_ADDR); if(*(DataPtr + 1) ==0x00) { IOT_Parameter.third_server_com_close_flag = 1; eeprom_data_write_CS_2(IOT_Parameter.third_server_com_close_flag,THIRD_SERVER_COM_CLOSE_FLAG_ADDR); }else { IOT_Parameter.SystemSetReportingType = *(DataPtr + 1); eeprom_data_write_CS_2(IOT_Parameter.SystemSetReportingType,SYSTEM_SET_REPORTING_TYPE_ADDR); IOT_Parameter.third_server_com_close_flag = 0; eeprom_data_write_CS_2(IOT_Parameter.third_server_com_close_flag,THIRD_SERVER_COM_CLOSE_FLAG_ADDR); } IOT_Parameter.TimelyReprotingNumber = *(DataPtr + 2); eeprom_data_write_CS_2(IOT_Parameter.TimelyReprotingNumber,TIMELY_REPORTING_NUMBER_ADDR); NEW_arraya_2_arrayb(DataPtr + 3 , (u8 * )&IOT_Parameter.TimelyReprotingTime[0], 24,DATA_LITTLE_END); eeprom_multiple_data_write_CS_2((u8 *)&IOT_Parameter.TimelyReprotingTime[0],TIMELY_REPORTING_TIME_ADDR,24); NEW_arraya_2_arrayb(DataPtr + 27 , (u8 * )&IOT_Parameter.IntervalReportingInterval, 2,DATA_LITTLE_END); eeprom_data_write_uint16_CS_2(IOT_Parameter.IntervalReportingInterval,INTERVAL_REPORTING_INTERVAL_ADDR ); NEW_arraya_2_arrayb(DataPtr + 29 , (u8 * )&IOT_Parameter.IntervalReporting1Time, 2,DATA_LITTLE_END); eeprom_data_write_uint16_CS_2(IOT_Parameter.IntervalReporting1Time,INTERVAL_REPORTING_1TIME_ADDR ); NEW_arraya_2_arrayb(DataPtr + 31 , (u8 * )&IOT_Parameter.RetransmissionInterval, 2,DATA_LITTLE_END); eeprom_data_write_uint16_CS_2(IOT_Parameter.RetransmissionInterval,RETRANSMISSION_INTERVAL_ADDR ); NEW_arraya_2_arrayb(DataPtr + 33 , (u8 * )&IOT_Parameter.RetransmissionNumber, 1,DATA_LITTLE_END); eeprom_data_write_CS_2(IOT_Parameter.RetransmissionNumber,RETRANSMISSION_NUMBER_ADDR); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 50 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[COM_FRAME_FIRST_DATA_INDEX] = IOT_Parameter.server_connect_mode; log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 1] =(IOT_Parameter.third_server_com_close_flag ==0x01)?0x00:IOT_Parameter.SystemSetReportingType; log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 2] = IOT_Parameter.TimelyReprotingNumber; NEW_arraya_2_arrayb((u8 * )&IOT_Parameter.TimelyReprotingTime[0] , (u8 * )&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 3], 24,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_Parameter.IntervalReportingInterval , (u8 * )&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 27], 2,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_Parameter.IntervalReporting1Time , (u8 * )&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 29], 2,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_Parameter.RetransmissionInterval , (u8 * )&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 31], 2,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 * )&IOT_Parameter.RetransmissionNumber , (u8 * )&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 33], 1,DATA_LITTLE_END); for(count_i=0;count_i<16;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 34 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½ÃÜÔ¿ÅäÖà void COM_third_key_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr , (u8 *)&KVer_AES_128_xinao[0][0], 144, DATA_LITTLE_END) ; EEPROM_MultipleWrite_CS_2(&KVer_AES_128_xinao[0][0],OPERATING_KEY_ADDR,144); if(*(DataPtr + 144) ==0x01) { if(IOT_Parameter.OperatingKeyState != 1) { IOT_Parameter.OperatingKeyState = 1; ///ÖÃλÒÑÏ·¢ÔËÓªÃÜÔ¿²¢ÐèÒª±£´æµ½E2 eeprom_data_write_CS_2(IOT_Parameter.OperatingKeyState,OPERATING_KEY_STATE_ADDR); } }else { if(IOT_Parameter.OperatingKeyState != 0) { IOT_Parameter.OperatingKeyState = 0; ///ÖÃλÒÑÏ·¢ÔËÓªÃÜÔ¿²¢ÐèÒª±£´æµ½E2 eeprom_data_write_CS_2(IOT_Parameter.OperatingKeyState,OPERATING_KEY_STATE_ADDR); } } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 160 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; NEW_arraya_2_arrayb((u8 *)&KVer_AES_128_xinao[0][0] ,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX ] , 144, DATA_LITTLE_END) ; log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 144] = IOT_Parameter.OperatingKeyState; for(count_i=0;count_i<15;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 145 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½¹¦ÄÜÅäÖòÎÊý void COM_third_fun_para_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 alarmctlflag = 0,valvectlflag = 0,functlflag = 0; // if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) // { // if(*(DataPtr + 0)==0x01) // { // if(IOT_Parameter.ExitFlag!=1) // { // IOT_Parameter.ExitFlag = 1; // eeprom_data_write_CS_2(IOT_Parameter.ExitFlag,EXIT_FLAG_ADDR); // } // }else // { // if(IOT_Parameter.ExitFlag!=0) // { // IOT_Parameter.ExitFlag = 0; // eeprom_data_write_CS_2(IOT_Parameter.ExitFlag,EXIT_FLAG_ADDR); // } // } // //// IOT_Parameter.HighAmbientTemAlarmEnable = *(DataPtr + 1);// ¸ßα¨¾¯±êÖ¾ //// eeprom_data_write_CS_2(IOT_Parameter.HighAmbientTemAlarmEnable,HIGH_AMBIENT_TEM_ALARM_ENABLE_ADDR); // if(*(DataPtr +1) == 1) // { // if(alarm_third_report_para_g.sys_alarm_ctl_send.cpu_temp_up != 1) // { // alarm_third_report_para_g.sys_alarm_ctl_send.cpu_temp_up = 1; // alarmctlflag = 1; // } // } // else // { // if(alarm_third_report_para_g.sys_alarm_ctl_send.cpu_temp_up != 0) // { // alarm_third_report_para_g.sys_alarm_ctl_send.cpu_temp_up = 0; // alarmctlflag = 1; // } // } // //// IOT_Parameter.ValveAbnormalCloseValveEnable = *(DataPtr + 3); //·§ÃÅÒì³£¹Ø·§ //// eeprom_data_write_CS_2(IOT_Parameter.ValveAbnormalCloseValveEnable,VALVE_ABNORMAL_CLOSE_ENABLE_ADDR); // if(*(DataPtr +3) == 1) // { // if(valve_ctl_bytes_g.valve_ctr_2.valve_error_need_close_valve_flag != 1) // { // valve_ctl_bytes_g.valve_ctr_2.valve_error_need_close_valve_flag = 1; // valve_ctl_bytes_g.valve_ctr_2.valve_error_close_valve_type = 1; // valvectlflag = 1; // } // } // else // { // if(valve_ctl_bytes_g.valve_ctr_2.valve_error_need_close_valve_flag != 0) // { // valve_ctl_bytes_g.valve_ctr_2.valve_error_need_close_valve_flag = 0; // valvectlflag = 1; // } // } // // //// IOT_Parameter.CoverOpenAlarmEnableFlag = *(DataPtr + 4);// ¿ª¸Ç //// eeprom_data_write_CS_2(IOT_Parameter.CoverOpenAlarmEnableFlag,COVER_OPEN_ALARM_ENABLE_FLAG_ADDR); // if(*(DataPtr +4) == 1) // { // if(alarm_third_report_para_g.sys_alarm_ctl_send.cover_open != 1) // { // alarm_third_report_para_g.sys_alarm_ctl_send.cpu_temp_up = 1; // alarmctlflag = 1; // } // } // else // { // if(alarm_third_report_para_g.sys_alarm_ctl_send.cover_open != 0) // { // alarm_third_report_para_g.sys_alarm_ctl_send.cpu_temp_up = 0; // alarmctlflag = 1; // } // } // //// IOT_Parameter.PowerUpReportEnable = *(DataPtr + 5);//ÉϵçÉϱ¨ //// eeprom_data_write_CS_2(IOT_Parameter.PowerUpReportEnable,POWER_UP_REPORT_ENABLE_ADDR); // if(*(DataPtr + 5) == 1) // { // if(alarm_third_report_para_g.sys_alarm_ctl_send.system_start != 1) // { // alarm_third_report_para_g.sys_alarm_ctl_send.system_start = 1; // alarmctlflag = 1; // } // } // else // { // if(alarm_third_report_para_g.sys_alarm_ctl_send.system_start != 0) // { // alarm_third_report_para_g.sys_alarm_ctl_send.system_start = 0; // alarmctlflag = 1; // } // } // // if(*(DataPtr + 6)==0x01) // { // if((system_function_ctrl_word_g.ctrl_word1 & 0x0300) != SFCW12_LCD_ALWAYS_SHOW_MODE) // { // system_function_ctrl_word_g.ctrl_word1 &=(~0x0300); // system_function_ctrl_word_g.ctrl_word1 |=SFCW12_LCD_ALWAYS_SHOW_MODE; // // eeprom_multiple_data_write((uint8_t *) &system_function_ctrl_word_g, SYSTEM_FUNCTION_CONTROL_WORD_ADDR, SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH); // } // }else // { // if((system_function_ctrl_word_g.ctrl_word1 & 0x0300) != SFCW12_LCD_NORMAL_SHOW_MODE) // { // system_function_ctrl_word_g.ctrl_word1 &=(~0x0300); // system_function_ctrl_word_g.ctrl_word1 |=SFCW12_LCD_NORMAL_SHOW_MODE; // // eeprom_multiple_data_write((uint8_t *) &system_function_ctrl_word_g, SYSTEM_FUNCTION_CONTROL_WORD_ADDR, SYSTEM_FUNCTION_CTRL_WORD_INF_LENGTH); // } // } // // if(alarmctlflag == 1) // { // eeprom_multiple_data_write_CS_2((u8*)&alarm_third_report_para_g.alarm_ctl_send_union[0],THIRD_ALARM_REPORT_CTRL_WORDS_ADDR,SYS_ALARM_CTL_BYTES_TYPE_LENGTH); // } // // if(valvectlflag == 1) // { // eeprom_multiple_data_write_CS_2((u8*)&valve_ctl_bytes_g,THIRD_ALARM_VALVE_CTRL_WORDS_ADDR,VALVE_CTL_LENGTH); // } // // IOT_Parameter.HourlyStorageEnable = *(DataPtr + 9); // eeprom_data_write_CS_2(IOT_Parameter.HourlyStorageEnable,HOURLY_STORAGE_ENABLE_ADDR); // IOT_Parameter.StayOnlineEnable = *(DataPtr + 10);//³¤ÆÚÔÚÏß¹¦ÄÜ // eeprom_data_write_CS_2(IOT_Parameter.StayOnlineEnable,STAY_ONLINE_ENABLE_ADDR); // // IOT_Parameter.VirtualBillingEnable = *(DataPtr + 11);//ÐéÄâ¼Æ·Ñ¹¦ÄÜ // eeprom_data_write_CS_2(IOT_Parameter.VirtualBillingEnable,VIRTUAL_BILLING_ENABLE_ADDR); // // // // com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; // com_frame_inf_g.data_field_length =3; // // NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); // log_send_buffer[7] = com_frame_inf_g.random_number>>8; // log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; // log_send_buffer[9] = com_frame_inf_g.control_code; // log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; // log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; // log_send_buffer[12] = data_category_ID >>8; // log_send_buffer[13] = data_category_ID& 0x00ff; // log_send_buffer[14] = 0; // // CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; // // CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); // // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; // // bt_rs485_send(log_send_buffer, (CrcLength + 2) ); // } // else if(WriteOrRead==1) // { // // com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; // // com_frame_inf_g.data_field_length = 77 + 2; // // NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); // log_send_buffer[7] = com_frame_inf_g.random_number>>8; // log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; // log_send_buffer[9] = com_frame_inf_g.control_code; // log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; // log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; // log_send_buffer[12] = data_category_ID >>8; // log_send_buffer[13] = data_category_ID& 0x00ff; // // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 0] = IOT_Parameter.ExitFlag; // // if(alarm_third_report_para_g.sys_alarm_ctl_send.cpu_temp_up == 1) // { // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 1] = 1; // } // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 2] = 0; // if(valve_ctl_bytes_g.valve_ctr_2.valve_error_need_close_valve_flag == 1) // { // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 3] = 1; // } // if(alarm_third_report_para_g.sys_alarm_ctl_send.cover_open==0x01) // { // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 4] = 1; // } // // if(alarm_third_report_para_g.sys_alarm_ctl_send.system_start==0x01) // { // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 5] = 1; // } // // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 6] = ((system_function_ctrl_word_g.ctrl_word1 & 0x0300) == SFCW12_LCD_ALWAYS_SHOW_MODE)?0x01:0x00; // // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 7] = 0; // // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 8] = IOT_Parameter.RS485AbnormalCloseValveEnable; // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 9] = IOT_Parameter.HourlyStorageEnable; // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 10] = IOT_Parameter.StayOnlineEnable; // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 11] = IOT_Parameter.VirtualBillingEnable; // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 12] = 0; // // for(count_i=0;count_i<64;count_i++) // { // log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 13 + count_i] = 0; // } // // CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; // // CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); // // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; // log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; // // bt_rs485_send(log_send_buffer, (CrcLength + 2) ); // } } //µÚÈý·½×´Ì¬²ÎÊý void COM_third_system_status_inf_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 58 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; ThirdGetStatusWordHandle(&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX],&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 3]); NEW_arraya_2_arrayb((u8 *)&VariaDlg.IMEI,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 5],15,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 *)&VariaDlg.ICCID,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 20],20,DATA_LITTLE_END); log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 40] = IOT_Parameter.ServerConnectStatus; log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 41] = VariaDlg.netgrade; for(count_i=0;count_i<16;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 42 +count_i] = 0; } for(count_i=0;count_i<64;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 8 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½Óà¶î±¨¾¯¶î¶ÈÅäÖà void COM_condition_close_valve_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 U16Temp1=0,U16Temp2=0; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr,(uint8_t *)&U16Temp1,2,DATA_LITTLE_END); NEW_arraya_2_arrayb(DataPtr + 2,(uint8_t *)&U16Temp2,2,DATA_LITTLE_END); for(count_i=0; count_i<5; count_i++) { if(((U16Temp1 >> (2+count_i*2))&0x03) == 0x03)//Ç¿ÖÆ { IOT_Parameter.IBalanceInsufValveControlType[count_i] = 0x02; } else if(((U16Temp1 >> (2+count_i*2))&0x03) == 0x01)//¾¯¸æ { IOT_Parameter.IBalanceInsufValveControlType[count_i] = 0x01; } else { IOT_Parameter.IBalanceInsufValveControlType[count_i] = 0x00; } eeprom_data_write(IOT_Parameter.IBalanceInsufValveControlType[count_i],BALANCE_INSUF_ALARM1_ADDR+5*count_i +4); } for(count_i=0;count_i<5;count_i++) { NEW_arraya_2_arrayb(DataPtr + 4 +4*count_i,(uint8_t *)(&IOT_Parameter.IBalanceInsufAlarmAmount[count_i]),4,DATA_LITTLE_END); eeprom_multiple_data_write((u8 *)&IOT_Parameter.IBalanceInsufAlarmAmount[count_i],BALANCE_INSUF_ALARM1_ADDR+5*count_i,4); } eeprom_data_write(1,BALANCE_INSUF_SET_FLAG); NEW_arraya_2_arrayb(DataPtr + 24,(u8 *)(&IOT_Parameter.CloseCumulant),4,DATA_LITTLE_END); if((U16Temp2&0x03) == 0x03) { IOT_Parameter.CumulantCloseType = 0x02; } else if((U16Temp2&0x01) == 0x01) { IOT_Parameter.CumulantCloseType = 0x01; } else { IOT_Parameter.CumulantCloseType = 0x00; } eeprom_data_write(IOT_Parameter.CumulantCloseType,CUMULANT_CLOSE_TYPE_ADDR); eeprom_data_write_uint32(IOT_Parameter.CloseCumulant,CUMULANT_CLOSE_ADDR ); v20_system_para_g.cumulant_reaches_set_value_Status = 0; IOT_Parameter.NoUpCloseDay = *(DataPtr + 28); if(((U16Temp2>>4)&0x03) == 0x03) { IOT_Parameter.NoUpCloseValveFlag = 0x02; } else if(((U16Temp2>>4)&0x01) == 0x01) { IOT_Parameter.NoUpCloseValveFlag = 0x01; } else { IOT_Parameter.NoUpCloseValveFlag = 0x00; } IOT_Parameter.NoUpCloseDayCount = 0; eeprom_data_write(IOT_Parameter.NoUpCloseDay,NO_UP_CLOSE_DAY_ADDR); eeprom_data_write(IOT_Parameter.NoUpCloseDayCount,NO_UP_CLOSE_DAY_COUNT_ADDR); eeprom_data_write(IOT_Parameter.NoUpCloseValveFlag,NO_UP_CLOSE_VALVE_TYPE_ADDR); if(((U16Temp2>>2)&0x03) == 0x03) { IOT_Parameter.NoGasCloseValveFlag = 0x02; } else if(((U16Temp2>>2)&0x01) == 0x01) { IOT_Parameter.NoGasCloseValveFlag = 0x01; } else { IOT_Parameter.NoGasCloseValveFlag = 0x00; } IOT_Parameter.NoGasCloseDay = *(DataPtr + 29); IOT_Parameter.NoGasCloseDayCount = 0; eeprom_data_write(IOT_Parameter.NoGasCloseDay,NO_GAS_CLOSE_DAY_ADDR); eeprom_data_write(IOT_Parameter.NoGasCloseDayCount,NO_GAS_CLOSE_DAY_COUNT_ADDR); eeprom_data_write(IOT_Parameter.NoGasCloseValveFlag,NO_GAS_CLOSE_VALVE_TYPE_ADDR); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 39 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; for(count_i=0;count_i<5;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +4+4*count_i] = (*(uint8_t *)(&IOT_Parameter.IBalanceInsufAlarmAmount[count_i])); log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +5+4*count_i] = (*((uint8_t *)(&IOT_Parameter.IBalanceInsufAlarmAmount[count_i]) + 1)); log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +6+4*count_i] = (*((uint8_t *)(&IOT_Parameter.IBalanceInsufAlarmAmount[count_i]) + 2)); log_send_buffer[COM_FRAME_FIRST_DATA_INDEX +7+4*count_i] = (*((uint8_t *)(&IOT_Parameter.IBalanceInsufAlarmAmount[count_i]) + 3)); if(IOT_Parameter.IBalanceInsufValveControlType[count_i] == 0x02) { U16Temp1 |= (0x03<<(2+2*count_i)); } else if(IOT_Parameter.IBalanceInsufValveControlType[count_i] == 0x01) { U16Temp1 |= (0x01<<(2+2*count_i)); } } NEW_arraya_2_arrayb((uint8_t *)&U16Temp1,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX],2,DATA_LITTLE_END); if(IOT_Parameter.CumulantCloseType == 0x02) { U16Temp2 |= 0x03; } else if(IOT_Parameter.CumulantCloseType == 0x01) { U16Temp2 |= 0x01; } if(IOT_Parameter.NoGasCloseValveFlag == 0x02) { U16Temp2 |= (0x03<<2); } else if(IOT_Parameter.NoGasCloseValveFlag == 0x01) { U16Temp2 |= (0x01<<2); } if(IOT_Parameter.NoUpCloseValveFlag == 0x02) { U16Temp2 |= (0x03<<4); } else if(IOT_Parameter.NoUpCloseValveFlag == 0x01) { U16Temp2 |= (0x01<<4); } NEW_arraya_2_arrayb((uint8_t *)&U16Temp2,&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 2],2,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 *)(&IOT_Parameter.CloseCumulant),&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 24],4,DATA_LITTLE_END); log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 28] = IOT_Parameter.NoUpCloseDay; log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 29] = IOT_Parameter.NoGasCloseDay; for(count_i=0;count_i<9;count_i++) { log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 30 + count_i] = 0; } CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½¹Ø·§¿ØÖÆ void COM_close_valve_ctrl_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 U16Temp1 = 0,U16Temp2 = 0; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { NEW_arraya_2_arrayb(DataPtr + 0,(u8 *)(&valve_ctl_bytes_g),22,DATA_LITTLE_END); eeprom_multiple_data_write((u8*)&valve_ctl_bytes_g,VALVE_CTRL_WORDS_ADDR,VALVE_CTL_LENGTH); com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 22 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; for(count_i=0;count_i<5;count_i++) { if(IOT_Parameter.IBalanceInsufValveControlType[count_i] == 0x02) { U16Temp1 |= (0x03<<(2+2*count_i)); } else if(IOT_Parameter.IBalanceInsufValveControlType[count_i] == 0x01) { U16Temp1 |= (0x01<<(2+2*count_i)); } } if(IOT_Parameter.CumulantCloseType == 0x02) { U16Temp2 |= 0x03; } else if(IOT_Parameter.CumulantCloseType == 0x01) { U16Temp2 |= 0x01; } if(IOT_Parameter.NoGasCloseValveFlag == 0x02) { U16Temp2 |= (0x03<<2); } else if(IOT_Parameter.NoGasCloseValveFlag == 0x01) { U16Temp2 |= (0x01<<2); } if(IOT_Parameter.NoUpCloseValveFlag == 0x02) { U16Temp2 |= (0x03<<4); } else if(IOT_Parameter.NoUpCloseValveFlag == 0x01) { U16Temp2 |= (0x01<<4); } NEW_arraya_2_arrayb((u8 *)(u8 *)(&valve_ctl_bytes_g),&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 0],22,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 *)(u8 *)(&U16Temp1),&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 2],2,DATA_LITTLE_END); NEW_arraya_2_arrayb((u8 *)(u8 *)(&U16Temp2),&log_send_buffer[COM_FRAME_FIRST_DATA_INDEX + 4],2,DATA_LITTLE_END); CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½¹Ø·§¿ØÖÆ void COM_valve_ctrl_handle(u8 WriteOrRead,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊµÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 ValveControltype; if((WriteOrRead==0)&&((v20_system_para_g.system_set_authorize_flag==1)||(v20_system_para_g.system_set_authorize_flag==2))) { ValveControltype = *(DataPtr); switch(ValveControltype) { case 4://Ëø¶¨ ValveCloseIdTypeSet(ALARM_ID_NORMAL,VALVE_ACTION_LOCK); ValveCloseAuthorizeFlagSet(Valve_control_parm.ValveCloseID,Valve_control_parm.ValveCloseType); ufg620_valve_action_log_data_handle(Valve_control_parm.ValveCloseID,Valve_control_parm.ValveCloseType); break; case 5://½âËø ValveCloseIdTypeSet(ALARM_ID_NORMAL,VALVE_ACTION_UNLOCK); ValveCloseAuthorizeFlagSet(Valve_control_parm.ValveCloseID,Valve_control_parm.ValveCloseType); ufg620_valve_action_log_data_handle(Valve_control_parm.ValveCloseID,Valve_control_parm.ValveCloseType); break; default: break; } com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_WRITE_PARA; com_frame_inf_g.data_field_length =3; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = 0; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } else if(WriteOrRead==1) { com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_PARA; com_frame_inf_g.data_field_length = 1 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; switch(Valve_control_parm.ValveCloseType) { case VALVE_ACTION_CLOSE_UNLOCK: ValveControltype = 1; break; case VALVE_ACTION_OPEN: ValveControltype = 3; break; case VALVE_ACTION_LOCK: ValveControltype = 4; break; case VALVE_ACTION_UNLOCK: ValveControltype = 5; break; case VALVE_ACTION_CLOSE_LOCK: ValveControltype = 2; break; default: ValveControltype = 0; break; } log_send_buffer[COM_FRAME_FIRST_DATA_INDEX ] = ValveControltype; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //¶ÁдÊý¾ÝÖ¡´¦Àí void COM_read_write_handle(u8 WriteOrRead,COM_FRAME_INF_T com_frame_receive_inf_in,u8 *DataPtr) //DataPtrÖ¸ÏòÊý¾ÝÓòµÚÒ»¸öÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 SetResult=0; u8 password_verif_result = 0; //1´ú±íÑéÖ¤³É¹¦ ,2´ú±í³§¼Ò´úÂëÎÞЧ 3´ú±íÃÜÂë´íÎó BigSmallSwitch((u8 *) &com_frame_receive_inf_in.random_number , 2); //Ëæ»úÂë¸ßµÍ×Ö½ÚÇл»Ò»Ï if((com_frame_inf_g.random_number!=0)&&(com_frame_receive_inf_in.random_number ==com_frame_inf_g.random_number)) { //Ëæ»úÂëÑéÖ¤ÕýÈ· password_verif_result =1; } if(password_verif_result==1) { com_frame_receive_inf_in.data_category_ID = (u16)(* (DataPtr ))*256 + * (DataPtr + 1); switch(com_frame_receive_inf_in.data_category_ID) { case EQUIPMENT_BASIC_INF_ID : COM_equipment_basic_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_ID : COM_main_equipment_hardware_software_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case LCD_EQUIPM_HARDWARE_SOFTWARE_INF_ID : COM_lcd_equipment_hardware_software_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_ID : COM_wireless_equipment_hardware_software_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case PRE_EQUIPM_HARDWARE_SOFTWARE_INF_ID : COM_pre_equipment_hardware_software_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case TEM_EQUIPM_HARDWARE_SOFTWARE_INF_ID : COM_tem_equipment_hardware_software_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case SONIC_SENSOR_EQUIPM_HARDWARE_SOFTWARE_INF_ID : COM_sonic_sensor_equipment_hardware_software_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case REALTIME_DATA_ID : COM_realtime_data_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case STATISTICAL_DATA_ID : COM_statistical_data_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case DEVICE_SIZE_INF_ID : COM_device_size_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case ULTRASONIC_SENSOR_TRIGE_LEVEL_ID : COM_ultrasonic_sensor_trige_level_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case ULTRASONIC_SENSOR_TRIGE_LEVEL_REAL_ID : COM_ultrasonic_sensor_real_trige_level_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case POSITIVE_FLOW_POINT_CORRECT_ID : COM_positive_flow_correct_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case POSITIVE_REAL_FLOW_POINT_CORRECT_ID : COM_positive_real_flow_correct_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case POSITIVE_FLOW_POINT_SECOND_ID : COM_positive_flow_correct_second_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case POSITIVE_REAL_FLOW_POINT_SECOND_ID : COM_positive_real_flow_correct_second_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case POSITIVE_FLOW_POINT_OTHER_ID : COM_positive_flow_correct_other_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case REVERSE_FLOW_POINT_CORRECT_ID : COM_reverse_flow_correct_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case REVERSE_REAL_FLOW_POINT_CORRECT_ID : COM_reverse_real_flow_correct_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case REVERSE_FLOW_POINT_SECOND_ID : COM_reverse_flow_correct_second_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case REVERSE_REAL_FLOW_POINT_SECOND_ID : COM_reverse_real_flow_correct_second_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case REVERSE_FLOW_POINT_OTHER_ID : COM_reverse_flow_correct_other_para_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case FLOW_LIMIT_ID : COM_flow_limit_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case PRESSURE_PARA_ID : COM_pressure_para_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case TEMPERATURE_PARA_ID : COM_temperature_para_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case FLOW_TEM_PRE_ID : COM_flow_pre_tem_para_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case LOW_PULSE_PARA_ID : COM_low_pluse_para_out_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case ELECTRIC_CURRENT_LOOP_ID : COM_electric_current_loop_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case DEVICE_MODBUS_BTL_ID : COM_device_modbus_btl_set_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case DEVICE_PASSWORD_ID : COM_device_password_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case MEASURE_FREEZ_PARA_ID : COM_measure_freez_para_inf_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case NETWORK_COM_PARA_ID : COM_network_com_para_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case NETWORK_COM_APN_INFO_ID : COM_network_com_apn_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case BATTERY_PARA_ID : COM_battery_para_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case ULTRASONIC_SENSOR_ABNORMAL_PARA_ID : COM_ultrasonic_sensor_abnormal_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case HIGH_PLUSE_PARA_ID : COM_high_pluse_para_out_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case SYNTHESIZE_FUN_1_ID : COM_synthesize_fun_1_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case DEVICE_REAL_TIME_ID : COM_time_set_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case DEBUG_STATE_SET_ID : COM_debug_state_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case DEBUG_PARA_SET_ID : COM_debug_para_set_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case ORIGINAL_WAVEFORM_DATA_READ_ID : COM_original_para_set_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case USER_PASSWORD_MODIFY_ID : COM_user_password_set_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case PARA_INIT_ID : COM_para_init_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case CONDITION_CLOSE_VALVE_ID : COM_condition_close_valve_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case SYSTEM_STATUS_WORD_ID : COM_system_status_word_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case SYSTEM_FUNCTION_CTRL_WORD_ID : COM_system_function_ctrl_word_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case SYSTEM_ALARM_CTRL_WORD_ID : COM_system_alarm_ctrl_word_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; // case SYSTEM_ALARM_CTRL_WORD_ID : COM_system_alarm_report_ctrl_word_inf_handle(WriteOrRead, com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case SYSTEM_CLOSE_VALVE_CTRL_WORD_ID : COM_close_valve_ctrl_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)) ;break; case SYSTEM_VALVE_CTRL_ID:COM_valve_ctrl_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2));break; default : #ifndef THIRD_TELECOM_OPEN //Ö±½Óµ÷ÓõÚÈý·½µÄ×Ü´¦Àíº¯Êý ÔÚµÚÈý·½×Ü´¦Àíº¯ÊýÖзÖÀà´¦Àí third_upper_commnuication_read_write_handle(WriteOrRead,com_frame_receive_inf_in.data_category_ID,(DataPtr +2)); #endif break; } } } /****************************************** * func: * desc: Á½¸öʱ¼ä±È´óС * parameter: ʱ¼ä1 ʱ¼ä2 BCD¸ñʽ * return: ʱ¼ä1´ó·µ»Ø0£¬ÏàµÈ·µ»Ø1£¬Ê±¼ä1С·µ»Ø2 *****************************************/ u8 TimeCompara(u8* TimeBCD1, u8* TimeBCD2) //6×Ö½ÚBCDʱ¼äÓ뵱ǰʱ¼ä±È½Ï£¬µ±Ç°Ê±¼ä´ó·µ»Ø0£¬ÏàµÈ·µ»Ø1£¬µ±Ç°Ê±¼äС·µ»Ø2¡£ ´ËÍ⣬ËÑË÷µÄʱ¼ä¸ñʽÎÞЧҲ·µ»Ø0£¬¼ÌÐøËÑË÷¡£ { u8 returnflag=0; if((TimeBCD1[0]>0x99)||(TimeBCD1[1]==0x00)||(TimeBCD1[1]>0x12)||(TimeBCD1[2]==0x00)||(TimeBCD1[2]>0x31)||(TimeBCD1[3]>0x23)||(TimeBCD1[4]>0x59)||(TimeBCD1[5]>0x59)) { //ËÑË÷ʱ¼äÎÞЧ£¬·µ»Ø0 return 0; } if((TimeBCD2[0]>0x99)||(TimeBCD2[1]==0x00)||(TimeBCD2[1]>0x12)||(TimeBCD2[2]==0x00)||(TimeBCD2[2]>0x31)||(TimeBCD2[3]>0x23)||(TimeBCD2[4]>0x59)||(TimeBCD2[5]>0x59)) { //ËÑË÷ʱ¼äÎÞЧ£¬·µ»Ø0 return 0; } if((TimeBCD1[0])>TimeBCD2[0]) { returnflag = 0; }else if((TimeBCD1[0])==TimeBCD2[0]) { if((TimeBCD1[1])>TimeBCD2[1]) { returnflag = 0; }else if((TimeBCD1[1])==TimeBCD2[1]) { if((TimeBCD1[2])>TimeBCD2[2]) { returnflag = 0; }else if((TimeBCD1[2])==TimeBCD2[2]) { if((TimeBCD1[3])>TimeBCD2[3]) { returnflag = 0; }else if((TimeBCD1[3])==TimeBCD2[3]) { if((TimeBCD1[4])>TimeBCD2[4]) { returnflag = 0; }else if((TimeBCD1[4])==TimeBCD2[4]) { if((TimeBCD1[5])>TimeBCD2[5]) { returnflag = 0; }else if((TimeBCD1[5])==TimeBCD2[5]) { returnflag = 1; }else { returnflag = 2; } }else { returnflag = 2; } }else { returnflag = 2; } }else { returnflag = 2; } }else { returnflag = 2; } }else { returnflag = 2; } return returnflag; } //¼ä¸ô¶³½áÊý¾ÝÈÕÖ¾¶ÁÈ¡ void COM_interval_freez_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 9; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_LOG_SAVE_PERIOD_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_sizhu_run_g.per_period_log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_sizhu_run_g.per_period_log_count >= PERIOD_LOG_NUM) { SearchNum = PERIOD_LOG_NUM; }else { SearchNum = log_sizhu_run_g.per_period_log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= PER_PERIOD_LOG_OFFSET_END) { log_run_para_pc_g.data_search_addr = PER_PERIOD_LOG_OFFSET; }else { log_run_para_pc_g.data_search_addr += sizeof(LOG_SIZHU_LOG_SAVE_PERIOD_T); } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= PER_PERIOD_LOG_OFFSET_END) { log_run_para_pc_g.data_search_addr = PER_PERIOD_LOG_OFFSET; }else { log_run_para_pc_g.data_search_addr += sizeof(LOG_SIZHU_LOG_SAVE_PERIOD_T); } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * sizeof(LOG_SIZHU_LOG_SAVE_PERIOD_T) + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //Сʱ¶³½áÊý¾ÝÈÕÖ¾¶ÁÈ¡ void COM_hour_freez_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 9; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_LOG_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_sizhu_run_g.per_hour_log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_sizhu_run_g.per_hour_log_count >= HOUR_LOG_NUM) { SearchNum = HOUR_LOG_NUM; }else { SearchNum = log_sizhu_run_g.per_hour_log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= PER_HOUR_LOG_OFFSET_END) { log_run_para_pc_g.data_search_addr = PER_HOUR_LOG_OFFSET; }else { log_run_para_pc_g.data_search_addr += sizeof(LOG_SIZHU_LOG_SAVE_T); } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= PER_HOUR_LOG_OFFSET_END) { log_run_para_pc_g.data_search_addr = PER_HOUR_LOG_OFFSET; }else { log_run_para_pc_g.data_search_addr += sizeof(LOG_SIZHU_LOG_SAVE_T); } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * (sizeof(LOG_SIZHU_LOG_SAVE_T)-2) + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÈÕ¶³½áÊý¾ÝÈÕÖ¾¶ÁÈ¡ void COM_day_freez_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 9; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_LOG_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_sizhu_run_g.per_day_log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_sizhu_run_g.per_day_log_count >= DAY_LOG_NUM) { SearchNum = DAY_LOG_NUM; }else { SearchNum = log_sizhu_run_g.per_day_log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= PER_DAY_LOG_OFFSET_END) { log_run_para_pc_g.data_search_addr = PER_DAY_LOG_OFFSET; }else { log_run_para_pc_g.data_search_addr += sizeof(LOG_SIZHU_LOG_SAVE_T); } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= PER_DAY_LOG_OFFSET_END) { log_run_para_pc_g.data_search_addr = PER_DAY_LOG_OFFSET; }else { log_run_para_pc_g.data_search_addr += sizeof(LOG_SIZHU_LOG_SAVE_T); } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * (sizeof(LOG_SIZHU_LOG_SAVE_T)-2) + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //Ô¶³½áÊý¾ÝÈÕÖ¾¶ÁÈ¡ void COM_month_freez_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 9; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_LOG_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_sizhu_run_g.per_month_log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_sizhu_run_g.per_month_log_count >= MONTH_LOG_NUM) { SearchNum = MONTH_LOG_NUM; }else { SearchNum = log_sizhu_run_g.per_month_log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= PER_MONTH_LOG_OFFSET_END) { log_run_para_pc_g.data_search_addr = PER_MONTH_LOG_OFFSET; }else { log_run_para_pc_g.data_search_addr += sizeof(LOG_SIZHU_LOG_SAVE_T); } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= PER_MONTH_LOG_OFFSET_END) { log_run_para_pc_g.data_search_addr = PER_MONTH_LOG_OFFSET; }else { log_run_para_pc_g.data_search_addr += sizeof(LOG_SIZHU_LOG_SAVE_T); } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * (sizeof(LOG_SIZHU_LOG_SAVE_T)-2) + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ϵͳÒì³£±¨¾¯ÈÕÖ¾¶ÁÈ¡ void COM_system_alarm_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 6; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_SYS_ALARM_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_run_para_pc_g.data_search_first_addr; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_run_para_pc_g.log_type_count >= log_run_para_pc_g.log_type_all_num) { SearchNum = log_run_para_pc_g.log_type_all_num; }else { SearchNum = log_run_para_pc_g.log_type_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= log_run_para_pc_g.data_end_addr) { log_run_para_pc_g.data_search_addr = log_run_para_pc_g.data_start_addr; }else { log_run_para_pc_g.data_search_addr += log_run_para_pc_g.log_type_length; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= log_run_para_pc_g.data_end_addr) { log_run_para_pc_g.data_search_addr = log_run_para_pc_g.data_start_addr; }else { log_run_para_pc_g.data_search_addr += log_run_para_pc_g.log_type_length; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * log_run_para_pc_g.log_type_length + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ϵͳÒì³£±¨¾¯ÈÕÖ¾¶ÁÈ¡ void COM_valve_action_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 50; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_VALVE_ACTION_RECORD_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_run_para_pc_g.data_search_first_addr; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_run_para_pc_g.log_type_count >= log_run_para_pc_g.log_type_all_num) { SearchNum = log_run_para_pc_g.log_type_all_num; }else { SearchNum = log_run_para_pc_g.log_type_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= log_run_para_pc_g.data_end_addr) { log_run_para_pc_g.data_search_addr = log_run_para_pc_g.data_start_addr; }else { log_run_para_pc_g.data_search_addr += log_run_para_pc_g.log_type_length; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= log_run_para_pc_g.data_end_addr) { log_run_para_pc_g.data_search_addr = log_run_para_pc_g.data_start_addr; }else { log_run_para_pc_g.data_search_addr += log_run_para_pc_g.log_type_length; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * (log_run_para_pc_g.log_type_length + 1) + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //²âÁ¿Òì³£±¨¾¯ÈÕÖ¾¶ÁÈ¡ void COM_measure_alarm_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 3; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_MEASURE_ALARM_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_alarm_para_g.class_measure_abn.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_alarm_para_g.class_measure_abn.log_count >= MEASURE_ALARM_LOG_STORAGE_NUM) { SearchNum = MEASURE_ALARM_LOG_STORAGE_NUM; }else { SearchNum = log_alarm_para_g.class_measure_abn.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= MEASURE_ALARM_LOG_STORAGE_END_ADDR) { log_run_para_pc_g.data_search_addr = MEASURE_ALARM_LOG_STORAGE_START_ADDR; }else { log_run_para_pc_g.data_search_addr += MEASURE_ALARM_LOG_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= MEASURE_ALARM_LOG_STORAGE_END_ADDR) { log_run_para_pc_g.data_search_addr = MEASURE_ALARM_LOG_STORAGE_START_ADDR; }else { log_run_para_pc_g.data_search_addr += MEASURE_ALARM_LOG_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * MEASURE_ALARM_LOG_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÀÛ»ýÁ¿ÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_cumulate_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 6; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_CUMULATE_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.cumulate_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.cumulate_modify.log_count >= SYSTEM_LOG_CUMULATE_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_CUMULATE_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.cumulate_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_CUMULATE_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_CUMULATE_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_CUMULATE_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_CUMULATE_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_CUMULATE_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_CUMULATE_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_CUMULATE_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //Á÷Á¿ÐÞÕý²ÎÊýÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_flow_correction_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 1; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_FLOW_CORRECTION_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.flow_correction_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.flow_correction_modify.log_count >= SYSTEM_LOG_FLOW_CORRECTION_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_FLOW_CORRECTION_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.flow_correction_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_FLOW_CORRECTION_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_FLOW_CORRECTION_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_FLOW_CORRECTION_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_FLOW_CORRECTION_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_FLOW_CORRECTION_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_FLOW_CORRECTION_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_FLOW_CORRECTION_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ѹÁ¦ÅäÖòÎÊýÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_pre_config_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 6; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_PRE_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.pre_config_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.pre_config_modify.log_count >= SYSTEM_LOG_PRE_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_PRE_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.pre_config_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_PRE_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_PRE_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_PRE_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_PRE_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_PRE_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_PRE_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_PRE_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ζÈÅäÖòÎÊýÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_tem_config_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 6; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_TEM_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.tem_config_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.tem_config_modify.log_count >= SYSTEM_LOG_TEM_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_TEM_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.tem_config_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_TEM_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_TEM_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_TEM_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_TEM_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_TEM_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_TEM_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_TEM_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //Á÷Á¿ÅäÖòÎÊýÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_flow_config_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 10; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_FLOW_CONFIG_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.flow_config_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.flow_config_modify.log_count >= SYSTEM_LOG_FLOW_CONFIG_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_FLOW_CONFIG_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.flow_config_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_FLOW_CONFIG_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_FLOW_CONFIG_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_FLOW_CONFIG_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_FLOW_CONFIG_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_FLOW_CONFIG_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_FLOW_CONFIG_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_FLOW_CONFIG_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÍƵÂö³å²ÎÊýÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_low_pulse_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 20; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_LOW_PULSE_CONFIG_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.low_pulse_config_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.low_pulse_config_modify.log_count >= SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.low_pulse_config_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_LOW_PULSE_CONFIG_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µçÁ÷»·ÅäÖòÎÊýÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_current_loop_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 16; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_CURRENT_LOOP_CONFIG_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.current_loop_config_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.current_loop_config_modify.log_count >= SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.current_loop_config_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_CURRENT_LOOP_CONFIG_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //̽ͷУ׼²ÎÊýÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_sonic_sensor_calibration_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 4; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_SONIC_SENSOR_CALIBRATION_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.sonic_sensor_calibration_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.sonic_sensor_calibration_modify.log_count >= SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.sonic_sensor_calibration_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_SONIC_SENSOR_CALIBRATION_CONFIG_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //̽ͷÒì³£Åж¨²ÎÊýÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_sonic_sensor_abnormal_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 16; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_SONIC_SENSOR_ABNORMAL_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.sonic_sensor_abnormal_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.sonic_sensor_abnormal_modify.log_count >= SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.sonic_sensor_abnormal_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_SONIC_SENSOR_ABNORMAL_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ϵͳ¹¦ÄÜ¿ØÖÆ×ÖÐÞ¸ÄÈÕÖ¾¶ÁÈ¡ void COM_system_function_control_word_modify_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 16; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; LOG_SIZHU_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_SAVE_T DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = para_change_all_g.system_function_control_word_modify.log_addr_save; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(para_change_all_g.system_function_control_word_modify.log_count >= SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_STORAGE_NUM) { SearchNum = SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_STORAGE_NUM; }else { SearchNum = para_change_all_g.system_function_control_word_modify.log_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_END_ADDR) { log_run_para_pc_g.data_search_addr = SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_START_ADDR; }else { log_run_para_pc_g.data_search_addr += SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_STORAGE_LENGTH; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * SYSTEM_LOG_SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_STORAGE_LENGTH + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½ÀúÊ·Êý¾Ý¼Ç¼¶ÁÈ¡ void COM_third_data_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i,count_j; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 6; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; THIRD_TELECOM_RECORD_FORM DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_run_para_pc_g.data_search_first_addr; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_run_para_pc_g.log_type_count >= log_run_para_pc_g.log_type_all_num) { SearchNum = log_run_para_pc_g.log_type_all_num; }else { SearchNum = log_run_para_pc_g.log_type_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= log_run_para_pc_g.data_end_addr) { log_run_para_pc_g.data_search_addr = log_run_para_pc_g.data_start_addr; }else { log_run_para_pc_g.data_search_addr += log_run_para_pc_g.log_type_EEprom_length; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= log_run_para_pc_g.data_end_addr) { log_run_para_pc_g.data_search_addr = log_run_para_pc_g.data_start_addr; }else { log_run_para_pc_g.data_search_addr += log_run_para_pc_g.log_type_EEprom_length; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * log_run_para_pc_g.log_type_length + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //µÚÈý·½Ê¼þ¼Ç¼¶ÁÈ¡ void COM_third_event_log_read_handle(u8 WriteOrRead,u8 control_code,u16 data_category_ID,u8 *DataPtr) //DataPtrÉèÖÃʱָÏòIDÖ®ºóµÄÕæÊÇÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u16 RecordNumLimit; u8 downContinueTransFlag; //ÏÂÐÐÐø´«±êÖ¾£¬0´ú±íÊ״ζÁÈ¡Êý¾Ý£¬1´ú±íÐø´«ÏìÓ¦ u8 upContinueTransFlag; //ÉÏÐÐÐø´«±êÖ¾£¬0´ú±íÎÞÐø´«£¬1´ú±íÐø´«£¬¼´ºóÐø»¹ÓÐÊý¾Ý´ý·¢ËÍ const u16 LOG_READ_ONE_FRAME_MAXIMUM = 50; // sClockBCD SearchStartTime; sClockBCD SearchEndTime; u32 SearchADDR; u16 DataAckActualNum = 0; u16 SearchNum = 0; u16 getDataNum = 0; //ÓÃÓÚ´ÓÄÚ´æÖÐÒª¶ÁÈ¡µÄÊý¾ÝÌõÊý u16 SearchEffectNum = 0; u8 TimeOfSearch[6]; HUARUN_EVENT_PACKAGE DataOfSearch; if(WriteOrRead==0) { } else if(WriteOrRead==1) { //Êý¾ÝËÑË÷´¦Àí memcpy ( &SearchStartTime, DataPtr, 6); memcpy ( &SearchEndTime, DataPtr+6, 6); RecordNumLimit = *(DataPtr + 12); RecordNumLimit =RecordNumLimit*256 +*(DataPtr + 13); downContinueTransFlag = *(DataPtr + 14); if(downContinueTransFlag ==0) { //Ê״ζÁÈ¡ÏÈ»ñÈ¡Êý¾ÝËÑË÷µÄÆðʼµØÖ· SearchADDR = log_run_para_pc_g.data_search_first_addr; //Õâ¸öµØÖ·Êµ¼ÊÊdz¬Ç°Ò»¸öµØÖ·£¬ËùÒÔºóÃæËÑË÷ǰ»áÏȼõÈ¥Ò»¸öµØÖ· //»ñµÃÐèÒªËÑË÷µÄÊý¾ÝÊýÁ¿ if(log_run_para_pc_g.log_type_count >= log_run_para_pc_g.log_type_all_num) { SearchNum = log_run_para_pc_g.log_type_all_num; }else { SearchNum = log_run_para_pc_g.log_type_count; } log_run_para_pc_g.log_all_num = 0; log_run_para_pc_g.log_rest_num = 0; for(count_i =0;count_i RecordNumLimit) { log_run_para_pc_g.log_all_num = RecordNumLimit; }else { log_run_para_pc_g.log_all_num = SearchEffectNum; } log_run_para_pc_g.log_rest_num = log_run_para_pc_g.log_all_num; } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= log_run_para_pc_g.data_end_addr) { log_run_para_pc_g.data_search_addr = log_run_para_pc_g.data_start_addr; }else { log_run_para_pc_g.data_search_addr += log_run_para_pc_g.log_type_EEprom_length; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } } }else if(downContinueTransFlag ==1) { if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME) //°´Æðֹʱ¼äËÑË÷ {//°´Ê±¼äËÑË÷£¬Ç°ÃæÖ»ÊÇËÑË÷ÁËÓжàÉÙÓÐЧÌõÊý£¬²¢ÕÒµ½ÁËÆðʼλÖã¬Èç¹ûÓÐЧÌõÊý²»Îª0£¬Ôò´ÓÆäʵλÖÃÈ¡Êý¾Ý£¬È¡ÓÐЧÌõÊý»òÕßÂú×î´óÌõÊýΪֹ¡£ if(log_run_para_pc_g.log_rest_num!=0) { getDataNum = log_run_para_pc_g.log_rest_num; for(count_i =0;count_i 0) { upContinueTransFlag = 1; }else { upContinueTransFlag = 0; } if(log_run_para_pc_g.data_search_addr >= log_run_para_pc_g.data_end_addr) { log_run_para_pc_g.data_search_addr = log_run_para_pc_g.data_start_addr; }else { log_run_para_pc_g.data_search_addr += log_run_para_pc_g.log_type_EEprom_length; } if((DataAckActualNum>=RecordNumLimit)||(DataAckActualNum>=LOG_READ_ONE_FRAME_MAXIMUM)) { //ÊýÁ¿´ïµ½ÉÏÏÞ£¬»òÕßÒ»Ö¡Êý¾ÝÁ¿´ïµ½ÉÏÏÞ break; } } } }else if(control_code == COM_FRAME_CONTROL_CODE_READ_LOG_NUM)//°´×î½üÌõÊýËÑË÷ { } } //Ó¦´ðÊý¾Ý´¦Àí com_frame_inf_g.control_code = COM_FRAME_CONTROL_CODE_READ_LOG_BY_TIME; com_frame_inf_g.data_field_length = DataAckActualNum * log_run_para_pc_g.log_type_length + 3 + 2; NEW_arraya_2_arrayb((u8 *)&com_frame_inf_g,log_send_buffer,7,0); log_send_buffer[7] = com_frame_inf_g.random_number>>8; log_send_buffer[8] = com_frame_inf_g.random_number& 0x00ff; log_send_buffer[9] = com_frame_inf_g.control_code; log_send_buffer[10] = com_frame_inf_g.data_field_length>>8; log_send_buffer[11] = com_frame_inf_g.data_field_length& 0x00ff; log_send_buffer[12] = data_category_ID >>8; log_send_buffer[13] = data_category_ID& 0x00ff; log_send_buffer[14] = DataAckActualNum >>8; log_send_buffer[15] = DataAckActualNum; log_send_buffer[16] = upContinueTransFlag; CrcLength = COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length; CrcCheck=GetCRC16_user(log_send_buffer,CrcLength); log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length] = CrcCheck>>8; log_send_buffer[COM_FRAME_HEAD_LENGTH + com_frame_inf_g.data_field_length + 1] = CrcCheck& 0x00ff; bt_rs485_send(log_send_buffer, (CrcLength + 2) ); } } //ÈÕÖ¾¶ÁÈ¡´¦Àí void COM_read_log_by_time_handle(u8 WriteOrRead,COM_FRAME_INF_T com_frame_receive_inf_in,u8 *DataPtr) //DataPtrÖ¸ÏòÊý¾ÝÓòµÚÒ»¸öÊý¾Ý { u16 count_i; u16 CrcCheck; u16 CrcLength; u8 SetResult=0; u8 password_verif_result = 0; //1´ú±íÑéÖ¤³É¹¦ ,2´ú±í³§¼Ò´úÂëÎÞЧ 3´ú±íÃÜÂë´íÎó BigSmallSwitch((u8 *) &com_frame_receive_inf_in.random_number , 2); //Ëæ»úÂë¸ßµÍ×Ö½ÚÇл»Ò»Ï if((com_frame_inf_g.random_number!=0)&&(com_frame_receive_inf_in.random_number ==com_frame_inf_g.random_number)) { //Ëæ»úÂëÑéÖ¤ÕýÈ· password_verif_result =1; } if(password_verif_result==1) { com_frame_receive_inf_in.data_category_ID = (u16)(* (DataPtr ))*256 + * (DataPtr + 1); switch(com_frame_receive_inf_in.data_category_ID){ case INTERVAL_FREEZ_LOG_ID : COM_interval_freez_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case HOURLY_FREEZ_LOG_ID : COM_hour_freez_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case DAYLY_FREEZ_LOG_ID : COM_day_freez_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2);break; case MONTHLY_FREEZ_LOG_ID : COM_month_freez_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case SYSTEM_ALARM_LOG_ID : log_run_para_pc_g.data_search_first_addr = log_alarm_para_g.system_alarm_log.log_addr_save; log_run_para_pc_g.log_type_count = log_alarm_para_g.system_alarm_log.log_count; log_run_para_pc_g.log_type_all_num = SYSTEM_ALARM_LOG_NUM; log_run_para_pc_g.log_type_length = SYSTEM_ALARM_LOG_STORAGE_LENGTH; log_run_para_pc_g.data_start_addr = SYSTEM_ALARM_LOG_STORAGE_START_ADDR; log_run_para_pc_g.data_end_addr = SYSTEM_ALARM_LOG_STORAGE_END_ADDR; COM_system_alarm_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case VALVE_ACTION_LOG_ID: log_run_para_pc_g.data_search_first_addr = log_alarm_para_g.valve_action_log.log_addr_save; log_run_para_pc_g.log_type_count = log_alarm_para_g.valve_action_log.log_count; log_run_para_pc_g.log_type_all_num = VALVE_ACTION_LOG_STORAGE_NUM; log_run_para_pc_g.log_type_length = VALVE_ACTION_LOG_STORAGE_LENGTH; log_run_para_pc_g.data_start_addr = VALVE_ACTION_LOG_STORAGE_START_ADDR; log_run_para_pc_g.data_end_addr = VALVE_ACTION_LOG_STORAGE_END_ADDR; COM_valve_action_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case FLOW_MEASURE_ALARM_LOG_ID : COM_measure_alarm_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case CUMULAT_MODIFY_LOG_ID : COM_cumulate_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case FLOW_CORRECT_PARAM_MODIFY_LOG_ID : COM_flow_correction_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case PRE_CONFIG_PARAM_MODIFY_LOG_ID : COM_pre_config_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case TEM_CONFIG_PARAM_MODIFY_LOG_ID : COM_tem_config_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case FLOW_CONFIG_PARAM_MODIFY_LOG_ID : COM_flow_config_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case LOW_PULSE_CONFIG_PARAM_MODIFY_LOG_ID : COM_low_pulse_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case CURRENT_LOOP_CONFIG_PARAM_MODIFY_LOG_ID : COM_current_loop_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case SONIC_SENSOR_CALIBRATION_PARAM_MODIFY_LOG_ID : COM_sonic_sensor_calibration_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case SONIC_SENSOR_ABNORMAL_PARAM_MODIFY_LOG_ID : COM_sonic_sensor_abnormal_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; case SYSTEM_FUNCTION_CONTROL_WORD_MODIFY_LOG_ID : COM_system_function_control_word_modify_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; // case INTERVAL_FREEZ_LOG_ID : COM_interval_freez_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); break; // case THIRD_HOURLY_FREEZ_LOG_ID : // log_run_para_pc_g.data_start_addr = HOUR_RECORD_START_ADDR; // log_run_para_pc_g.data_end_addr = HOUR_RECORD_END_ADDR; // log_run_para_pc_g.log_type_EEprom_length = HOUR_RECORD_DATA_LENGTH; // log_run_para_pc_g.data_search_first_addr = IOT_Parameter.HourNumDataStored * log_run_para_pc_g.log_type_EEprom_length + log_run_para_pc_g.data_start_addr; // if(IOT_Parameter.HourStoredFullFlag ==1) // { // log_run_para_pc_g.log_type_count = HOUR_RECORD_MAX_NUM; // }else // { // log_run_para_pc_g.log_type_count = IOT_Parameter.HourNumDataStored; // } // log_run_para_pc_g.log_type_all_num = HOUR_RECORD_MAX_NUM; // log_run_para_pc_g.log_type_length = HOUR_RECORD_DATA_LENGTH; // // COM_third_data_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); // break; // case THIRD_DAYLY_FREEZ_LOG_ID : // log_run_para_pc_g.data_start_addr = DAY_RECORD_START_ADDR; // log_run_para_pc_g.data_end_addr = DAY_RECORD_END_ADDR; // log_run_para_pc_g.log_type_EEprom_length = DAY_RECORD_DATA_LENGTH; // log_run_para_pc_g.data_search_first_addr = IOT_Parameter.DayNumDataStored * log_run_para_pc_g.log_type_EEprom_length + log_run_para_pc_g.data_start_addr; // if(IOT_Parameter.DayStoredFullFlag ==1) // { // log_run_para_pc_g.log_type_count = DAY_RECORD_MAX_NUM; // }else // { // log_run_para_pc_g.log_type_count = IOT_Parameter.DayNumDataStored; // } // log_run_para_pc_g.log_type_all_num = DAY_RECORD_MAX_NUM; // log_run_para_pc_g.log_type_length = DAY_RECORD_DATA_LENGTH; // // COM_third_data_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); // break; // case THIRD_MONTHLY_FREEZ_LOG_ID : // log_run_para_pc_g.data_start_addr = MONTH_RECORD_START_ADDR; // log_run_para_pc_g.data_end_addr = MONTH_RECORD_END_ADDR; // log_run_para_pc_g.log_type_EEprom_length = MONTH_RECORD_DATA_LENGTH; // log_run_para_pc_g.data_search_first_addr = IOT_Parameter.MonthNumDataStored * log_run_para_pc_g.log_type_EEprom_length + log_run_para_pc_g.data_start_addr; // if(IOT_Parameter.MonthStoredFullFlag ==1) // { // log_run_para_pc_g.log_type_count = MONTH_RECORD_MAX_NUM; // }else // { // log_run_para_pc_g.log_type_count = IOT_Parameter.MonthNumDataStored; // } // log_run_para_pc_g.log_type_all_num = MONTH_RECORD_MAX_NUM; // log_run_para_pc_g.log_type_length = MONTH_RECORD_DATA_LENGTH; // // COM_third_data_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); // break; // case THIRD_EVENT_LOG_ID : // log_run_para_pc_g.data_start_addr = START_EVENT_RECORD_ADDR; // log_run_para_pc_g.data_end_addr = END_EVENT_RECORD_ADDR; // log_run_para_pc_g.log_type_EEprom_length = EVENT_RECORD_DATA_LENGTH; // log_run_para_pc_g.data_search_first_addr = IOT_Parameter.EventNumStored * log_run_para_pc_g.log_type_EEprom_length + log_run_para_pc_g.data_start_addr; // if(IOT_Parameter.EventFullStoredFlag ==1) // { // log_run_para_pc_g.log_type_count = EVENT_RECORD_MAX_NUM; // }else // { // log_run_para_pc_g.log_type_count = IOT_Parameter.EventNumStored; // } // log_run_para_pc_g.log_type_all_num = EVENT_RECORD_MAX_NUM; // log_run_para_pc_g.log_type_length = EVENT_RECORD_DATA_LENGTH; // // COM_third_event_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); // break; default : #ifndef THIRD_TELECOM_OPEN //Ö±½Óµ÷ÓõÚÈý·½µÄ×Ü´¦Àíº¯Êý ÔÚµÚÈý·½×Ü´¦Àíº¯ÊýÖзÖÀà´¦Àí third_upper_commnuication_log_read_handle(1,com_frame_receive_inf_in.control_code,com_frame_receive_inf_in.data_category_ID,DataPtr +2); #endif break; } } } /****************************************** * func: uart_rv_analysis * desc: ÉÏλ»úÊý¾Ý·ÖÎö´¦Àí * parameter: ÊäÈ룺databufferÊý×飬½ÓÊÕµ½µÄÊý¾Ý * return: 0£ºÎÞÊý¾Ý 1£ºÓÐÊý¾Ý½»»¥ 2¡¢µÇÈë 3¡¢Í˳ö 90:Êý¾ÝУÑ鲻ͨ¹ý 99£ºÊý¾Ý²»·ûºÏ¸ñʽҪÇó *****************************************/ u8 uart_rv_analysis(u8 * databuffer, u16 receive_data_length) { unsigned int crc; unsigned char crch,crcl; uint8_t *array_p; volatile void *regP; u8 return_flag =0; u8 flag=0,save_flag = 0, temp = 0; // uint16 receive_data_length=1; u8 * buf; uint16 dataSize=0,dataCount=0; //Õ¼¾Ý×Ö½Ú´óС£¬³ÉÔ±ÊýÁ¿ u16 i=0,j=0,i2=0; u16 byte_num; COM_FRAME_INF_T com_frame_receive_inf_l; buf = databuffer; save_flag = 0; //if(Flag_of_Modbus_Ok==1) //½ÓÊÕÍê³É±êÖ¾ if(receive_data_length) { return_flag = 1; if(buf[0] == COM_FRAME_HEAD_CODE) { memcpy ( &com_frame_receive_inf_l, databuffer, COM_FRAME_HEAD_LENGTH); com_frame_receive_inf_l.data_field_length = (com_frame_receive_inf_l.data_field_length >>8) +(com_frame_receive_inf_l.data_field_length <<8) ;//³¤¶È´óС¶Ëת»» crc=GetCRC16_user(buf,com_frame_receive_inf_l.data_field_length + COM_FRAME_HEAD_LENGTH); crch=crc>>8; //crc¸ßλ crcl=crc&0xFF; //crcµÍλ if((buf[com_frame_receive_inf_l.data_field_length + COM_FRAME_HEAD_LENGTH]==crch)&&(buf[com_frame_receive_inf_l.data_field_length + COM_FRAME_HEAD_LENGTH +1]==crcl)) { memcpy ( &com_frame_inf_g, &com_frame_receive_inf_l, 7); com_frame_inf_g.use_password[0] = (COM_FRAME_VERSION>>8)&0xff; com_frame_inf_g.use_password[1] = (COM_FRAME_VERSION)&0xff; switch(com_frame_receive_inf_l.control_code){ case COM_FRAME_CONTROL_CODE_LOGIN : //µÇÈëÖ¡µÄʱºòÑéÖ¤²Ù×÷¼¶±ð£¬ºóÐø¿É²»ÑéÖ¤²Ù×÷¼¶±ð if(com_frame_receive_inf_l.operation_level==SUPPER_ADMIN) { //³¬¼¶¹ÜÀíÔ±£¨ÄÚ²¿°æ±¾£©£¬ËùÓвÎÊý¿ÉÐÞ¸Ä v20_system_para_g.system_set_authorize_flag = 2; }else { //·Ç³¬¼¶¹ÜÀíÔ±£¬ÔòÐèÒª¸ù¾ÝÓû§µÈ¼¶ÅжÏÊÇ·ñ¿ÉÒÔÐÞ¸Ä if(com_frame_receive_inf_l.operation_level ==GENERAL_USER) { //ÆÕͨÓû§£¬ÎÞÐÞ¸ÄȨÏÞ v20_system_para_g.system_set_authorize_flag = 0; }else if(com_frame_receive_inf_l.operation_level ==ADVANCED_USER) { //¸ß¼¶Óû§£¬½ö·Ç¼ÆÁ¿²ÎÊý¿ÉÐÞ¸Ä v20_system_para_g.system_set_authorize_flag = 1; }else if(com_frame_receive_inf_l.operation_level ==MANAGE_USER) { //¹ÜÀíÔ±Óû§£¬ÎÞ°´¼üÊÚȨʱ½ö¿ÉÐ޸ķǼÆÁ¿²ÎÊý£¬Óа´¼üÊÚȨʱ¿ÉÐÞ¸ÄËùÓвÎÊý if(v20_system_para_g.system_key4_authorize_cnt==0) { v20_system_para_g.system_set_authorize_flag = 1; }else { v20_system_para_g.system_set_authorize_flag = 2; } }else { v20_system_para_g.system_set_authorize_flag = 0; } } COM_Login_handle(0,com_frame_receive_inf_l); return_flag = 2; break; case COM_FRAME_CONTROL_CODE_LOGOUT : COM_Logout_handle(0,com_frame_receive_inf_l); up_com_run_para_g.no_interaction_timeout_cnt = 0;//Í˳öµÇÈ볬ʱÇåÁ㣬ÆäËû¶ÁдµÈ²Ù×÷ÖØÖó¬Ê±Ê±¼ä return_flag = 3; break; case COM_FRAME_CONTROL_CODE_READ_PARA : COM_read_write_handle(1,com_frame_receive_inf_l,(databuffer +COM_FRAME_HEAD_LENGTH)); if(up_com_run_para_g.no_interaction_timeout_cnt10) //²Á³ý³ÌÐò£¨²Á³ýbootloadÖгÌÐòµÄ±ê־룩 { if((v20_system_para_g.system_set_authorize_flag == 2)||(v20_system_para_g.system_set_authorize_flag == 1)) { //½øÈëbootloadÕâ¸ö״̬ flow_device_special_function_g.table256_special_function_flag = 1; bt_rs485_send((u8 *)order_cmd4,7); } }else { return_flag = 99; } }else { return_flag = 0; } return return_flag; } void sizhu_rv_hard_init(void) { /*³õʼ»¯µçÔ´,²¢´ò¿ªµçÔ´*/ PC_RS485__POWER_Init(); BT_RS485_UART_GPIO_Init(); // BT_Usart_Init(115200); modbus_uart_init(); PC_RS485__POWER_ON // First_send_flag =1; //Çе½µç³Ø¹©µçÊ״η¢ËÍÒ»´ÎÎÞÓÃÊý¾Ý£¬ÎÞʵ¼ÊÒâÒ壬ΪÁ˱ÜÃâµÚÒ»´Î·¢ËÍÊý¾Ý¶ª×Ö½Ú } /****************************************** * func: alarm_cnt_clear * desc: ÿÌ챨¾¯¿ØÖÆ´ÎÊý²ÎÊýÇåÁã * input: none * output: none * return: 0£ºÎÞÊý¾Ý 1£ºÓÐÊý¾Ý½»»¥ 2¡¢µÇÈë 3¡¢Í˳ö 90:Êý¾ÝУÑ鲻ͨ¹ý 99£ºÊý¾Ý²»·ûºÏ¸ñʽҪÇó *****************************************/ u8 sizhu_rv_handle(void) { u16 Rcv_data_len; COM_TYPE com_type; u8 return_flag =0; /**/ if(up_com_run_para_g.no_interaction_timeout_cnt>0) { up_com_run_para_g.no_interaction_timeout_cnt--; if(up_com_run_para_g.no_interaction_timeout_cnt==0) { v20_system_para_g.system_set_authorize_flag = 0; com_frame_inf_g.random_number = 0; //³¬Ê± Ëæ»úÂëÇåÁã } }else { } // temp = BT_RS485_RECEIVE_PROCESS(); RS485_status=xMBRTUReceiveCheck(&com_type,&Rcv_data_len); if(Rcv_data_len) { if(com_type == RS485_MODBUS_RTU_COM) { if(RS485_status) { eMBPoll(0); RS485_status=0; v20_system_para_g.system_485_connect = 1; }else { v20_system_para_g.system_485_connect = 0; } }else { return_flag = uart_rv_analysis(BT_RS485_HANDLE_RX_BUFF,Rcv_data_len); memset(BT_RS485_HANDLE_RX_BUFF, 0, sizeof(BT_RS485_HANDLE_RX_BUFF)); } } else { return_flag =0; } // return return_flag; }