#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 0x24060301 //BCD¸ñʽYYMMDDXX£¬²»ÄܳöÏÖ×Öĸ #define LAST_PATCH_ID EEP_PARA_PATCH_ID_1 //BCD¸ñʽYYMMDDXX£¬²»ÄܳöÏÖ×Öĸ£¬×¢Òâ´Ë´¦Ö¸Ïò×îºóÒ»¸ö²¹¶¡ /************²¹¶¡±êʶ¶¨ÒåÇø£¬³ÖÐøÔö¼Ó£¬BCD¸ñʽYYMMDDXX£¬²»ÄܳöÏÖ×Öĸ************/ /************ÿ´ÎÔö¼ÓºóLAST_PATCH_IDÖ¸Ïò×îºóÒ»¸ö²¹¶¡***************************/ #define EEP_PARA_PATCH_ID_1 0x24060301 /****************************************************/ #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;//É豸ÀàÐÍ 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 ;//¹Ø·§Ô­Òò £¬×λΪ1´ú±íǿֱÐԹط§£¬ÆäÓàλµÈÓÚ±¨¾¯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 { uint16_t report_data_save_num; uint16_t report_data_left_num; }WRC_DATA_NUM_CTRL_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ÖÐ******************************/ //¹¦ÄÜ¿ØÖÆ×Ö //ϵͳ±¨¾¯¿ØÖÆ×Ö/ϵͳ±¨¾¯Éϱ¨¿ØÖÆ×Ö //¹Ø·§¿ØÖÆ×Ö /***********************************************/ /*****************ÈÕÖ¾¿ØÖƲÎÊý******************************/ //ÈÕÖ¾¿ØÖƲÎÊý typedef struct log_sizhu_run_t { uint16_t log_count; uint32_t log_addr_save; // uint32_t log_addr_begin; uint8_t reserve[16]; }LOG_SIZHU_RUN_T; //Êý¾ÝÀúÊ·¼Ç¼ typedef struct { LOG_SIZHU_RUN_T per_period_log; LOG_SIZHU_RUN_T per_hour_log; LOG_SIZHU_RUN_T per_day_log; LOG_SIZHU_RUN_T per_month_log; }LOG_SIZHU_HISTORY_CTRL_T; //±¨¾¯¼Ç¼ typedef struct { LOG_SIZHU_RUN_T system_alarm_log; }LOG_ALARM_CTRL_T; //²ÎÊýÐ޸ļǼ typedef struct { LOG_SIZHU_RUN_T basic_info_modify_log; LOG_SIZHU_RUN_T cumulate_modify_log; LOG_SIZHU_RUN_T balance_modify_log; LOG_SIZHU_RUN_T flow_meter_para_modify_log; LOG_SIZHU_RUN_T conditional_close_valve_para_modify_log; LOG_SIZHU_RUN_T fun_ctrl_word_modify_log; LOG_SIZHU_RUN_T alarm_ctrl_word_modify_log; LOG_SIZHU_RUN_T close_valve_ctrl_word_modify_log; }LOG_PARA_MODIFY_CTRL_T; //ʼþ¼Ç¼ typedef struct LOG_EVENT_CTRL_T { LOG_SIZHU_RUN_T valve_action_log; LOG_SIZHU_RUN_T factory_reset_log; LOG_SIZHU_RUN_T calibration_time_log; }LOG_EVENT_CTRL_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; 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 WRC_DATA_NUM_CTRL_PARA_SIZHU_T wrc_data_num_ctrl_para_sizhu_g; extern BILLING_VALVE_CTRL_PATA_T billing_valve_ctrl_para_g; void allParaDefaultInit(void); void allParaReadFromEep(void); void allParaPatchPro(void); #endif