#ifndef _PARA_STORAGE_CFG_API_H_ #define _PARA_STORAGE_CFG_API_H_ #include "define_all.h" #define SYS_LOG_PARA_TABLE_NUM (sizeof(sys_store_para_table) / sizeof(SYSLOG_PARA_TABLE_T)) #define LOG_CHECKSUM_OFFSET sizeof(uint8_t) #define PARA_INDEX_OFFSET sizeof(uint8_t) #pragma pack(1) /******************************Para Data******************************************************/ #define FIRST_POWER_PARA_FORMAT_SIZE sizeof(FIRST_POWER_PARA_T) typedef struct { uint16_t first_power_flag; uint8_t reserve[2]; } FIRST_POWER_PARA_T; // 4 bytes; typedef struct { uint8_t store_index; // µ±Ç°´¢´æÌõÊý/Ë÷Òý ·¶Î§ 1 ~ (data_num + 1) uint32_t store_index_addr; //Ë÷ÒýµØÖ· uint32_t store_checksum_addr; uint32_t store_start_addr; // ¿ªÊ¼µØÖ· uint32_t store_end_addr; // ½áÊøµØÖ·¾ÍÊÇÏÂÒ»¸ö²ÎÊýµÄ¿ªÊ¼µØÖ· } SYSLOG_PARA_INFO_T; // ²ÎÊý´¢´æµÄÈÕÖ¾ÐÅÏ¢ typedef struct { SYSLOG_PARA_INFO_T *table_id; void *data_buffer; uint16_t data_size; // ´¢´æÒ»´ÎµÄÊý¾Ý´óС uint16_t data_num; // ´¢´æµÄ×ÜÌõÊý } SYSLOG_PARA_TABLE_T; // ²ÎÊýÊý¾Ý´¢´æµÄÈÕÖ¾±í typedef struct { SYSLOG_PARA_INFO_T first_power_flag_store; SYSLOG_PARA_INFO_T save_realtime_data_log; SYSLOG_PARA_INFO_T master_soft_hard_para_store; SYSLOG_PARA_INFO_T sys_flow_alarm_cfg_store; SYSLOG_PARA_INFO_T sys_press_alarm_cfg_store; SYSLOG_PARA_INFO_T sys_temp_alarm_cfg_store; SYSLOG_PARA_INFO_T sys_billing_alarm_cfg_store; SYSLOG_PARA_INFO_T cal_pulse_para_cfg_store; SYSLOG_PARA_INFO_T ladder_price_cfg_true_store; SYSLOG_PARA_INFO_T ladder_price_cfg_new_store; SYSLOG_PARA_INFO_T gprs_network_cfg_store; SYSLOG_PARA_INFO_T save_data_start_time_store; SYSLOG_PARA_INFO_T sys_func_cfg_bytes_store; // ¹¦ÄÜÅäÖÃ×Ö SYSLOG_PARA_INFO_T sys_alarm_ctl_bytes_store; SYSLOG_PARA_INFO_T sys_alarm_send_bytes_store; SYSLOG_PARA_INFO_T valve_ctl_bytes_store; SYSLOG_PARA_INFO_T master_basic_para_store; SYSLOG_PARA_INFO_T micro_constant_flow_para_store; SYSLOG_PARA_INFO_T sec_order_corr_set_para_store; SYSLOG_PARA_INFO_T zero_drift_corr_cfg_store; } SYSLOG_PARA_DATA_T; typedef enum { PARA_FIRST_POWER_FLAG = 0U, PARA_SAVE_REALTIME_DATA, PARA_MASTER_SOFT_HARD, PARA_FLOW_ALARM_CFG, PARA_PRESS_ALARM_CFG, PARA_TEMP_ALARM_CFG, PARA_BILLING_ALARM_CFG, PARA_CAL_PULSE_CFG, PARA_LADDER_PRICE_CFG_TRUE, PARA_LADDER_PRICE_CFG_NEW, PARA_GPRS_NETWORK_CFG, PARA_SAVE_DATA_START_TIME, PARA_FUNC_CFG_BYTES, PARA_ALARM_CTL_BYTES, PARA_ALARM_SEND_BYTES, PARA_VALVE_CTL_BYTES, PARA_MASTER_BASIC, PARA_MICRO_CONSTANT_FLOW, PARA_SEC_ORDER_CORR_SET, PARA_ZERO_DRIFT_CFG, } PARA_DATA_TYPE; #pragma pack() extern const SYSLOG_PARA_TABLE_T sys_store_para_table[20]; void Sys_Log_E2pParaAddrInit(void); void Sys_Log_E2pPara_FirstPower_FlagInit(void); void Sys_Log_E2pPara_NoFirstPower_FlagInit(void); FlagStatus Sys_Log_E2pParaDataFirstInit(void); ErrorStatus_STM32 Sys_Log_E2pParaMultipleWrite(const SYSLOG_PARA_TABLE_T *para_data_p,uint8_t write_cnt); ErrorStatus_STM32 Sys_Log_E2pParaRead_1_Data(const SYSLOG_PARA_TABLE_T *para_data_p); #endif