forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

wujiazhi
2024-06-07 d0cca79a4aa7efce979c6aed275fe1bb75af4cc4
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
#ifndef _CYCLIC_STORAGE_DATA_CREATED_API_H_
#define _CYCLIC_STORAGE_DATA_CREATED_API_H_
 
#include "define_all.h" 
#include "valve_control.h"
#include "billing.h"
#include "system_parameter.h"
 
 
 
#define SEND_FLOW_DATA_LOG_FORMAT_SIZE sizeof(SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T)
#define HISTORY_FLOW_DATA_LOG_FORMAT_SIZE sizeof(SYS_FLOW_DATA_SYSLOG_FORMAT_T)
 
#define VALVE_LOG_FORMAT_SIZE sizeof(VALVE_SYSLOG_FORMAT_T)
#define PAY_LOG_FORMAT_SIZE sizeof(PAY_SYSLOG_FORMAT_T)
#define RESTORE_DEFAULT_LOG_FORMAT_SIZE sizeof(RESTORE_DEFAULT_SYSLOG_FORMAT_T)
#define TIMING_LOG_FORMAT_SIZE sizeof(TIMING_SYSLOG_FORMAT_T)
 
#define AMEND_LOG_FORMAT_HEAD (sizeof(PARA_AMEND_SYSLOG_FORMAT_T) - sizeof(PARA_AMEND_UNION_T))
#define GAS_CUMULATE_AMEND_LOG_FORMAT_SIZE (sizeof(struct gas_cumulate_amend) + AMEND_LOG_FORMAT_HEAD)
#define BALANCE_AMEND_LOG_FORMAT_SIZE (sizeof(struct balance_amend) + AMEND_LOG_FORMAT_HEAD)
#define BILLING_PRICE_AMEND_LOG_FORMAT_SIZE (sizeof(struct billing_price_amend) + AMEND_LOG_FORMAT_HEAD)
#define PRESS_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct press_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
#define TEMP_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct temp_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
#define FLOW_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct flow_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
#define CAL_PULSE_AMEND_LOG_FORMAT_SIZE (sizeof(struct cal_pulse_amend) + AMEND_LOG_FORMAT_HEAD)
#define SYS_FUNC_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct sys_func_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
#define ALARM_CTL_SEND_BYTES_AMEND_LOG_FORMAT_SIZE (sizeof(struct sys_alarm_ctl_send_amend) + AMEND_LOG_FORMAT_HEAD)
#define VALVE_CTL_BYTES_AMEND_LOG_FORMAT_SIZE (sizeof(struct sys_valve_ctl_bytes_amend) + AMEND_LOG_FORMAT_HEAD)
#define BILLING_ALARM_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct billing_alarm_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
#define SEC_CORR_PARA_AMEND_LOG_FORMAT_SIZE    (sizeof(struct sec_corr_para_amend) + AMEND_LOG_FORMAT_HEAD)
 
#define ALARM_DATA_LOG_FORMAT_HEAD (sizeof(ALARM_SYSLOG_FORMAT_T) - sizeof(ALARM_SYSLOG_UNION_T))
#define MEASURE_ALARM_DATA_LOG_FORMAT_SIZE (sizeof(struct measure_alarm_data) + ALARM_DATA_LOG_FORMAT_HEAD)
#define OTHER_ALARM_DATA_LOG_FORMAT_SIZE (sizeof(struct other_alarm_data) + ALARM_DATA_LOG_FORMAT_HEAD)
 
typedef enum
{
  SDM_NULL = 0U,
  SDM_UPPER,    // ÉÏλ»ú
  SDM_BT_APP,   // À¶ÑÀAPP
  SDM_GPRS_CMD, // Ô¶´«ÃüÁî
} SYS_DATA_MENDER;
 
typedef enum
{
    TC_NULL = 0U,
    TC_AUTO,
    TC_GPRS,
    TC_UPPER,
    TC_BT_APP,
}TIMING_CAUSE_T;
 
#pragma pack(1)
 
/*****************************Cyclic Data************************************************/
typedef union
{
  struct measure_alarm_data
  {
    float tof_up;
    float tof_down;
    float tof_diff;
    uint8_t signal_intensity_up;
    uint8_t signal_intensity_down;
    uint8_t signal_gain_up;
    uint8_t signal_gain_down;
    uint16_t snr_up; // ÐÅÔë±È_ÉÏͨµÀ
    uint16_t snr_down;
    float sound_vel;
    float flow_vel;
    uint8_t reserve[20]; // Ô¤Áô
  } measure_alarm_data_s;
  struct other_alarm_data
  {
    uint32_t price_now;
    double balance_now;
    uint8_t reserve[20];
  } other_alarm_data_s;
} ALARM_SYSLOG_UNION_T;
 
