#include "upper_computer_read_log_api.h" #include "upper_computer_rw_api.h" #include "lcd.h" #include "system_log.h" #include "e2p.h" #include "delay.h" #include "string.h" #include "gpio.h" #include "low_pwr_test.h" #include "upper_computer_read_log_temp.h" #include "cyclic_storage_cfg_api.h" UC_SEND_LOG_PARA_T uc_send_log_para_g = {0}; UC_AMEND_LOG_T uc_amend_log_g = {0}; UC_ALARM_DATA_LOG_T uc_other_alarm_data_log_g = {0}; SYS_UPCOMPUTER_SYSLOG_FORMAT_T uc_send_time_data_g = {0}; /************************************** Read Log ****************************************************************/ /************************************** Read Log ***************************************************************/ static const UC_RECV_LOG_FUNC_TABLE_DRV_T uc_recv_log_tab_func[] = { {0x0303, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadPressAlarmCfgLogHandler}, {0x0304, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadTempAlarmCfgLogHandler}, {0x0305, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadFlowAlarmCfgLogHandler}, {0x0306, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadPulseCfgLogHandler}, {0x0201, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSysAlarmDataLogHandler}, {0x0202, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSysAlarmDataLogHandler}, {0x0203, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSysAlarmDataLogHandler}, {0x0204, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSysAlarmDataLogHandler}, {0x0205, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSysAlarmDataLogHandler}, {UCLC_HOUR_FLOW_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadHoursLogHandler}, {UCLC_DAY_FLOW_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadDaysLogHandler}, {UCLC_MONTH_FLOW_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadMonthsLogHandler}, {UCLC_SEND_FLOW_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GprsSendData_LogHandler}, {UCLC_SYS_ALARM_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_SysAlarmData_LogHandler}, {UCLC_MEASURE_ALARM_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_MeasureAlarmData_LogHandler}, {UCLC_CUMULANT_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_BALANCE_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_TEMP_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_PRESS_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_FLOW_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_PRICE_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_PULSE_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_FUNC_CFG_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_ALARM_CTL_SEND_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_VALVE_CTL_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_BILLING_ALARM_AMEND_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_GeneralAmend_LogHandler}, {UCLC_VALVE_LOG_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_ValveCtl_LogHandler}, {UCLC_RESTORE_LOG_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Uc_ReadSysAlarmDataLogHandler}, {UCLC_TIMING_LOG_RO,NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER,Read_Timing_LogHandler}, {UCLC_PAY_LOG_RO, NORMAL_MODE | DISPLAY_PARA | SET_PARA_MODE, UC_NORMAL_USER | UC_POWER_USER | UC_ADMIN_USER | UC_SUPERUSER, Read_Pay_LogHandler}, }; /************************************** Read Log ****************************************************************/ /************************************** Read Log ****************************************************************/ /************************************** Read Log ****************************************************************/ /*ÉÏλ»úÈÕÖ¾·µ»Ø´¦Àíº¯Êý*/ void Upper_ComputerLogResultProcess(ErrorStatus_STM32 result_state, uint8_t *pData, UC_RECV_DATA_UNION_T *uc_recv_union_p, UC_SEND_LOG_PARA_T *uc_log_para_p) { /*°ÑÖ¡Í·½á¹¹ÌåÊý¾Ý¿½±´µ½·¢ËÍÊý×é*/ memcpy(pData, &uc_recv_union_p->uc_protocol_head_s, UC_PROTOCOL_HEAD_LENGTH); /*¹¹ÔìÊý¾ÝÓò±íºÅ,±¾´Î·¢ËÍÌõÊýºÍÐø´«±ê־λ*/ pData[UC_PROTOCOL_HEAD_LENGTH] = uc_recv_union_p->uc_recv_buf[12]; // ´ó¶Ë pData[UC_PROTOCOL_HEAD_LENGTH + 1] = uc_recv_union_p->uc_recv_buf[13]; pData[UC_PROTOCOL_HEAD_LENGTH + 2] = uc_log_para_p->send_log_num_now >> 8; // ´ó¶Ë pData[UC_PROTOCOL_HEAD_LENGTH + 3] = uc_log_para_p->send_log_num_now; pData[UC_PROTOCOL_HEAD_LENGTH + 4] = uc_log_para_p->send_log_continue_flag; // if (result_state == ERROR_1) // memset(&pData[UC_PROTOCOL_HEAD_LENGTH + 2], 0, uc_recv_union_p->uc_protocol_head_s.data_field_length - 2); //³ýÁ˱íºÅµÄÊý¾ÝÓò²¿·Ö½o0 } ErrorStatus_STM32 Uc_ReadPeriodLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { uint8_t reserved_bytes = 4; *pData_field_len = HISTORY_FLOW_DATA_LOG_FORMAT_SIZE + UC_DATA_TABLE_BYTES_LENGTH + reserved_bytes; return SUCCESS_0; } #define UC_READ_LOG_NUM_MAX 4 ErrorStatus_STM32 Uc_ReadHoursLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; uint16_t uc_log_format_len = HISTORY_FLOW_DATA_LOG_FORMAT_SIZE - SIZEOF_OF(SYS_FLOW_DATA_SYSLOG_FORMAT_T,reserve); SYS_FLOW_DATA_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_HOUR_FLOW_DATA]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclic_TimeGetStartAddr(ptr,&uc_log_para_p->send_log_num_total, &pInputData[UC_DATA_TABLE_BYTES_LENGTH],&pInputData[6 + UC_DATA_TABLE_BYTES_LENGTH],1);//»ñÈ¡µØÖ· uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclicRead_1_Data(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_start_addr); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Uc_ReadDaysLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; uint16_t uc_log_format_len = HISTORY_FLOW_DATA_LOG_FORMAT_SIZE - SIZEOF_OF(SYS_FLOW_DATA_SYSLOG_FORMAT_T,reserve); SYS_FLOW_DATA_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_DAY_FLOW_DATA]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclic_TimeGetStartAddr(ptr,&uc_log_para_p->send_log_num_total, &pInputData[UC_DATA_TABLE_BYTES_LENGTH],&pInputData[6 + UC_DATA_TABLE_BYTES_LENGTH],2);//»ñÈ¡µØÖ· uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclicRead_1_Data(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_start_addr); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Uc_ReadMonthsLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; uint16_t uc_log_format_len = HISTORY_FLOW_DATA_LOG_FORMAT_SIZE - SIZEOF_OF(SYS_FLOW_DATA_SYSLOG_FORMAT_T,reserve); SYS_FLOW_DATA_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_MONTH_FLOW_DATA]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclic_TimeGetStartAddr(ptr,&uc_log_para_p->send_log_num_total, &pInputData[UC_DATA_TABLE_BYTES_LENGTH],&pInputData[6 + UC_DATA_TABLE_BYTES_LENGTH],3);//»ñÈ¡µØÖ· uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclicRead_1_Data(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_start_addr); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Read_GeneralAmend_LogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = SUCCESS_0; uint16_t uc_log_format_len = 0,table_id = pInputData[0] << 8 | pInputData[1]; PARA_AMEND_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = NULL; /*±íºÅÇø·Ö³¤¶ÈºÍptr*/ switch(table_id) { case UCLC_CUMULANT_AMEND_RO: uc_log_format_len = GAS_CUMULATE_AMEND_LOG_FORMAT_SIZE - SIZEOF_OF(struct gas_cumulate_amend,reserve); ptr = &sys_log_cyclic_table[CYCL_GAS_CUMULATE_AMEND]; break; case UCLC_BALANCE_AMEND_RO: uc_log_format_len = BALANCE_AMEND_LOG_FORMAT_SIZE - SIZEOF_OF(struct balance_amend,reserve); ptr = &sys_log_cyclic_table[CYCL_BALANCE_AMEND]; break; case UCLC_TEMP_AMEND_RO: uc_log_format_len = TEMP_CFG_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_TEMP_CFG_AMEND]; break; case UCLC_PRESS_AMEND_RO: uc_log_format_len = PRESS_CFG_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_PRESS_CFG_AMEND]; break; case UCLC_FLOW_AMEND_RO: uc_log_format_len = FLOW_CFG_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_FLOW_CFG_AMEND]; break; case UCLC_PRICE_AMEND_RO: uc_log_format_len = BILLING_PRICE_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_BILLING_PRICE_AMEND]; break; case UCLC_PULSE_AMEND_RO: uc_log_format_len = CAL_PULSE_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_CAL_PULSE_AMEND]; break; case UCLC_FUNC_CFG_AMEND_RO: uc_log_format_len = SYS_FUNC_CFG_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_SYS_FUNC_CFG_AMEND]; break; case UCLC_ALARM_CTL_SEND_AMEND_RO: uc_log_format_len = ALARM_CTL_SEND_BYTES_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_ALARM_CTL_SEND_BYTES_AMEND]; break; case UCLC_VALVE_CTL_AMEND_RO: uc_log_format_len = VALVE_CTL_BYTES_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_VALVE_CTL_BYTES_AMEND]; break; case UCLC_BILLING_ALARM_AMEND_RO: uc_log_format_len = BILLING_ALARM_CFG_AMEND_LOG_FORMAT_SIZE; ptr = &sys_log_cyclic_table[CYCL_BILLING_ALARM_CFG_AMEND]; break; default:break; } if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־λ { if(ptr->table_id->log_index >= ptr->data_num || ptr->table_id->log_cyclic_full_cnt) uc_log_para_p->send_log_num_total = ptr->data_num;//·¢ËÍ×ÜÌõÊý else uc_log_para_p->send_log_num_total = ptr->table_id->log_index - 1; uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { Sys_Log_E2pCyclicMultiplePositiveRead(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_index + i + 1,1); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; return result_flag; } ErrorStatus_STM32 Read_Timing_LogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = SUCCESS_0; uint16_t uc_log_format_len = TIMING_LOG_FORMAT_SIZE - SIZEOF_OF(TIMING_SYSLOG_FORMAT_T,reserve); TIMING_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_TIMING]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { if(ptr->table_id->log_index >= ptr->data_num || ptr->table_id->log_cyclic_full_cnt) uc_log_para_p->send_log_num_total = ptr->data_num; else uc_log_para_p->send_log_num_total = ptr->table_id->log_index - 1; uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { Sys_Log_E2pCyclicMultiplePositiveRead(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_index + i + 1,1); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; return result_flag; } ErrorStatus_STM32 Read_GprsSendData_LogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; uint16_t uc_log_format_len = SEND_FLOW_DATA_LOG_FORMAT_SIZE - SIZEOF_OF(SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T,reserve) - SIZEOF_OF(SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T,check_sum); SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_SEND_FLOW_DATA]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclic_StartTime_GetStartAddr(ptr,&uc_log_para_p->send_log_num_total, &pInputData[UC_DATA_TABLE_BYTES_LENGTH],&pInputData[6 + UC_DATA_TABLE_BYTES_LENGTH], OFFSET_OF(SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T,record_time));//»ñÈ¡µØÖ· uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclicRead_1_Data(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_start_addr); memcpy(&pOutputData[i * uc_log_format_len],temp_record_buff.record_time,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Read_SysAlarmData_LogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; uint16_t uc_log_format_len = OTHER_ALARM_DATA_LOG_FORMAT_SIZE - SIZEOF_OF(struct other_alarm_data,reserve); ALARM_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_OTHER_ALARM]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclic_StartTime_GetStartAddr(ptr,&uc_log_para_p->send_log_num_total, &pInputData[UC_DATA_TABLE_BYTES_LENGTH],&pInputData[6 + UC_DATA_TABLE_BYTES_LENGTH], OFFSET_OF(ALARM_SYSLOG_FORMAT_T,record_time));//»ñÈ¡µØÖ· uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclicRead_1_Data(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_start_addr); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Read_MeasureAlarmData_LogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; uint16_t uc_log_format_len = MEASURE_ALARM_DATA_LOG_FORMAT_SIZE - SIZEOF_OF(struct measure_alarm_data,reserve); ALARM_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_MEASURE_ALARM]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclic_StartTime_GetStartAddr(ptr,&uc_log_para_p->send_log_num_total, &pInputData[UC_DATA_TABLE_BYTES_LENGTH],&pInputData[6 + UC_DATA_TABLE_BYTES_LENGTH], OFFSET_OF(ALARM_SYSLOG_FORMAT_T,record_time));//»ñÈ¡µØÖ· uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclicRead_1_Data(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_start_addr); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Read_ValveCtl_LogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; uint16_t uc_log_format_len = VALVE_LOG_FORMAT_SIZE - SIZEOF_OF(VALVE_SYSLOG_FORMAT_T,reserve); VALVE_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_VALVE]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclic_StartTime_GetStartAddr(ptr,&uc_log_para_p->send_log_num_total, &pInputData[UC_DATA_TABLE_BYTES_LENGTH],&pInputData[6 + UC_DATA_TABLE_BYTES_LENGTH], OFFSET_OF(VALVE_SYSLOG_FORMAT_T,record_time));//»ñÈ¡µØÖ· uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclicRead_1_Data(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_start_addr); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Read_Pay_LogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; uint16_t uc_log_format_len = PAY_LOG_FORMAT_SIZE - SIZEOF_OF(PAY_SYSLOG_FORMAT_T,reserve); PAY_SYSLOG_FORMAT_T temp_record_buff = {0}; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_PAY]; if (pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0) // ÊÇ·ñÊ״ζÁÈ¡±ê־룬Ê×´ÎÐèÒª¼ÆËã·¢ËÍÌõÊýºÍ·¢ËÍÊ×µØÖ· { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclic_StartTime_GetStartAddr(ptr,&uc_log_para_p->send_log_num_total, &pInputData[UC_DATA_TABLE_BYTES_LENGTH],&pInputData[6 + UC_DATA_TABLE_BYTES_LENGTH], OFFSET_OF(PAY_SYSLOG_FORMAT_T,record_time));//»ñÈ¡µØÖ· uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += UC_READ_LOG_NUM_MAX; if(uc_log_para_p->send_log_num_total > UC_READ_LOG_NUM_MAX) { uc_log_para_p->send_log_num_total -= UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_num_now = UC_READ_LOG_NUM_MAX; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint16_t i = 0;i < uc_log_para_p->send_log_num_now; i++) { uc_log_para_p->send_log_start_addr = Sys_Log_E2pCyclicRead_1_Data(ptr,(uint8_t *)&temp_record_buff,uc_log_para_p->send_log_start_addr); memcpy(&pOutputData[i * uc_log_format_len],&temp_record_buff,uc_log_format_len); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + uc_log_format_len * uc_log_para_p->send_log_num_now; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Uc_ReadPressAlarmCfgLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; PARA_AMEND_SYSLOG_FORMAT_T temp_para = {0}; UC_AMEND_LOG_T * uc_amend_log_p = &uc_amend_log_g; E2P_PWR_ON; // ¿ªÆôE2pµçÔ´ const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_PRESS_CFG_AMEND]; if(pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0)//Ê×´Î { if(ptr->table_id->log_cyclic_full_cnt) //»·Ð´Âú uc_log_para_p->send_log_num_total = ptr->data_num;//·¢ËÍ×ÜÌõÊý else uc_log_para_p->send_log_num_total = ptr->table_id->log_index - 1;//6ÌõÀúÊ·Êý¾ÝµÄ»°index = 7 send_log_num_total = 6 uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += 5; if(uc_log_para_p->send_log_num_total > 5) { uc_log_para_p->send_log_num_total -= 5; uc_log_para_p->send_log_num_now = 5; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint8_t i = 0; i < uc_log_para_p->send_log_num_now;i++) { /*µ¹Ðð¶Á*/ Sys_Log_E2pCyclicMultiplePositiveRead(&sys_log_cyclic_table[CYCL_PRESS_CFG_AMEND], (uint8_t *)&temp_para, i + 1+ uc_log_para_p->send_log_index,1); /*¹¹Ôì±¾µØÍ¨Ñ¶ÈÕÖ¾·¢Ë͸ñʽ*/ uc_amend_log_p->record_num = temp_para.record_num; uc_amend_log_p->mender = temp_para.mender; memcpy(uc_amend_log_p->record_time,temp_para.record_time,6); uc_amend_log_p->amend_id = 0x03; memcpy(&uc_amend_log_p->uc_amend_data.press_para_s.before,&temp_para.para_amend_union.press_cfg_amend_s.press_cfg_before, sizeof(PRESS_PARA_T)); memcpy(&uc_amend_log_p->uc_amend_data.press_para_s.now,&temp_para.para_amend_union.press_cfg_amend_s.press_cgf_now, sizeof(PRESS_PARA_T)); /*´óС¶Ëת»»*/ uc_amend_log_p->uc_amend_data.press_para_s.before.press_correction_factor = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_correction_factor); uc_amend_log_p->uc_amend_data.press_para_s.before.press_intercept = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_intercept); uc_amend_log_p->uc_amend_data.press_para_s.before.press_up_valve = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_up_valve); uc_amend_log_p->uc_amend_data.press_para_s.before.press_up_up_valve = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_up_up_valve); uc_amend_log_p->uc_amend_data.press_para_s.before.press_down_valve = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_down_valve); uc_amend_log_p->uc_amend_data.press_para_s.before.press_down_down_valve = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_down_down_valve); uc_amend_log_p->uc_amend_data.press_para_s.before.press_up_scope = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_up_scope); uc_amend_log_p->uc_amend_data.press_para_s.before.press_down_scope = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_down_scope); uc_amend_log_p->uc_amend_data.press_para_s.before.press_down_down_replace = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.before.press_down_down_replace); uc_amend_log_p->uc_amend_data.press_para_s.now.press_correction_factor = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_correction_factor); uc_amend_log_p->uc_amend_data.press_para_s.now.press_intercept = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_intercept); uc_amend_log_p->uc_amend_data.press_para_s.now.press_up_valve = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_up_valve); uc_amend_log_p->uc_amend_data.press_para_s.now.press_up_up_valve = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_up_up_valve); uc_amend_log_p->uc_amend_data.press_para_s.now.press_down_valve = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_down_valve); uc_amend_log_p->uc_amend_data.press_para_s.now.press_down_down_valve = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_down_down_valve); uc_amend_log_p->uc_amend_data.press_para_s.now.press_up_scope = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_up_scope); uc_amend_log_p->uc_amend_data.press_para_s.now.press_down_scope = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_down_scope); uc_amend_log_p->uc_amend_data.press_para_s.now.press_down_down_replace = BLEndianFloat(uc_amend_log_p->uc_amend_data.press_para_s.now.press_down_down_replace); /*¸³Öµµ½·¢ËÍÊý×é*/ memcpy(&pOutputData[i * UC_AMEND_LOG_PRESS_PARA_PACK_LEN],uc_amend_log_p,UC_AMEND_LOG_PRESS_PARA_PACK_LEN); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + UC_AMEND_LOG_PRESS_PARA_PACK_LEN * uc_log_para_p->send_log_num_now; E2P_PWR_OFF; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Uc_ReadTempAlarmCfgLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; PARA_AMEND_SYSLOG_FORMAT_T temp_para = {0}; UC_AMEND_LOG_T * uc_amend_log_p = &uc_amend_log_g; E2P_PWR_ON; // ¿ªÆôE2pµçÔ´ const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_TEMP_CFG_AMEND]; if(pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0)//Ê×´Î { if(ptr->table_id->log_cyclic_full_cnt) //»·Ð´Âú uc_log_para_p->send_log_num_total = ptr->data_num;//·¢ËÍ×ÜÌõÊý else uc_log_para_p->send_log_num_total = ptr->table_id->log_index - 1;//6ÌõÀúÊ·Êý¾ÝµÄ»°index = 7 send_log_num_total = 6 uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += 5; if(uc_log_para_p->send_log_num_total > 5) { uc_log_para_p->send_log_num_total -= 5; uc_log_para_p->send_log_num_now = 5; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint8_t i = 0; i < uc_log_para_p->send_log_num_now;i++) { /*µ¹Ðð¶Á*/ Sys_Log_E2pCyclicMultiplePositiveRead(&sys_log_cyclic_table[CYCL_TEMP_CFG_AMEND], (uint8_t *)&temp_para, i + 1+ uc_log_para_p->send_log_index,1); /*¹¹Ôì±¾µØÍ¨Ñ¶ÈÕÖ¾·¢Ë͸ñʽ*/ uc_amend_log_p->record_num = temp_para.record_num; uc_amend_log_p->mender = temp_para.mender; memcpy(uc_amend_log_p->record_time,temp_para.record_time,6); uc_amend_log_p->amend_id = 0x04; memcpy(&uc_amend_log_p->uc_amend_data.temp_para_s.before,&temp_para.para_amend_union.temp_cfg_amend_s.temp_cfg_before, sizeof(TEMP_PARA_T)); memcpy(&uc_amend_log_p->uc_amend_data.temp_para_s.now,&temp_para.para_amend_union.temp_cfg_amend_s.temp_cgf_now, sizeof(TEMP_PARA_T)); /*´óС¶Ëת»»*/ uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_correction_factor = BLEndianFloat(uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_correction_factor); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_intercept = BLEndianFloat(uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_intercept); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_up_valve = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_up_valve); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_up_up_valve = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_up_up_valve); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_down_valve = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_down_valve); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_down_down_valve = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_down_down_valve); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_up_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_up_scope); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_down_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_down_scope); uc_amend_log_p->uc_amend_data.temp_para_s.before.cpu_temp_up_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.cpu_temp_up_scope); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_down_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.cpu_temp_down_scope); uc_amend_log_p->uc_amend_data.temp_para_s.before.temp_down_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.before.cpu_temp_down_scope); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_correction_factor = BLEndianFloat(uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_correction_factor); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_intercept = BLEndianFloat(uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_intercept); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_up_valve = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_up_valve); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_up_up_valve = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_up_up_valve); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_down_valve = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_down_valve); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_down_down_valve = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_down_down_valve); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_up_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_up_scope); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_down_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_down_scope); uc_amend_log_p->uc_amend_data.temp_para_s.now.cpu_temp_up_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.cpu_temp_up_scope); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_down_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.cpu_temp_down_scope); uc_amend_log_p->uc_amend_data.temp_para_s.now.temp_down_scope = BSWAP_16(uc_amend_log_p->uc_amend_data.temp_para_s.now.cpu_temp_down_scope); /*¸³Öµµ½·¢ËÍÊý×é*/ memcpy(&pOutputData[i * UC_AMEND_LOG_TEMP_PARA_PACK_LEN],uc_amend_log_p,UC_AMEND_LOG_TEMP_PARA_PACK_LEN); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + UC_AMEND_LOG_TEMP_PARA_PACK_LEN * uc_log_para_p->send_log_num_now; E2P_PWR_OFF; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Uc_ReadFlowAlarmCfgLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; PARA_AMEND_SYSLOG_FORMAT_T temp_para = {0}; UC_AMEND_LOG_T * uc_amend_log_p = &uc_amend_log_g; E2P_PWR_ON; // ¿ªÆôE2pµçÔ´ const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_FLOW_CFG_AMEND]; if(pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0)//Ê×´Î { if(ptr->table_id->log_cyclic_full_cnt) //»·Ð´Âú uc_log_para_p->send_log_num_total = ptr->data_num;//·¢ËÍ×ÜÌõÊý else uc_log_para_p->send_log_num_total = ptr->table_id->log_index - 1;//6ÌõÀúÊ·Êý¾ÝµÄ»°index = 7 send_log_num_total = 6 uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += 5; if(uc_log_para_p->send_log_num_total > 5) { uc_log_para_p->send_log_num_total -= 5; uc_log_para_p->send_log_num_now = 5; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint8_t i = 0; i < uc_log_para_p->send_log_num_now;i++) { /*µ¹Ðð¶Á*/ Sys_Log_E2pCyclicMultiplePositiveRead(&sys_log_cyclic_table[CYCL_FLOW_CFG_AMEND], (uint8_t *)&temp_para, i + 1+ uc_log_para_p->send_log_index,1); /*¹¹Ôì±¾µØÍ¨Ñ¶ÈÕÖ¾·¢Ë͸ñʽ*/ uc_amend_log_p->record_num = temp_para.record_num; uc_amend_log_p->mender = temp_para.mender; memcpy(uc_amend_log_p->record_time,temp_para.record_time,6); uc_amend_log_p->amend_id = 0x05; memcpy(&uc_amend_log_p->uc_amend_data.flow_para_s.before,&temp_para.para_amend_union.flow_cfg_amend_s.flow_cfg_before, sizeof(FLOW_PARA_T)); memcpy(&uc_amend_log_p->uc_amend_data.flow_para_s.now,&temp_para.para_amend_union.flow_cfg_amend_s.flow_cfg_now, sizeof(FLOW_PARA_T)); /*´óС¶Ëת»»*/ uc_amend_log_p->uc_amend_data.flow_para_s.before.flow_up = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.before.flow_up); uc_amend_log_p->uc_amend_data.flow_para_s.before.flow_up_up = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.before.flow_up_up); uc_amend_log_p->uc_amend_data.flow_para_s.before.flow_down = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.before.flow_down); uc_amend_log_p->uc_amend_data.flow_para_s.before.flow_up_up_replace_value = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.before.flow_up_up_replace_value); uc_amend_log_p->uc_amend_data.flow_para_s.before.small_flow_excision_value = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.before.small_flow_excision_value); uc_amend_log_p->uc_amend_data.flow_para_s.now.flow_up = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.now.flow_up); uc_amend_log_p->uc_amend_data.flow_para_s.now.flow_up_up = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.now.flow_up_up); uc_amend_log_p->uc_amend_data.flow_para_s.now.flow_down = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.now.flow_down); uc_amend_log_p->uc_amend_data.flow_para_s.now.flow_up_up_replace_value = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.now.flow_up_up_replace_value); uc_amend_log_p->uc_amend_data.flow_para_s.now.small_flow_excision_value = BLEndianFloat(uc_amend_log_p->uc_amend_data.flow_para_s.now.small_flow_excision_value); /*¸³Öµµ½·¢ËÍÊý×é*/ memcpy(&pOutputData[i * UC_AMEND_LOG_FLOW_PARA_PACK_LEN],uc_amend_log_p,UC_AMEND_LOG_FLOW_PARA_PACK_LEN); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + UC_AMEND_LOG_FLOW_PARA_PACK_LEN * uc_log_para_p->send_log_num_now; E2P_PWR_OFF; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Uc_ReadPulseCfgLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; PARA_AMEND_SYSLOG_FORMAT_T temp_para = {0}; UC_AMEND_LOG_T * uc_amend_log_p = &uc_amend_log_g; E2P_PWR_ON; // ¿ªÆôE2pµçÔ´ const SYSLOG_CYCLIC_TABLE_T * ptr_pulse = &sys_log_cyclic_table[CYCL_CAL_PULSE_AMEND]; if(pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0)//Ê×´Î { if(ptr_pulse->table_id->log_cyclic_full_cnt) //»·Ð´Âú uc_log_para_p->send_log_num_total = ptr_pulse->data_num;//·¢ËÍ×ÜÌõÊý else uc_log_para_p->send_log_num_total = ptr_pulse->table_id->log_index - 1;//6ÌõÀúÊ·Êý¾ÝµÄ»°index = 7 send_log_num_total = 6 uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += 5; if(uc_log_para_p->send_log_num_total > 5) { uc_log_para_p->send_log_num_total -= 5; uc_log_para_p->send_log_num_now = 5; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint8_t i = 0; i < uc_log_para_p->send_log_num_now;i++) { /*µ¹Ðð¶Á*/ Sys_Log_E2pCyclicMultiplePositiveRead(&sys_log_cyclic_table[CYCL_CAL_PULSE_AMEND], (uint8_t *)&temp_para, i + 1+ uc_log_para_p->send_log_index,1); /*¹¹Ôì±¾µØÍ¨Ñ¶ÈÕÖ¾·¢Ë͸ñʽ*/ uc_amend_log_p->record_num = temp_para.record_num; uc_amend_log_p->mender = temp_para.mender; memcpy(uc_amend_log_p->record_time,temp_para.record_time,6); uc_amend_log_p->amend_id = 0x06; uc_amend_log_p->uc_amend_data.pulse_para_s.before.cal_pulse_fator = temp_para.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_before.cal_pulse_factor; uc_amend_log_p->uc_amend_data.pulse_para_s.before.cal_pulse_width = temp_para.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_before.cal_pulse_width; uc_amend_log_p->uc_amend_data.pulse_para_s.now.cal_pulse_fator = temp_para.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_now.cal_pulse_factor; uc_amend_log_p->uc_amend_data.pulse_para_s.now.cal_pulse_width = temp_para.para_amend_union.cal_pulse_amend_s.cal_pulse_cfg_now.cal_pulse_width; /*´óС¶Ëת»»*/ uc_amend_log_p->uc_amend_data.pulse_para_s.before.cal_pulse_fator = BSWAP_32(uc_amend_log_p->uc_amend_data.pulse_para_s.before.cal_pulse_fator); uc_amend_log_p->uc_amend_data.pulse_para_s.before.cal_pulse_width = BSWAP_16(uc_amend_log_p->uc_amend_data.pulse_para_s.before.cal_pulse_width); uc_amend_log_p->uc_amend_data.pulse_para_s.now.cal_pulse_fator = BSWAP_32(uc_amend_log_p->uc_amend_data.pulse_para_s.now.cal_pulse_fator); uc_amend_log_p->uc_amend_data.pulse_para_s.now.cal_pulse_width = BSWAP_16(uc_amend_log_p->uc_amend_data.pulse_para_s.now.cal_pulse_width); /*¸³Öµµ½·¢ËÍÊý×é*/ memcpy(&pOutputData[i * UC_AMEND_LOG_PULSE_PARA_PACK_LEN],uc_amend_log_p,UC_AMEND_LOG_PULSE_PARA_PACK_LEN); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + UC_AMEND_LOG_PULSE_PARA_PACK_LEN * uc_log_para_p->send_log_num_now; E2P_PWR_OFF; result_flag = SUCCESS_0; return result_flag; } ErrorStatus_STM32 Uc_ReadSysAlarmDataLogHandler(uint8_t *pInputData, uint8_t *pOutputData, uint16_t *pData_field_len, UC_SEND_LOG_PARA_T *uc_log_para_p) { ErrorStatus_STM32 result_flag = ERROR_1; ALARM_SYSLOG_FORMAT_T temp_alarm_data = {0}; UC_ALARM_DATA_LOG_T * uc_other_alarm_log_p = &uc_other_alarm_data_log_g; const SYSLOG_CYCLIC_TABLE_T * ptr = &sys_log_cyclic_table[CYCL_OTHER_ALARM]; if(pInputData[14 + UC_DATA_TABLE_BYTES_LENGTH] == 0)//Ê×´Î { if(ptr->table_id->log_index > 20) uc_log_para_p->send_log_num_total = 20;//ÔÝʱ¹Ì¶¨Ö»ÄÜ·¢20Ìõ×î´ó else uc_log_para_p->send_log_num_total = ptr->table_id->log_index - 1;//6ÌõÀúÊ·Êý¾ÝµÄ»°index = 7 send_log_num_total = 6 uc_log_para_p->send_log_index = 0; } else uc_log_para_p->send_log_index += 5; if(uc_log_para_p->send_log_num_total > 5) { uc_log_para_p->send_log_num_total -= 5; uc_log_para_p->send_log_num_now = 5; uc_log_para_p->send_log_continue_flag = 1; } else { uc_log_para_p->send_log_num_now = uc_log_para_p->send_log_num_total; uc_log_para_p->send_log_continue_flag = 0; } for(uint8_t i = 0; i < uc_log_para_p->send_log_num_now;i++) { /*µ¹Ðð¶Á*/ Sys_Log_E2pCyclicMultiplePositiveRead(&sys_log_cyclic_table[CYCL_OTHER_ALARM], (uint8_t *)&temp_alarm_data, i + 1+ uc_log_para_p->send_log_index,1); /*¹¹Ôì±¾µØÍ¨Ñ¶ÈÕÖ¾·¢Ë͸ñʽ*/ uc_other_alarm_log_p->record_num = temp_alarm_data.record_num; memcpy(uc_other_alarm_log_p->record_time,temp_alarm_data.record_time,6); uc_other_alarm_log_p->alarm_id = temp_alarm_data.alarm_id; uc_other_alarm_log_p->forward_cumulate_sc = temp_alarm_data.forward_cumulate_sc; uc_other_alarm_log_p->forward_cumulate_wc = temp_alarm_data.forward_cumulate_wc; memcpy(&uc_other_alarm_log_p->instant_sc,&temp_alarm_data.instant_sc,34); /*´óС¶Ëת»»*/ uc_other_alarm_log_p->alarm_id = HEX_2_BCD_U8(uc_other_alarm_log_p->alarm_id); uc_other_alarm_log_p->alarm_id = BSWAP_16(uc_other_alarm_log_p->alarm_id); uc_other_alarm_log_p->forward_cumulate_sc = BLEndianDouble(uc_other_alarm_log_p->forward_cumulate_sc); uc_other_alarm_log_p->forward_cumulate_sc = BLEndianDouble(uc_other_alarm_log_p->forward_cumulate_wc); uc_other_alarm_log_p->instant_sc= BLEndianFloat(uc_other_alarm_log_p->instant_sc); uc_other_alarm_log_p->instant_wc = BLEndianFloat(uc_other_alarm_log_p->instant_wc); uc_other_alarm_log_p->temperature = BLEndianFloat(uc_other_alarm_log_p->temperature); uc_other_alarm_log_p->pressure = BLEndianFloat(uc_other_alarm_log_p->pressure); uc_other_alarm_log_p->cpu_temperature = BLEndianFloat(uc_other_alarm_log_p->cpu_temperature); /*¸³Öµµ½·¢ËÍÊý×é*/ memcpy(&pOutputData[i * UC_ALARM_DATA_LOG_PACK_LEN],uc_other_alarm_log_p,UC_ALARM_DATA_LOG_PACK_LEN); } /*·µ»ØÊý¾ÝÓò³¤¶È*/ *pData_field_len = UC_DATA_TABLE_BYTES_LENGTH + UC_LOG_NUM_AND_FLAG_LENGTH + UC_ALARM_DATA_LOG_PACK_LEN * uc_log_para_p->send_log_num_now; E2P_PWR_OFF; result_flag = SUCCESS_0; return result_flag; } /*ÉÏλ»ú¶ÁÈÕÖ¾´¦Àíº¯Êý*/ ErrorStatus_STM32 Upper_ComputerLogProcess(uint16_t work_permissions, uint8_t *pInput, uint8_t *pOutput) { ErrorStatus_STM32 read_result_flag = ERROR_1; uint16_t table_id = pInput[0] << 8 | pInput[1]; // ²é±í for (uint8_t i = 0; i < UC_RECV_LOG_TABLE_NUM; i++) { if (uc_recv_log_tab_func[i].uc_data_table == table_id && uc_recv_log_tab_func[i].UcRecvLogFuncHandler != NULL) { if ((work_permissions & uc_recv_log_tab_func[i].func_admin_user) != 0) // Óû§È¨ÏÞÅÐ¶Ï { E2p_GPIO_Clk_Init(); /*ģʽȨÏÞÅжÏ*/ if(uc_recv_log_tab_func[i].func_admin_mode & sys_display_para_g.sys_and_display_mode) read_result_flag = uc_recv_log_tab_func[i].UcRecvLogFuncHandler(pInput, pOutput, &uc_recv_para_g.uc_recv_buf_union.uc_protocol_head_s.data_field_length, &uc_send_log_para_g); } else { } break; } } return read_result_flag; }