forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-04-18 de0f427ee76ab84d3afb22c92a2b065b1ce06d3e
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
#ifndef _SYSTEM_MEM_PARA_H
#define _SYSTEM_MEM_PARA_H
#include "define_all.h"
#include "system_general_para.h"
#include "extern_rtc.h"
 
#define SOFT_SERIAL_NUMBER1    0x05
#define SOFT_SERIAL_NUMBER2    0x00
#define SOFT_SERIAL_NUMBER3    0x05
#define SOFT_SERIAL_NUMBER4    0x07
 
#define    EEP_PARA_INIT_ID     0x24041601          //BCD¸ñʽYYMMDDXX£¬²»ÄܳöÏÖ×Öĸ
#define LAST_PATCH_ID            EEP_PARA_PATCH_ID_1    //BCD¸ñʽYYMMDDXX£¬²»ÄܳöÏÖ×Öĸ£¬×¢Òâ´Ë´¦Ö¸Ïò×îºóÒ»¸ö²¹¶¡
 
/************²¹¶¡±êʶ¶¨ÒåÇø£¬³ÖÐøÔö¼Ó£¬BCD¸ñʽYYMMDDXX£¬²»ÄܳöÏÖ×Öĸ************/
/************ÿ´ÎÔö¼ÓºóLAST_PATCH_IDÖ¸Ïò×îºóÒ»¸ö²¹¶¡***************************/
#define    EEP_PARA_PATCH_ID_1     0x24041601     
 
/****************************************************/
 
#pragma pack(1)
 
#define    CRC16_MODBUS_OFFSET  sizeof(uint16_t)
 
//ϵͳ²¹¶¡±êʶ
typedef struct 
{
    uint16_t    CRC16_MODBUS;
    
    uint32_t eep_para_init_config_id;
    
    uint32_t eep_para_patch_id;
    
    uint8_t    reserve[32];
}SYSTEM_EEP_IDENTIFICATION_T;
#define   SYSTEM_EEP_IDENTIFICATION_LENGTH        sizeof(SYSTEM_EEP_IDENTIFICATION_T)
 
typedef struct equipment_basic_inf
{
    uint16_t    CRC16_MODBUS;
    char  specification_model[20];//¹æ¸ñÐͺÅ
    DEVICE_MODEL        product_type; //²úÆ·ÀàÐÍ
    CALIBER_MODEL        caliber_model;//¿Ú¾¶ 1/2/3/4/5/6/7/8´ú±í050/080/100/150/200/025/032/040
    uint8_t         serial_number[10];//³ö³§±àºÅ£¬BCDĿǰֻÓÃǰ8×Ö½Ú£¬16룬ºó2×Ö½Ú²¹FFH¡£
    uint8_t        manufactuer_code[2];//³§¼Ò´úÂë,×ÔÓã¬ÓÃÓÚʶ±ðÉ豸ÓÃ;£¬±ÈÈçÊÇаÂÌùÅÆ£¬Ôò³§¼Ò´úÂë±íʾΪа£¬¸Ä´úÂë¿ÉÓÃÓÚÉÏλ»úʶ±ð£¬ÉÏλ»úʹÓÃÕßҲΪа£¬Ôò¿É½øÐвÙ×÷¡£
    VALVE_MODEL    valve_type;//·§ÃÅÐͺÅ0:ÎÞ·§ÃÅ£»1£ºÅôÊ¢·§Ì壻2:¹þµÂ·§Ì壻ÆäËû£¬Ä¬ÈϹþµÂ·§Ìå
    EQUIPMENT_MODEL        equipment_type;//É豸ÀàÐÍ,10H±íʾ¡°Ò»ÌåʽÁ÷Á¿Ô¶´«ÖÕ¶Ë
    uint8_t    reserve[32];
}EQUIPMENT_BASIC_INF_T;
#define   EQUIPMENT_BASIC_INF_LENGTH        sizeof(EQUIPMENT_BASIC_INF_T)
 
 
typedef struct main_equipment_hardware_software_inf
{
    uint16_t    CRC16_MODBUS;
    uint8_t        PCB_serial_number[5];
    uint8_t        PCB_model[5]; //PCBÐͺÅ,¾ßÌå¼ûÎĵµ
    uint8_t         hard_serial_number[5];
    uint8_t         soft_serial_number[4];
    uint8_t      soft_serial_crc[2];
    uint8_t      soft_serial_date[3];
 
}MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_T;
#define   MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH        sizeof(MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_T)
 