typedef struct
{
  uint16_t record_num;
  uint8_t record_time[6];
  uint16_t alarm_id;
  double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
  double forward_cumulate_wc;
  float instant_sc;
  float instant_wc;
  float temperature;
  float pressure;
  float cpu_temperature; // »·¾³Î¶È
  uint8_t lith_vcc;
  uint8_t alka_vcc;
  uint16_t status_bytes[SYS_STATUS_BYTES_TYPE_LENGTH >> 1];
  ALARM_SYSLOG_UNION_T alarm_syslog_union;
} ALARM_SYSLOG_FORMAT_T;
 
typedef struct // 19 bytes
{
  uint16_t record_num;
  uint8_t record_time[6];
  VALVE_WORK_TYPE work_type;
  SYS_ALARM_VALVE_T switch_cause;
  uint16_t open_cnt;
  uint16_t close_cnt;
  uint8_t reserve[4];
} VALVE_SYSLOG_FORMAT_T; //4 bytesÔ¤Áô //·§ÃÅÀúÊ·¼Ç¼
 
typedef struct // 11 bytes
{
  uint16_t record_num;
    uint8_t record_time[6];
  SYS_DATA_MENDER mender;
  uint8_t reserve[2];
} RESTORE_DEFAULT_SYSLOG_FORMAT_T; // 4 bytesÔ¤Áô//»Ö¸´Ä¬ÈÏÉèÖüǼ¸ñʽ
 
typedef struct // 30 bytes
{
  uint16_t record_num;    // ÐòºÅ
  uint8_t record_time[6]; // Ê±¼ä
    SYS_DATA_MENDER mender;         // ÐÞ¸ÄÕß
  uint16_t plant_number;  // ³§¼Ò´úÂë
  uint8_t pay_type;
  uint16_t pay_cnt;
  int32_t pay_value;
  long long pay_value_cumulate;
  uint8_t reserve[4];  // Ô¤ÁôÊÇΪÁËÒÔºóÇø·ÖÆøÁ¿³äÖµ
} PAY_SYSLOG_FORMAT_T; // 4 bytesÔ¤Áô // ³äÖµ¼Ç¼
 
typedef struct
{
    uint16_t record_num;    // ÐòºÅ
  uint8_t record_time_before[6]; // Ê±¼ä
    TIMING_CAUSE_T timing_cause;
    uint16_t plant_number;  // ³§¼Ò´úÂë
    uint8_t record_time_now[6];
    uint8_t reserve[6];
}TIMING_SYSLOG_FORMAT_T;//6 bytesÔ¤Áô //Уʱ¼Ç¼
 
typedef union
{
  struct gas_cumulate_amend // 36 bytes
  {
    double cumulate_sc_before;
    double cumulate_wc_before;
    double cumulate_sc_after;
    double cumulate_wc_after;
    uint8_t reserve[4];
  } gas_cumulate_amend_s; // ÀÛ»ýÁ¿Ð޸ļǼ
  struct balance_amend    // 20 bytes
  {
    double balance_before;
    double balance_now;
    uint8_t reserve[4];      // Ô¤ÁôÊÇΪÁËÒÔºóÇø·ÖÊÇÓà¶î»¹ÊÇÓàÁ¿
  } balance_amend_s;         // Óà¶î/ÓàÁ¿Ð޸ļǼ¸ñʽ
  struct billing_price_amend // 222 bytes
  {
    LADDER_PRICE_CFG_PARA_T price_cfg_before;
    LADDER_PRICE_CFG_PARA_T price_cfg_now;
  } billing_price_amend_s; // ¼Æ·Ñ¼Û¸ñÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪLADDER_PRICE_CFG_PARA_TÖÐÓÐÔ¤Áô£©
  struct press_cfg_amend   // 88 bytes
  {
    SYS_PRESS_ALARM_CFG_T press_cfg_before;
    SYS_PRESS_ALARM_CFG_T press_cgf_now;
  } press_cfg_amend_s;  // Ñ¹Á¦ÅäÖÃÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪSYS_PRESS_ALARM_CFG_TÖÐÓÐÔ¤Áô£©
  struct temp_cfg_amend // 76 bytes
  {
    SYS_TEMP_ALARM_CFG_T temp_cfg_before;
    SYS_TEMP_ALARM_CFG_T temp_cgf_now;
  } temp_cfg_amend_s;   // Î¶ÈÅäÖÃÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪSYS_TEMP_ALARM_CFG_TÖÐÓÐÔ¤Áô£©
  struct flow_cfg_amend // 56 bytes
  {
    SYS_FLOW_ALARM_CFG_T flow_cfg_before;
    SYS_FLOW_ALARM_CFG_T flow_cfg_now;
  } flow_cfg_amend_s;    // Á÷Á¿ÅäÖÃÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪSYS_FLOW_ALARM_CFG_TÖÐÓÐÔ¤Áô£©
  struct cal_pulse_amend // 16 bytes
  {
    CAL_PULSE_PARA_T cal_pulse_cfg_before;
    CAL_PULSE_PARA_T cal_pulse_cfg_now;
  } cal_pulse_amend_s; // ±ê¶¨Âö³å²ÎÊýÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪCAL_PULSE_PARA_TÖÐÓÐÔ¤Áô£©
  struct sys_func_cfg_amend
  {
    uint16_t func_cfg_bytes_before[SYS_FUNC_CTL_BYTES_TYPE_LENGTH >> 1];
    uint16_t func_cfg_bytes_now[SYS_FUNC_CTL_BYTES_TYPE_LENGTH >> 1];
  } sys_func_cfg_amend_s;
  struct sys_alarm_ctl_send_amend
  {
    uint16_t alarm_ctl_bytes_before[SYS_ALARM_CTL_BYTES_TYPE_LENGTH >> 1];
    uint16_t alarm_send_bytes_before[SYS_ALARM_SEND_BYTES_TYPE_LENGTH >> 1];
    uint16_t alarm_ctl_bytes_now[SYS_ALARM_CTL_BYTES_TYPE_LENGTH >> 1];
    uint16_t alarm_send_bytes_now[SYS_ALARM_SEND_BYTES_TYPE_LENGTH >> 1];
  } sys_alarm_ctl_bytes_amend_s;
  struct sys_valve_ctl_bytes_amend
  {
    uint16_t valve_ctl_bytes_before[VALVE_CTL_LEN >> 1];
    uint16_t valve_ctl_bytes_now[VALVE_CTL_LEN >> 1];
  } sys_valve_ctl_bytes_amend_s;
  struct billing_alarm_cfg_amend
  {
    BILLING_ALARM_CFG_T billing_alarm_before;
    BILLING_ALARM_CFG_T billing_alarm_now;
  } billing_alarm_cfg_amend_s;
    struct sec_corr_para_amend
    {
        SECOND_ORDER_CORR_T sec_corr_para_before;
        SECOND_ORDER_CORR_T sec_corr_para_now;
    }sec_corr_para_amend_s;
} PARA_AMEND_UNION_T;
 
