forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-30 a1810b89e66f184c62a0588ae7d57c91d0c376e8
Function/STORAGE/system_mem_para.c
@@ -1,10 +1,13 @@
#include "system_mem_para.h"
#include "mbcrc.h"
#include "mbcrc1.h"
#include "eeprom.h"
#include "system_eep_mem_manage.h"
#include "rs485_data_analysis_pro.h"
SYSTEM_EEP_IDENTIFICATION_T system_eep_id_g;
SYSTEM_EEP_IDENTIFICATION_T system_eep_id_g = {         \
   .eep_para_init_config_id = EEP_PARA_INIT_ID,       \
   .eep_para_patch_id = LAST_PATCH_ID,                \
};
EQUIPMENT_BASIC_INF_T              equipment_basic_inf_g={ 
   .product_type= DM_SCM_SZV103,      \
   .caliber_type = DN50_TYPE,         \
@@ -16,12 +19,12 @@
WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_T    wireless_equipment_hardware_software_inf_g;
__IO SAVE_REALTIME_DATA_T               save_realtime_data_g;
   
__IO SAVE_VALVE_PARA_T                     save_valve_para_g={
__IO SAVE_VALVE_PARA_T                     save_valve_para_g={         \
   .valve_status = VALVE_NONE, \
   .valve_lock_state = VL_UNLOCK,};
FLOW_METER_PARA_T   flow_meter_para_g ={
FLOW_METER_PARA_T   flow_meter_para_g ={                \
   .flow_meter_conn_type = FLOW_METER_CONN_RS485, \
   .flow_meter_code = SIZHUMODBUSV2_0,                 \
   .pulse_width = 50,                                        \
@@ -30,7 +33,7 @@
   .output_voltage_code = RS485_V1_5V,           \
   .slave_address = 1, };
TEM_PRE_PARA_T tem_pre_para_g = {
TEM_PRE_PARA_T tem_pre_para_g = {    \
   .tem_up_limit = 70,                   \
   .tem_up_up_limit = 70,                 \
   .tem_low_limit = -20,                 \
@@ -43,12 +46,12 @@
   .pre_low_low_limit = 70,              \
};
MEASURE_FREEZE_PARA_T measure_freeze_para_g = {
MEASURE_FREEZE_PARA_T measure_freeze_para_g = {      \
   .freeze_interval = 60,                          \
   .daily_freeze_time_BCD = {0x00,0x00},           \
};
BAT_PARA_T bat_para_g = {
BAT_PARA_T bat_para_g = {                  \
   .lith_bat_low_v = 55,              \
   .lith_bat_under_v = 50,           \
   .alka_bat_low_v = 55,              \
@@ -58,14 +61,19 @@
   .lith_bat_used_sec = 0,           \
};
LOGIN_PASSWORD_T login_passeord_g = {
LOGIN_PASSWORD_T login_passeord_g = {                           \
   .PC_general_user_password = {0x68,0x68},           \
   .PC_advanced_user_password = {0x52,0x86},          \
   .PC_manage_user_password = {0x75,0x97},            \
};
WRC_PARA_SIZHU_T wrc_para_sizhu_g = {
UP_COMM_PARA_T   up_comm_para_g = {                  \
   .slave_address = 1,                                \
   .baudrate_code = BAUDRATE_115200,           \
   .parity_bit = PARITY_NONE,                       \
};
WRC_PARA_SIZHU_T wrc_para_sizhu_g = {                     \
   .ip1 = {120,77,85,236},                                  \
   .ip_port1 = 9692,                                            \
   .ip1_connect_type = LINK_TCP,                       \
@@ -85,13 +93,17 @@
   .comm_timeout_time =120,                                \
   .KVer_AES_128[0] ={8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0},  \
};
WRC_DATA_NUM_CTRL_PARA_SIZHU_T   wrc_data_num_ctrl_para_sizhu_g={      \
   .report_data_save_num = 0,         \
   .report_data_left_num = 0,         \
};
BILLING_VALVE_CTRL_PATA_T billing_valve_ctrl_para_g = {
BILLING_VALVE_CTRL_PATA_T billing_valve_ctrl_para_g = {   \
   .balance_valve_ctrl_byte = {0},                 \
   .conditional_valve_ctrl_byte = {0},           \
  .balance_small_value = {500,100,0,0,0},       \
  .cumulate_flow_threshold = 0,                    \
  .no_wrc_days = 3,                                        \
  .no_wrc_days = 15,                                        \
  .no_use_gas_days = 0,                                 \
};
@@ -135,7 +147,7 @@
}
//EEPROM²ÎÊý¶ÁÈ¡²¢¼ì²é£¬Ö»Ö§³Ö×î´ó1024×Ö½Ú¶ÁÈ¡
ErrorStatus   eepABReadCheck(uint8_t * write_data,uint32_t addrA,uint32_t addrB,uint16_t length)
ErrorStatus   eepABReadCheck(uint8_t * read_data,uint32_t addrA,uint32_t addrB,uint16_t length)
{
   ErrorStatus   read_flag = FAIL;
   uint16_t CRC16_MODBUS;
@@ -161,7 +173,7 @@
   
   if(read_flag == PASS)
   {
      arrayA_2_arrayB(buf_l, write_data, length, LITTLE_ENDIAN) ;
      arrayA_2_arrayB(buf_l, read_data, length, LITTLE_ENDIAN) ;
      return PASS;
   }else
   {
@@ -180,7 +192,7 @@
      
      if(read_flag == PASS)
      {
         arrayA_2_arrayB(buf_l, write_data, length, LITTLE_ENDIAN) ;
         arrayA_2_arrayB(buf_l, read_data, length, LITTLE_ENDIAN) ;
         EEPROM_MultipleWrite(buf_l,addrA,length);//AÇøÐ£Ñé´íÎó£¬BÇøÕýÈ·£¬Ôò½«BÇøÊý¾ÝдÈëAÇø
         return PASS;
      }else
@@ -234,6 +246,29 @@
}
//É豸»ù´¡ÐÅÏ¢³õʼ»¯Ð´Èë
ErrorStatus   EquipmentBasicInfoDefaultInit(void)
{
   return paraCalcCrcAndWriteEepAB((uint8_t * )&equipment_basic_inf_g,BASIC_INFORMATION_OF_EQUIPMENT_ADDR,BASIC_INFORMATION_OF_EQUIPMENT_ADDR + PARA_EEP_B_OFFSET_ADDR,EQUIPMENT_BASIC_INF_LENGTH);
}
//É豸»ù´¡ÐÅÏ¢¶ÁÈ¡
ErrorStatus   EquipmentBasicInfoReadFromEep(void)
{
   if(   eepABReadCheck((uint8_t * )&equipment_basic_inf_g,BASIC_INFORMATION_OF_EQUIPMENT_ADDR,BASIC_INFORMATION_OF_EQUIPMENT_ADDR + PARA_EEP_B_OFFSET_ADDR,EQUIPMENT_BASIC_INF_LENGTH) == FAIL)
   {
      EquipmentBasicInfoDefaultInit();
      return FAIL;
   }else
   {
      return PASS;
   }
}
//?ËùÓвÎÊý³õʼ»¯ÎªÄ¬ÈÏÖµ²¢Ð´ÈëEEPROM
void allParaDefaultInit(void)
{
@@ -243,6 +278,9 @@
   
   
   //É豸»ù´¡ÐÅÏ¢³õʼ»¯Ð´Èë
   if(EquipmentBasicInfoDefaultInit()==FAIL) return_flag = FAIL;
   //?¼ÌÐø²¹³ä£¬°üÀ¨¿ØÖÆÈÕÖ¾´æ´¢µÄ²ÎÊý
   
   
   //ʵʱÊý¾Ý³õʼ»¯Ð´Èë
@@ -262,6 +300,10 @@
   if(systemEepIdReadFromEep()==FAIL) return_flag = FAIL;
   
   //É豸»ù´¡ÐÅÏ¢¶ÁÈ¡
   if(EquipmentBasicInfoReadFromEep()==FAIL) return_flag = FAIL;
   //?¼ÌÐø²¹³ä£¬°üÀ¨¿ØÖÆÈÕÖ¾´æ´¢µÄ²ÎÊý
   
   //×îÖÕÅжÏreturn_flag==FAIL£¬Ôò±¨¾¯´æ´¢Òì³££¬Èç¹û»¹ÓÐÕâ¸ö±¨¾¯µÄ»°