#include "cyclic_storage_data_created_api.h" #include "cyclic_storage_cfg_api.h" #include "low_pwr_test.h" #include "string.h" #include "sundry.h" TYPE_CHECK_SIZE(SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T,110);//ºË²é½á¹¹Ìå´óС TYPE_CHECK_SIZE(SYS_FLOW_DATA_SYSLOG_FORMAT_T,62);//ºË²é½á¹¹Ìå´óС TYPE_CHECK_SIZE(RESTORE_DEFAULT_SYSLOG_FORMAT_T,11);//ºË²é½á¹¹Ìå´óС TYPE_CHECK_SIZE(ALARM_SYSLOG_FORMAT_T,108); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(ALARM_SYSLOG_FORMAT_T,alarm_syslog_union,measure_alarm_data_s,48);//ºË²é½á¹¹Ìå´óС TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(ALARM_SYSLOG_FORMAT_T,alarm_syslog_union,other_alarm_data_s,32);//ºË²é½á¹¹Ìå´óС TYPE_CHECK_SIZE(PAY_SYSLOG_FORMAT_T,30);//ºË²é½á¹¹Ìå´óС PAY_SYSLOG_FORMAT_T pay_para_g = {0}; // ³äÖµ´ÎÊýÐèÒªÖØÆôʱ´Ó´¢´æÖлñÈ¡ TYPE_CHECK_SIZE(VALVE_SYSLOG_FORMAT_T,19);//ºË²é½á¹¹Ìå´óС VALVE_SYSLOG_FORMAT_T valve_log_g = {0}; // ¿ª¹Ø·§´ÎÊýÐèÒªÖØÆôʱ´Ó´¢´æÖлñÈ¡ TYPE_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,233);//ºË²é½á¹¹Ìå´óС TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,gas_cumulate_amend_s,36); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,balance_amend_s,20); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,billing_price_amend_s,222); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,press_cfg_amend_s,88); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,temp_cfg_amend_s,76); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,flow_cfg_amend_s,56); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,cal_pulse_amend_s,16); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,sys_func_cfg_amend_s,16); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,sys_alarm_ctl_bytes_amend_s,56); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,sys_valve_ctl_bytes_amend_s,44); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,billing_alarm_cfg_amend_s,78); TYPE_CHILDTYPE_MEMBER_CHECK_SIZE(PARA_AMEND_SYSLOG_FORMAT_T,para_amend_union,sec_corr_para_amend_s,160); PARA_AMEND_SYSLOG_FORMAT_T para_amend_log_g = {0}; TYPE_CHECK_SIZE(TIMING_SYSLOG_FORMAT_T,23);//ºË²é½á¹¹Ìå´óС TIMING_SYSLOG_FORMAT_T timing_log_g = {0}; /*Ô¶´«·¢Ë͵ÄÁ÷Á¿Êý¾Ý¼Ç¼¹¹Ôì*/ void SendFlowData_LogRecordCreated(SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T *pOutput, SYS_REAL_TIME_DATA_T *realtime_data_p, BILLING_REAL_PARA_T *billing_realtime_p, __IO RTC_TimeDateTypeDef *calendar_p) { /*¹¹ÔìÊý¾Ý*/ pOutput->record_time[0] = calendar_p->Year; // ʱ¼ä¼Ç¼¹¹Ôì pOutput->record_time[1] = calendar_p->Month; pOutput->record_time[2] = calendar_p->Date; pOutput->record_time[3] = calendar_p->Hour; pOutput->record_time[4] = calendar_p->Minute; pOutput->record_time[5] = calendar_p->Second; pOutput->forward_cumulate_sc = realtime_data_p->measure_para_s.forward_cumulate_sc; // Á÷Á¿¼Ç¼¹¹Ôì pOutput->forward_cumulate_wc = realtime_data_p->measure_para_s.forward_cumulate_wc; pOutput->instant_sc = realtime_data_p->measure_para_s.instant_sc; pOutput->instant_wc = realtime_data_p->measure_para_s.instant_wc; pOutput->temperature = realtime_data_p->measure_para_s.temperature; pOutput->pressure = realtime_data_p->measure_para_s.pressure; pOutput->price_now = billing_realtime_p->price_now; // ¼Æ·Ñ¼Ç¼¹¹Ôì pOutput->balance_now = billing_realtime_p->balance_now; pOutput->cpu_temp = realtime_data_p->state_para_s.cpu_temperature; // ״̬Êý¾Ý¹¹Ôì pOutput->lith_vcc = realtime_data_p->state_para_s.lith_vcc; pOutput->alka_vcc = realtime_data_p->state_para_s.alka_vcc; pOutput->snr_up = realtime_data_p->state_para_s.snr_up; pOutput->snr_down = realtime_data_p->state_para_s.snr_down; pOutput->signal_gain_up = realtime_data_p->state_para_s.signal_gain_up; pOutput->signal_gain_down = realtime_data_p->state_para_s.signal_gain_down; pOutput->signal_intensity_up = realtime_data_p->state_para_s.signal_intensity_up; pOutput->signal_intensity_down = realtime_data_p->state_para_s.signal_intensity_down; pOutput->tof_up = realtime_data_p->state_para_s.tof_up; pOutput->tof_down = realtime_data_p->state_para_s.tof_down; pOutput->sound_vel = realtime_data_p->state_para_s.sound_vel; pOutput->flow_vel = realtime_data_p->state_para_s.flow_vel; memcpy(pOutput->sys_state_bytes, (void *)&sys_admin_g.sys_admin.state_bytes, SYS_STATUS_BYTES_TYPE_LENGTH); } /*ʱ/ÈÕ/ÔÂÕý³£µÄÁ÷Á¿Êý¾Ý¼Ç¼¹¹Ôì*/ void FlowData_LogRecordCreated(SYS_FLOW_DATA_SYSLOG_FORMAT_T *pOutput, SYS_REAL_TIME_DATA_T *realtime_data_p, BILLING_REAL_PARA_T *billing_realtime_p, __IO RTC_TimeDateTypeDef *calendar_p) { pOutput->record_time[0] = calendar_p->Year; // ʱ¼ä¼Ç¼¹¹Ôì pOutput->record_time[1] = calendar_p->Month; pOutput->record_time[2] = calendar_p->Date; pOutput->record_time[3] = calendar_p->Hour; pOutput->record_time[4] = calendar_p->Minute; pOutput->record_time[5] = calendar_p->Second; pOutput->forward_cumulate_sc = realtime_data_p->measure_para_s.forward_cumulate_sc; // Á÷Á¿¼Ç¼¹¹Ôì pOutput->forward_cumulate_wc = realtime_data_p->measure_para_s.forward_cumulate_wc; pOutput->instant_sc = realtime_data_p->measure_para_s.instant_sc; pOutput->instant_wc = realtime_data_p->measure_para_s.instant_wc; pOutput->temperature = realtime_data_p->measure_para_s.temperature; pOutput->pressure = realtime_data_p->measure_para_s.pressure; pOutput->price_now = billing_realtime_p->price_now; // ¼Æ·Ñ¼Ç¼¹¹Ôì pOutput->balance_now = billing_realtime_p->balance_now; } void System_ValveLog_CyclicStorageHandler(VALVE_WORK_TYPE *pSucc_flag, SYS_ALARM_VALVE_T cause_id, VALVE_SYSLOG_FORMAT_T *valve_log_buffer_p, __IO RTC_TimeDateTypeDef *calendar_p) { if (*pSucc_flag != VWT_NONE) { E2p_GPIO_Clk_Init(); const SYSLOG_CYCLIC_TABLE_T *log_data_p = &sys_log_cyclic_table[CYCL_VALVE]; valve_log_buffer_p->record_num = log_data_p->table_id->log_index + log_data_p->data_num * log_data_p->table_id->log_cyclic_full_cnt; valve_log_buffer_p->record_time[0] = calendar_p->Year; // ʱ¼ä¼Ç¼¹¹Ôì valve_log_buffer_p->record_time[1] = calendar_p->Month; valve_log_buffer_p->record_time[2] = calendar_p->Date; valve_log_buffer_p->record_time[3] = calendar_p->Hour; valve_log_buffer_p->record_time[4] = calendar_p->Minute; valve_log_buffer_p->record_time[5] = calendar_p->Second; valve_log_buffer_p->work_type = *pSucc_flag; valve_log_buffer_p->switch_cause = cause_id; if (*pSucc_flag == VWT_NORMAL_CLOSE || *pSucc_flag == VWT_FORCED_CLOSE) valve_log_buffer_p->close_cnt++; else if (*pSucc_flag == VWT_OPEN) valve_log_buffer_p->open_cnt++; Sys_Log_E2pCyclicMultipleWrite(log_data_p, (uint8_t *)valve_log_buffer_p,1); *pSucc_flag = VWT_NONE; } } void AlarmLog_CyclicStorageHandler(SYS_ALARM_VALVE_T * pAlarm_id, SYS_REAL_TIME_DATA_T *realtime_data_p, BILLING_REAL_PARA_T *billing_realtime_p, __IO RTC_TimeDateTypeDef *calendar_p) { if(*pAlarm_id != AV_NORMAL) { #ifdef RS232_PRINTF printf("ÆÕͨ±¨¾¯ÈÕÖ¾¼Ç¼ = %X\r\n", sys_alarm_id_g); #endif E2p_GPIO_Clk_Init(); ALARM_SYSLOG_FORMAT_T buffer = {0}; buffer.record_time[0] = calendar_p->Year; // ʱ¼ä¼Ç¼¹¹Ôì buffer.record_time[1] = calendar_p->Month; buffer.record_time[2] = calendar_p->Date; buffer.record_time[3] = calendar_p->Hour; buffer.record_time[4] = calendar_p->Minute; buffer.record_time[5] = calendar_p->Second; buffer.alarm_id = *pAlarm_id; buffer.forward_cumulate_sc = realtime_data_p->measure_para_s.forward_cumulate_sc; buffer.forward_cumulate_wc = realtime_data_p->measure_para_s.forward_cumulate_wc; buffer.instant_sc = realtime_data_p->measure_para_s.instant_sc; buffer.instant_wc = realtime_data_p->measure_para_s.instant_wc; buffer.temperature = realtime_data_p->measure_para_s.temperature; buffer.pressure = realtime_data_p->measure_para_s.pressure; buffer.cpu_temperature = realtime_data_p->state_para_s.cpu_temperature; buffer.lith_vcc = realtime_data_p->state_para_s.lith_vcc; buffer.alka_vcc = realtime_data_p->state_para_s.alka_vcc; memcpy(buffer.status_bytes, (void *)&sys_admin_g.sys_admin.state_bytes, SYS_STATUS_BYTES_TYPE_LENGTH); // ¼ÆÁ¿±¨¾¯ if ((*pAlarm_id >= AV_UT_LOSE && *pAlarm_id <= AV_MEASURE_ERR)) { const SYSLOG_CYCLIC_TABLE_T *log_data_p = &sys_log_cyclic_table[CYCL_MEASURE_ALARM]; memcpy(&buffer.alarm_syslog_union.measure_alarm_data_s, &sys_realtime_data_g.state_para_s.tof_up, 20); buffer.alarm_syslog_union.measure_alarm_data_s.sound_vel = sys_realtime_data_g.state_para_s.sound_vel; buffer.alarm_syslog_union.measure_alarm_data_s.flow_vel = sys_realtime_data_g.state_para_s.flow_vel; buffer.record_num = log_data_p->table_id->log_index + log_data_p->data_num * log_data_p->table_id->log_cyclic_full_cnt; Sys_Log_E2pCyclicMultipleWrite(log_data_p, (uint8_t *)&buffer,1); } else { const SYSLOG_CYCLIC_TABLE_T *log_data_p = &sys_log_cyclic_table[CYCL_OTHER_ALARM]; buffer.alarm_syslog_union.other_alarm_data_s.price_now = billing_realtime_p->price_now; buffer.alarm_syslog_union.other_alarm_data_s.balance_now = billing_realtime_p->balance_now; buffer.record_num = log_data_p->table_id->log_index + log_data_p->data_num * log_data_p->table_id->log_cyclic_full_cnt; Sys_Log_E2pCyclicMultipleWrite(log_data_p, (uint8_t *)&buffer,1); } *pAlarm_id = AV_NORMAL; } } void PayLog_CyclicStorageHandler(uint8_t * pPay_flag,PAY_SYSLOG_FORMAT_T * pay_log_buffer_p,__IO RTC_TimeDateTypeDef *calendar_p) { if (*pPay_flag) { *pPay_flag = 0; E2p_GPIO_Clk_Init(); const SYSLOG_CYCLIC_TABLE_T *log_data_p = &sys_log_cyclic_table[CYCL_PAY]; pay_log_buffer_p->record_num = log_data_p->table_id->log_index + log_data_p->data_num * log_data_p->table_id->log_cyclic_full_cnt; pay_log_buffer_p->plant_number = 1; pay_log_buffer_p->pay_cnt++; pay_log_buffer_p->record_time[0] = calendar_p->Year; // ʱ¼ä¼Ç¼¹¹Ôì pay_log_buffer_p->record_time[1] = calendar_p->Month; pay_log_buffer_p->record_time[2] = calendar_p->Date; pay_log_buffer_p->record_time[3] = calendar_p->Hour; pay_log_buffer_p->record_time[4] = calendar_p->Minute; pay_log_buffer_p->record_time[5] = calendar_p->Second; Sys_Log_E2pCyclicMultipleWrite(log_data_p, (uint8_t *)pay_log_buffer_p,1); } } void TimingLog_CyclicStorageHandler(TIMING_SYSLOG_FORMAT_T * timing_log_buffer_p,__IO RTC_TimeDateTypeDef *calendar_p) { if(timing_log_buffer_p->timing_cause) { E2p_GPIO_Clk_Init(); const SYSLOG_CYCLIC_TABLE_T *log_data_p = &sys_log_cyclic_table[CYCL_TIMING]; timing_log_buffer_p->record_num = log_data_p->table_id->log_index + log_data_p->data_num * log_data_p->table_id->log_cyclic_full_cnt;; timing_log_buffer_p->plant_number = 1; timing_log_buffer_p->record_time_now[0] = calendar_p->Year; // ʱ¼ä¼Ç¼¹¹Ôì timing_log_buffer_p->record_time_now[1] = calendar_p->Month; timing_log_buffer_p->record_time_now[2] = calendar_p->Date; timing_log_buffer_p->record_time_now[3] = calendar_p->Hour; timing_log_buffer_p->record_time_now[4] = calendar_p->Minute; timing_log_buffer_p->record_time_now[5] = calendar_p->Second; Sys_Log_E2pCyclicMultipleWrite(log_data_p, (uint8_t *)timing_log_buffer_p,1); timing_log_buffer_p->timing_cause = TC_NULL; } } void ParaAmendLog_CyclicStorageHandler(PARA_AMEND_T * pAmend_flag,PARA_AMEND_SYSLOG_FORMAT_T * amend_log_buffer_p,__IO RTC_TimeDateTypeDef *calendar_p) { if (*pAmend_flag != PARA_AMEND_NONE) { E2p_GPIO_Clk_Init(); amend_log_buffer_p->plant_number = 1; amend_log_buffer_p->record_time[0] = calendar_g.Year; // ʱ¼ä¼Ç¼¹¹Ôì amend_log_buffer_p->record_time[1] = calendar_g.Month; amend_log_buffer_p->record_time[2] = calendar_g.Date; amend_log_buffer_p->record_time[3] = calendar_g.Hour; amend_log_buffer_p->record_time[4] = calendar_g.Minute; amend_log_buffer_p->record_time[5] = calendar_g.Second; for (uint8_t i = 0; i < PARA_AMEND_TABLE_NUM; i++) { if (*pAmend_flag == para_amend_table[i].amend_id && para_amend_table[i].data_address != NULL) { amend_log_buffer_p->record_num = para_amend_table[i].data_address->table_id->log_index + para_amend_table[i].data_address->data_num * para_amend_table[i].data_address->table_id->log_cyclic_full_cnt; Sys_Log_E2pCyclicMultipleWrite(para_amend_table[i].data_address, (uint8_t *)amend_log_buffer_p,1); break; } } *pAmend_flag = PARA_AMEND_NONE; // memset(amend_log_buffer_p, 0, AMEND_LOG_FORMAT_HEAD); } }