#ifndef _SYSTEM_LOG_H_ #define _SYSTEM_LOG_H_ #include "define_all.h" #include "cyclic_storage_cfg_api.h" #include "para_storage_cfg_api.h" #include "cyclic_storage_data_created_api.h" #include "working_time_calculate.h" #define SAVE_DAY_MONTH_TIMING_LENGTH sizeof(save_day_month_timing_bcd) typedef enum { SYS_FLOW_DATA_NONE = 0U, SYS_FLOW_DATA_5MINS = 1, SYS_FLOW_DATA_PERIOD = 2, SYS_FLOW_DATA_1HOUR = 4, SYS_FLOW_DATA_1DAY = 8, SYS_FLOW_DATA_1MONTH = 16 } SYS_FLOW_DATA_LOG_T; #pragma pack(1) #define REALTIME_DATA_LOG_FORMAT_SIZE sizeof(SAVE_REALTIME_DATA_T) typedef struct{ uint8_t record_time_bcd[6]; struct realtime_flow_data { double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿ double forward_cumulate_wc; double cal_cumulate_reserve[2]; // ±ê¶¨ÀÛ»ýÁ¿_Ô¤Áô double err_forward_cumulate_reserve[2]; // ´íÎóÀÛ»ýÁ¿_Ô¤Áô float temp_avg; // ζȾùÖµ float press_avg; // ѹÁ¦¾ùÖµ }realtime_flow_data_s; struct realtime_billing_data { uint8_t price_type_mode_now; uint32_t price_now; double use_money_sum; double balance_now; double residual_gas_now; double ladder_cumulate_sc; }realtime_billing_data_s; uint32_t lith_bat_working_time_remain_hour;//Ê£Ó๤×÷ʱ¼ä µ¥Î»£ºÐ¡Ê± uint8_t reserve[16]; } SAVE_REALTIME_DATA_T; #define SAVE_DATA_START_PARA_FORMAT_SIZE sizeof(SAVE_DATA_START_PARA_T) typedef struct { uint8_t set_minute_bcd;//µÍλ·ÖÖÓ£¬¸ßλСʱ uint8_t set_hour_bcd; // 0x0800 ´ú±íÿÌìµÄ8µã0·Ö±£´æÈռǼ£¬Ã¿ÔµÄ1ÔÂ1ÈÕ8µã0·Ö±£´æÔ¼Ç¼ uint8_t reserve[4]; } SAVE_DATA_START_PARA_T; #pragma pack() extern SAVE_REALTIME_DATA_T save_realtime_data_g; extern SAVE_DATA_START_PARA_T save_day_month_timing_g; extern uint8_t pay_flag_g; extern FlagStatus key_save_send_data_flag_g; void System_LogProcess(void); void Sys_FirstPower_E2pProcess(void); ErrorStatus_STM32 RealTimeData_LogStore(SAVE_REALTIME_DATA_T * save_realtime_data_p,SYS_REAL_TIME_DATA_T *realtime_data_p, BILLING_REAL_PARA_T *billing_realtime_p, __IO RTC_TimeDateTypeDef *calendar_p); #endif