typedef struct
{
  uint16_t record_num;
    uint8_t record_time[6];
  SYS_DATA_MENDER mender;
  uint16_t plant_number;
  PARA_AMEND_UNION_T para_amend_union;
} PARA_AMEND_SYSLOG_FORMAT_T; // ¸÷ÖÖ²ÎÊýÐ޸ļǼ¸ñʽ
 
typedef struct // 110 bytes
{
  uint8_t check_sum; // ÓÉÓÚ´¢´æ¶Áдʱ¿ÉÄܱ»Öжϴò¶Ï£¬ÇÒÔ¶´«Êý¾Ý½ÏÎªÖØÒª£¬ËùÒÔµ¥¶ÀÌí¼ÓУÑéºÍ×öÅжϡ£
  uint8_t record_time[6];
  double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
  double forward_cumulate_wc;
  float instant_sc;
  float instant_wc;
  float temperature;
  float pressure;
  uint32_t price_now;
  double balance_now;
  float cpu_temp;
  uint8_t lith_vcc;
  uint8_t alka_vcc;
  uint16_t snr_up; // ÐÅÔë±È_ÉÏͨµÀ
  uint16_t snr_down;
  uint8_t signal_gain_up;
  uint8_t signal_gain_down;
  uint8_t signal_intensity_up;
  uint8_t signal_intensity_down;
  float tof_up;
  float tof_down;
  float sound_vel;
  float flow_vel;
  uint16_t sys_state_bytes[SYS_STATUS_BYTES_TYPE_LENGTH >> 1];
  uint8_t reserve[17];
} SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T; // ·¢ËÍÁ÷Á¿¶³½áÊý¾Ý¼Ç¼¸ñʽ
 
typedef struct // 62 bytes
{
  uint8_t record_time[6];
  double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
  double forward_cumulate_wc;
  float instant_sc;
  float instant_wc;
  float temperature;
  float pressure;
  uint32_t price_now;
  double balance_now;
  uint8_t reserve[12];
} SYS_FLOW_DATA_SYSLOG_FORMAT_T; // 50 bytes + 12 bytesÔ¤Áô Á÷Á¿Êý¾ÝÀúÊ·¼Ç¼´¢´æ¸ñʽ
 
#pragma pack()
 
extern PAY_SYSLOG_FORMAT_T pay_para_g;
extern VALVE_SYSLOG_FORMAT_T valve_log_g;
extern PARA_AMEND_SYSLOG_FORMAT_T para_amend_log_g;
extern TIMING_SYSLOG_FORMAT_T timing_log_g;
 
 
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);
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);
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);
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);
 
void PayLog_CyclicStorageHandler(uint8_t *pPay_flag, PAY_SYSLOG_FORMAT_T *pay_log_buffer_p, __IO RTC_TimeDateTypeDef *calendar_p);
void ParaAmendLog_CyclicStorageHandler(PARA_AMEND_T *pAmend_flag, PARA_AMEND_SYSLOG_FORMAT_T *amend_log_buffer_p, __IO RTC_TimeDateTypeDef *calendar_p);
 
void TimingLog_CyclicStorageHandler(TIMING_SYSLOG_FORMAT_T * timing_log_buffer_p,__IO RTC_TimeDateTypeDef *calendar_p);
 
#endif