forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-04-24 f0de07104a329cc2eb6d2e77a23214313e675034
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
#ifndef __SIZHU_ALARM_RECORD_H
#define __SIZHU_ALARM_RECORD_H
 
#include "define_all.h"
#include "system_eep_mem_manage.h"
#include "sizhu_ctrl_word.h"
#include "system_general_para.h"
 
#define   SYSTEM_ALARM_LOG_FIRST_INIT_ADDR                        SYSTEM_ALARM_LOG_ADDR
/****************************************************ϵͳ±¨¾¯************************************************************************/
#define   SYSTEM_ALARM_LOG_STORAGE_LENGTH                    sizeof(LOG_SIZHU_SYS_ALARM_SAVE_T)   
 
#define   SYSTEM_ALARM_LOG_NUM                       400
 
#define   SYSTEM_ALARM_LOG_START_ADDR                        SYSTEM_ALARM_LOG_ADDR + 10//DEL
 
 
#define   SYSTEM_ALARM_LOG_COUNT_ADDR                        SYSTEM_ALARM_LOG_START_ADDR
#define   SYSTEM_ALARM_LOG_SAVE_ADDR                         SYSTEM_ALARM_LOG_COUNT_ADDR + 2
#define   SYSTEM_ALARM_LOG_STORAGE_START_ADDR                SYSTEM_ALARM_LOG_START_ADDR + 100
#define     SYSTEM_ALARM_LOG_STORAGE_END_ADDR                  SYSTEM_ALARM_LOG_STORAGE_START_ADDR + (SYSTEM_ALARM_LOG_NUM -1) * SYSTEM_ALARM_LOG_STORAGE_LENGTH
 
#pragma pack(1)
 
#define        ALARM_HAPPEN                                            0x0000
#define        ALARM_END                                                0x1000
 
 
//#define        WARNING_ID1                                            1
//#define        WARNING_ID2                                            2
 
///*ÈÕÖ¾¶¨ÒåÀàÐÍ*/
//#define     WARNING_SOUND_DEVIATION_TYPE                        1
//#define     WARNING_VELOCITY_TRANSFINITE_TYPE                    2
//#define     WARNING_GAIN_DEVIATION_TYPE                             3
//#define        WARNING_LOW_POWER_TYPE                                4
//#define        WARNING_NO_WORK_TYPE                                5
//#define        WARNING_OUTPOWER_LOSE_TYPE                            6
//#define        WARNING_UPPROBE_LOSE_TYPE                            7
//#define        WARNING_MIDPROBE_LOSE_TYPE                            8
//#define        WARNING_DOWNPROBE_LOSE_TYPE                            9
//#define        WARNING_FLOWUP_LIMIT_TYPE                            10
//#define        WARNING_MEASURING_ABNORMAL_TYPE                        11
///*ÎÈѹ±¨¾¯*/
//#define     WARNING_TEMPERATURE_SENSING_ERROR_TYPE                101
//#define     WARNING_PRESSURE_SENSING_ERROR_TYPE                    102
//#define     WARNING_UP_TEMPERATURE_TYPE                             103
//#define        WARNING_DOWN_TEMPERATURE_TYPE                        104
//#define        WARNING_UP_PRESSURE_TYPE                            105
 
/*±¨¾¯ID---ÐÂϵͳ*********************************************************************************************/
//Àà±ð±êʶ                                      
#define     ALARM_CLASS_SYSTEM_START        0x01
#define     ALARM_CLASS_BAT_POWER           0x02
#define     ALARM_CLASS_PRE                 0x03
#define     ALARM_CLASS_TEM                 0x04
#define     ALARM_CLASS_FLOW                0x05
#define     ALARM_CLASS_EX_POWER            0x06
#define     ALARM_CLASS_COVER_OPEN          0x07
#define     ALARM_CLASS_FLOW_START_STOP     0x08
#define     ALARM_CLASS_AMBIENT_TEM         0x09
#define     ALARM_CLASS_LCD                 0x0A
 
