forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

wujiazhi
2024-06-13 72def895431ad7a08e635b11f3da738e2b2c4618
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#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