#ifndef _SYSTEM_MEM_PARA_H
|
#define _SYSTEM_MEM_PARA_H
|
#include "define_all.h"
|
#include "system_general_para.h"
|
#include "extern_rtc.h"
|
#include "valve_control.h"
|
#include "wireless_remote_comm.h"
|
#include "sizhu_ctrl_word.h"
|
#include "rs485_read_data.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_TYPE product_type; //²úÆ·ÀàÐÍ
|
CALIBER_TYPE caliber_type;//¿Ú¾¶ 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_TYPE valve_type;//·§ÃÅÐͺÅ0:ÎÞ·§ÃÅ£»1£ºÅôÊ¢·§Ì壻2:¹þµÂ·§Ì壻ÆäËû£¬Ä¬ÈϹþµÂ·§Ìå
|
EQUIPMENT_TYPE 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)
|
|
//LCD°åÈíÓ²¼þÐÅÏ¢
|
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_sc; // ±ê¶¨ÀÛ»ýÁ¿
|
double cal_cumulate_wc;
|
double err_forward_cumulate_sc; // ´íÎóÀÛ»ýÁ¿
|
double err_forward_cumulate_wc;
|
}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_STATUS valve_status ;
|
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;
|
|
//Á÷Á¿¼Æ²ÎÊý
|
typedef struct
|
{
|
FLOW_METER_CONN_TYPE flow_meter_conn_type;
|
uint16_t flow_meter_code;
|
float pulse_coe;
|
uint16_t pulse_width;
|
BAUDRATE_CODE baudrate_code;
|
PARITY_BIT parity_bit;
|
RS485_PWR_OUTPUT_SELECT output_voltage_code;
|
uint8_t slave_address;
|
|
uint8_t broken_line_multiplex; //¶ÏÏ߸´ÓÃ
|
|
uint8_t sub_machine_num;
|
char flow_meter_serial_number;
|
|
}FLOW_METER_PARA_T;
|
|
//ÎÂѹÅäÖòÎÊý
|
typedef struct
|
{
|
int16_t tem_up_limit;
|
int16_t tem_up_up_limit;
|
int16_t tem_low_limit;
|
int16_t tem_low_low_limit;
|
int16_t ambient_tem_up_limit;
|
int16_t ambient_tem_low_limit;
|
float pre_up_limit;
|
float pre_up_up_limit;
|
float pre_low_limit;
|
float pre_low_low_limit;
|
|
}TEM_PRE_PARA_T;
|
|
//¼ÆÁ¿¶³½á²ÎÊý
|
typedef struct
|
{
|
uint16_t freeze_interval;
|
uint8_t daily_freeze_time_BCD[2];
|
}MEASURE_FREEZE_PARA_T;
|
|
//µç³Ø²ÎÊý
|
typedef struct
|
{
|
uint8_t lith_bat_low_v;
|
uint8_t lith_bat_under_v;
|
uint8_t alka_bat_low_v;
|
uint8_t alka_bat_under_v;
|
uint32_t lith_bat_max_hour;
|
uint32_t lith_bat_used_hour;
|
uint32_t lith_bat_used_sec;
|
uint8_t reserve[32];
|
}BAT_PARA_T;
|
|
//ÉÏλ»ú\APPµÇÈëÃÜÂë
|
typedef struct
|
{
|
uint8_t PC_general_user_password[2];
|
uint8_t PC_advanced_user_password[2];
|
uint8_t PC_manage_user_password[2];
|
// uint8_t APP_general_user_password[2];
|
// uint8_t APP_advanced_user_password[2];
|
// uint8_t APP_manage_user_password[2];
|
}LOGIN_PASSWORD_T;
|
|
//ÉÏλ»ú´®¿ÚÅäÖÃÐÅÏ¢
|
typedef struct
|
{
|
uint8_t slave_address;
|
BAUDRATE_CODE baudrate_code;
|
PARITY_BIT parity_bit;
|
|
}UP_COMM_PARA_T;
|
|
|
//ÎÞÏßÔ¶³ÌͨѶÅäÖòÎÊý
|
typedef struct
|
{
|
uint8_t ip1[4];
|
uint16_t ip_port1;
|
LINK_TYPE ip1_connect_type; //IPÁ¬½Óģʽ 0£ºTCPÖ±Á¬ 1£ºÁ¬½ÓµçÐÅÆ½Ì¨ 2£ºÁ¬½ÓÒÆ¶¯onenetƽ̨
|
uint8_t ip2[4];
|
uint16_t ip_port2;
|
LINK_TYPE ip2_connect_type; //IPÁ¬½Óģʽ 0£ºTCPÖ±Á¬ 1£ºÁ¬½ÓµçÐÅÆ½Ì¨ 2£ºÁ¬½ÓÒÆ¶¯onenetƽ̨
|
uint16_t bat_power_data_interval; //µç³Ø¹©µçÊý¾Ý¼ä¸ô
|
uint16_t ext_power_data_interval; // Í⹩µçÊý¾Ý¼ä¸ô
|
|
WRC_TIME_START_TYPE time_start_type; //ʱ¼ä·¢ËÍģʽ,0£ºÎÞ·¨ËÍ 1£º¼ä¸ô :2£º¶¨Ê± 3£º¼ä¸ô+¶¨Ê±. ÔÝʱֻ֧³Ö1»òÕß2
|
uint16_t bat_power_send_interval;
|
uint16_t ext_power_send_interval;
|
uint8_t send_first_time_BCD[2]; //Ê״η¢ËÍʱ¼ä£¬¿ÉÓÃÓÚ´í·å·¢ËÍ£¬±ÈÈçÊ״η¢ËÍʱ¼äÉèÖÃΪ0µã15·Ö£¬24·¢ËÍ·¢ËÍÒ»´Î¡£ ÄǾÍÊÇÿÌì0µã15·ÖͨѶһ´Î
|
uint8_t timing_send_num; //¶¨Ê±Éϱ¨´ÎÊý1-12
|
uint8_t timing_send_time_BCD[12][2]; //¶¨Ê±·¢ËÍʱ¼äµã1-12
|
|
uint16_t retransmission_interval; // ÖØ·¢¼ä¸ô
|
uint8_t retransmission_num; //ÖØ·¢´ÎÊý
|
uint16_t comm_timeout_time; //³¬Ê±Ê±¼ä£¬Ãë
|
|
uint8_t KVer_AES_128[9][16];
|
|
}WRC_PARA_SIZHU_T;
|
|
|
//¼Û¸ñ·½°¸ÅäÖòÎÊý
|
//³äÖµÅäÖòÎÊý
|
//Óà¶î/Ìõ¼þ¹Ø·§ÅäÖòÎÊý
|
typedef struct
|
{
|
VALVE_BILLING_CHANGE_1_T balance_valve_ctrl_byte;
|
VALVE_BILLING_CHANGE_2_T conditional_valve_ctrl_byte;
|
int32_t balance_small_value[5];
|
uint32_t cumulate_flow_threshold;
|
uint8_t no_wrc_days;
|
uint8_t no_use_gas_days;
|
uint8_t reserve[5];
|
} BILLING_VALVE_CTRL_PATA_T; // ¼Æ·Ñ±¨¾¯\ÓÐÌõ¼þ¹Ø·§¿ØÖƲÎÊý
|
|
|
|
/*****************ÒÔϼ¸¸ö¿ØÖÆ×ÖÔÚsizhu_ctrl_word.hÖÐ******************************/
|
//¹¦ÄÜ¿ØÖÆ×Ö
|
//ϵͳ±¨¾¯¿ØÖÆ×Ö/ϵͳ±¨¾¯Éϱ¨¿ØÖÆ×Ö
|
//¹Ø·§¿ØÖÆ×Ö
|
/***********************************************/
|
|
|
|
|
#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;
|
extern __IO SAVE_REALTIME_DATA_T save_realtime_data_g;
|
extern __IO SAVE_VALVE_PARA_T save_valve_para_g;
|
extern FLOW_METER_PARA_T flow_meter_para_g;
|
extern MEASURE_FREEZE_PARA_T measure_freeze_para_g;
|
extern BAT_PARA_T bat_para_g;
|
extern LOGIN_PASSWORD_T login_passeord_g;
|
extern UP_COMM_PARA_T up_comm_para_g;
|
extern WRC_PARA_SIZHU_T wrc_para_sizhu_g;
|
extern BILLING_VALVE_CTRL_PATA_T billing_valve_ctrl_para_g;
|
|
|
void allParaDefaultInit(void);
|
void allParaReadFromEep(void);
|
void allParaPatchPro(void);
|
|
#endif
|