//Àà±ð¾ßÌåϸ·Ö
//Àà±ð¾ßÌåϸ·Ö
typedef enum
{
  ALARM_ID_NORMAL = 0x0U,
  ALARM_ID_SYSTEM_START, // ¸´Î» ½ö½öÊDZ¨¾¯ÀàÐͲ»²úÉú¹Ø·§
  ALARM_ID_EX_POWER_STATUS_CHANGE,
    ALARM_ID_COVER_OPEN,//¿ª¸Ç1ÊÇ¿ª¸Ç
    ALARM_ID_MAINBOARD_REMOVAL,//¿ª¸Ç2ÊÇÖ÷°åÒÆ³ý
    ALARM_ID_GPRS_FAILED,
  ALARM_ID_LCD_NUMBER_OVERRUN,
    
    
  ALARM_ID_LITH_BAT_LOW = 0x10, // ï®µçµÍµç±¨¾¯/¹Ø·§
  ALARM_ID_LITH_BAT_DOWN,
  ALARM_ID_LITH_BAT_REMOVAL,
  ALARM_ID_ALKA_BAT_LOW,
  ALARM_ID_ALKA_BAT_DOWN,
  ALARM_ID_ALKA_BAT_REMOVAL,
    ALARM_ID_VALVE_BAT_LOW,
    ALARM_ID_VALVE_BAT_DOWN,
    ALARM_ID_RTC_BAT_LOW,
 
  ALARM_ID_TEM_TRANSMITTER_FAILURE = 0x20, // Î¶ÈÒì³£±¨¾¯/¹Ø·§
  ALARM_ID_TEM_EXCEED_UP_LIMIT,
  ALARM_ID_TEM_EXCEED_UP_UP_LIMIT,
  ALARM_ID_TEM_EXCEED_LOW_LIMIT,
  ALARM_ID_TEM_EXCEED_LOW_LOW_LIMIT,
  ALARM_ID_PRE_TRANSMITTER_FAILURE,
  ALARM_ID_PRE_EXCEED_UP_LIMIT,
  ALARM_ID_PRE_EXCEED_UP_UP_LIMIT,
  ALARM_ID_PRE_EXCEED_LOW_LIMIT,
  ALARM_ID_PRE_EXCEED_LOW_LOW_LIMIT,
  ALARM_ID_AMBIENT_TEM_EXCEED_UP_LIMIT = 0x30,
  ALARM_ID_AMBIENT_TEM_EXCEED_LOW_LIMIT,
    ALARM_ID_AMBIENT_TEM_SUDDEN_CHANGE,//»·Î¾ç±ä
    ALARM_ID_LCD_AMBIENT_TEM_EXCEED_LOW_LIMIT,//ÒºÏÔµÍÎÂ
 
  ALARM_ID_MEASURE_SONIC_SENSOR_LOSS = 0x40, // Ì½Í·¶ªÊ§±¨¾¯/¹Ø·§
  ALARM_ID_MEASURE_FLOW_VELOCITY_ABNORMAL,//Á÷ËÙÒì³£
  ALARM_ID_MEASURE_TIME_DIFF_ABNORMAL,//ʱ¼ä²îÒì³£
  ALARM_ID_MEASURE_SOUND_VELOCITY_ABNORMAL,//ÉùËÙÒì³£
  ALARM_ID_MEASURE_SNR_ABNORMAL,//ÐÅÔë±ÈÒì³£
  ALARM_ID_MEASURE_SIHNAL_OVERFLOW_ABNORMAL,//ÐźÅÒç³öÒì³£
  ALARM_ID_MEASURE_THRESHOLD_ABNORMAL,//ÐźÅãÐÖµÒì³£
  ALARM_ID_MEASURE_GAIN_ABNORMAL,//ÐźÅÔöÒæÒì³£
    ALARM_ID_MEDIUM_WATER,//½øË®
  ALARM_ID_MEDIUM_ABNORMAL,//½éÖÊÒì³£
  ALARM_ID_DISMANTLE_METER_ABNORMAL = 0x50,//²ð±íÒì³£
  ALARM_ID_METERING_UNIT_ABNORMAL , // ¼ÆÁ¿µ¥ÔªÒì³£
    ALARM_ID_MEASURE_CHANNEL_REMOVAL,//ÉùµÀÇгý
    
    ALARM_ID_FLOW_EXCEED_UP_LIMIT = 0x60,//Á÷Á¿³¬ÏÞ1
    ALARM_ID_FLOW_EXCEED_UP_UP_LIMIT,//Á÷Á¿³¬ÏÞ2
    ALARM_ID_FLOW_EXCEED_UP_UP_LIMIT2,//Á÷Á¿³¬ÏÞ3
    ALARM_ID_FLOW_BIDIRECTIONAL,//·´ÏòÁ÷Á¿
    ALARM_ID_FLOW_CONSTANT,//ºãÁ÷
    ALARM_ID_FLOW_SMALL,//СÁ÷Á¿
    ALARM_ID_GAS_LEAK,//ÆøÌåй©
    
    ALARM_ID_VALVE_ABNORMAL = 0x70,//·§ÃÅÒì³£±¨¾¯
    ALARM_ID_VALVE_CLOSE_GAS_RUNNING_ABNORMAL,//¹Ø·§×߯ø
    
    ALARM_ID_FLOW_BAT_LOW = 0x80,//¶Ô½ÓÉ豸µÍµç
    ALARM_ID_FLOW_BAT_DOWN,//¶Ô½ÓÉ豸µôµç
    ALARM_ID_PULSE_BROKEN,//Âö³åÏß¶ÏÏß
    ALARM_ID_E2P_W_ABNORMAL,//eepromдÒì³£
    ALARM_ID_E2P_R_ABNORMAL,//eeprom¶ÁÒì³£
    ALARM_ID_READ_485_ABNORMAL,//¶Á485Òì³£
    ALARM_ID_485_READING_SMALLER_ABNORMAL,//485¶ÁÊýÒì³£±äС
    
    ALARM_ID_BALANCE_SMALLER1 = 0x90,//Óà¶îÉÙ¶î
  ALARM_ID_BALANCE_SMALLER2, // Óà¶îÉÙ¶î1±¨¾¯/¹Ø·§
  ALARM_ID_BALANCE_SMALLER3,
  ALARM_ID_BALANCE_SMALLER4,
  ALARM_ID_BALANCE_SMALLER5,
  ALARM_ID_CUMULATIVE_GAS_ARRIVE,//ÀÛ»ýÆøÁ¿µ½
  ALARM_ID_N_DAYS_NO_GAS_ARRIVE,//¶àÌìÎÞÓÃÆø
  ALARM_ID_N_DAYS_NO_REPORT_ARRIVE,//¶àÌìÎÞÉϱ¨
 
  ALARM_ID_OP_VALVE_KEY = 0x996, // ½ö½öÊǹط§ÀàÐͲ»²úÉú±¨¾¯
  ALARM_ID_CL_VALVE_KEY,
  ALARM_ID_OP_VALVE_CMD,
  ALARM_ID_CL_VALVE_CMD,
} SYS_ALARM_VALVE_T; // ±¨¾¯ºÍ¹Ø·§ÀàÐÍID
 
 
typedef struct log_sizhu_sys_alarm_save_t  //ϵͳ±¨¾¯
{
    u16                   serial_number;
    
    uint8_t         Sample_year;
    uint8_t         Sample_month;
    uint8_t         Sample_day;
    uint8_t         Sample_hour;
    uint8_t         Sample_min;
    uint8_t         Sample_sec;
    
    uint16_t            alarm_id;
 
    double            StandardGasUsageTotal;
    double            WorkingGasUsageTotal;
    double            ReverseStandardGasUsageTotal;
    double            ReverseWorkingGasUsageTotal;    
    float            Standardvec;
    float            Workingvec;
    float           Temperature;
    float           Pressure;
    float         ambient_tem;  //»·¾³Î¶È
    uint8_t          lith_bat_v;
    uint8_t          alka_bat_v;
    SYSTEM_STATUS_WORD_T  status_word;         
    
}LOG_SIZHU_SYS_ALARM_SAVE_T;
 
typedef struct
{
    LOG_SIZHU_RUN_T system_alarm_log;
    
}LOG_ALARM_PARA_T;
 
#pragma pack()
 
 
extern LOG_ALARM_PARA_T log_alarm_para_g;
 
 
uint8_t system_alarm_log_eeprom_default_init(void);
uint8_t system_alarm_log_record_only_read_init(void);
uint8_t system_alarm_log_record_save(uint8_t alarm_type, uint8_t * para_alarm_ptr);
void system_alarm_log_data_handle(uint8_t alarm_type, uint16_t alarm_ID);
#endif