typedef struct lcd_equipment_hardware_software_inf
{
    uint16_t    CRC16_MODBUS;
    uint8_t        PCB_serial_number[5];
    uint8_t        PCB_model[5]; //PCBÐͺÅ,¾ßÌå¼ûÎĵµ
    uint8_t         hard_serial_number[5];
    uint8_t         soft_serial_number[4];
    uint8_t      soft_serial_crc[2];
    uint8_t      soft_serial_date[3];
 
}LCD_EQUIPM_HARDWARE_SOFTWARE_INF_T;
#define   LCD_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH        sizeof(LCD_EQUIPM_HARDWARE_SOFTWARE_INF_T)
 
typedef struct wireless_equipment_hardware_software_inf
{
    uint16_t    CRC16_MODBUS;
    uint8_t        PCB_serial_number[5];
    uint8_t        PCB_model[5]; //PCBÐͺÅ,¾ßÌå¼ûÎĵµ
    uint8_t         hard_serial_number[5];
    uint8_t         soft_serial_number[4];
    uint8_t      soft_serial_crc[2];
    uint8_t      soft_serial_date[3];
 
}WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_T;
#define   WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_LENGTH        sizeof(WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_T)
 
 
 
typedef struct{
    uint16_t    CRC16_MODBUS;
    sClockBCD record_time_bcd;
    struct realtime_flow_data
    {
        double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
        double forward_cumulate_wc;
        double cal_cumulate_reserve[2];         // ±ê¶¨ÀÛ»ýÁ¿_Ô¤Áô
        double err_forward_cumulate_reserve[2]; // ´íÎóÀÛ»ýÁ¿_Ô¤Áô
 
    }realtime_flow_data_s;
    struct realtime_billing_data
    {
        uint8_t price_type_mode_now;  //¼Æ·ÑÀàÐÍ£¬  µ¥Ò»¼Æ·Ñ¡¢½×ÌݼƷѡ¢·Öʱ¼Æ·Ñ
        uint32_t price_now;       //µ¥¼Û£¬·Å´ó10000±¶
        double use_fee_sum;    //×ÜÓÃÆø½ð¶î
        double balance_now;
 
        double ladder_cumulate_sc;  //½×ÌÝÄÚ×ÜÓÃÁ¿
        uint8_t    ladder_now;  //µ±Ç°½×ÌÝ
        
        uint8_t    base_readable_flag;//½áËã»ùÊý¿É¶Á±êÖ¾
        double    SC_base ; //×ÜÁ¿»ùÊý
        double    balance_base ;//Óà¶î»ùÊý
        double    gas_use_base ;//×ÜÓÃÆøÁ¿»ùÊý
        double    fee_use__base ;//×ÜÓÃÆø½ð¶î»ùÊý
        double    ladder_SC_base ;//½×ÌÝÓÃÆøÁ¿»ùÊý
        
        double    ladder_first_time_up_flag; //½×ÌݼƷѵÚÒ»¸öÖÜÆÚʱ¼äµ½´ï±êÖ¾
        
    }realtime_billing_data_s;
 
    uint8_t reserve[32];
} SAVE_REALTIME_DATA_T;    //ÐèÒª´æ´¢µÄʵʱÊý¾Ý
#define   SAVE_REALTIME_DATA_LENGTH        sizeof(SAVE_REALTIME_DATA_T)
 
 
//ͳ¼Æ²ÎÊý£¬ÔÝʱ²»×ö
 
typedef struct 
{
    VALVE_STATE_T      valve_state ;
    VALVE_LOCK_STATE_T        valve_lock_state;  //·§ÃÅËø¶¨×´Ì¬
    uint16_t        open_times;//¿ª·§´ÎÊý
    uint16_t        close_times;//¹Ø·§´ÎÊý    
    uint16_t        valve_close_ID ;//¹Ø·§Ô­Òò  µÈÓÚ±¨¾¯ID
    
    
}SAVE_VALVE_PARA_T;
 
 
//δÍê³É.....
 
#pragma pack()
 
 
extern SYSTEM_EEP_IDENTIFICATION_T system_eep_id_g;
extern EQUIPMENT_BASIC_INF_T                 equipment_basic_inf_g;
extern MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_T        main_equipment_hardware_software_inf_g;
extern LCD_EQUIPM_HARDWARE_SOFTWARE_INF_T         lcd_equipment_hardware_software_inf_g;
extern WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_T    wireless_equipment_hardware_software_inf_g;
 
 
 
 
 
 
void allParaDefaultInit(void);
void allParaReadFromEep(void);
void allParaPatchPro(void);
 
#endif