From f03cf3ae7a36954e64fc014e6bb7afd20c5a5247 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Wed, 12 Jun 2024 17:22:08 +0800
Subject: [PATCH] 增加IAP功能,准备测试上位机升级
---
Function/STORAGE/system_mem_para.c | 462 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 451 insertions(+), 11 deletions(-)
diff --git a/Function/STORAGE/system_mem_para.c b/Function/STORAGE/system_mem_para.c
index 58e0d57..403bf2a 100644
--- a/Function/STORAGE/system_mem_para.c
+++ b/Function/STORAGE/system_mem_para.c
@@ -1,16 +1,147 @@
#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"
+#include "pulse_and_alarm_line.h"
+#include "system_flash_mem_manage.h"
+#include "sizhu_history_record.h"
+#include "sizhu_alarm_record.h"
+#include "sizhu_event_record.h"
+#include "sizhu_para_modify_record.h"
-SYSTEM_EEP_IDENTIFICATION_T system_eep_id_g;
-EQUIPMENT_BASIC_INF_T equipment_basic_inf_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, \
+ .serial_number = {0x07,0x10,0x50,0x82,0x40,0x69,0x00,0x01,0xff,0xff}, \
+ .valve_type = VM_HADE, \
+ .equipment_type = EM_SIFRCT,};
+
MAIN_EQUIPM_HARDWARE_SOFTWARE_INF_T main_equipment_hardware_software_inf_g;
LCD_EQUIPM_HARDWARE_SOFTWARE_INF_T lcd_equipment_hardware_software_inf_g;
WIRELESS_EQUIPM_HARDWARE_SOFTWARE_INF_T wireless_equipment_hardware_software_inf_g;
-SAVE_REALTIME_DATA_T save_realtime_data_g;
+__IO SAVE_REALTIME_DATA_T save_realtime_data_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_conn_type = FLOW_METER_CONN_RS485_AND_PULSE, \
+ .flow_meter_code = SIZHUMODBUSV2_0, \
+ .pulse_coe = 1.0, \
+ .pulse_width = 50, \
+ .baudrate_code = BAUDRATE_9600, \
+ .parity_bit = PARITY_NONE, \
+ .output_voltage_code = RS485_V1_5V, \
+ .slave_address = 1, \
+ .broken_line_multiplex = BROKEN_LINE_MUTIPLEX_NONE, \
+};
+
+TEM_PRE_PARA_T tem_pre_para_g = { \
+ .tem_up_limit = 70, \
+ .tem_up_up_limit = 70, \
+ .tem_low_limit = -20, \
+ .tem_low_low_limit = -25, \
+ .ambient_tem_up_limit = 60, \
+ .ambient_tem_low_limit = -25, \
+ .pre_up_limit = 1600, \
+ .pre_up_up_limit = 1920, \
+ .pre_low_limit = 70, \
+ .pre_low_low_limit = 70, \
+};
+
+MEASURE_FREEZE_PARA_T measure_freeze_para_g = { \
+ .freeze_interval = 60, \
+ .daily_freeze_time_BCD = {0x00,0x00}, \
+};
+
+BAT_PARA_T bat_para_g = { \
+ .lith_bat_low_v = 55, \
+ .lith_bat_under_v = 50, \
+ .alka_bat_low_v = 55, \
+ .alka_bat_under_v = 50, \
+ .lith_bat_max_hour = 26280, \
+ .lith_bat_used_hour = 0, \
+ .lith_bat_used_sec = 0, \
+};
+
+LOGIN_PASSWORD_T login_passeord_g = { \
+ .PC_general_user_password = {0x68,0x68}, \
+ .PC_advanced_user_password = {0x52,0x86}, \
+ .PC_manage_user_password = {0x75,0x97}, \
+};
+
+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 = {39,108,81,105}, \
+ .ip_port1 = 9692, \
+ .ip1_connect_type = LINK_TCP, \
+ .ip2 = {120,77,85,236}, \
+ .ip_port2 = 9692, \
+ .ip2_connect_type = LINK_TCP, \
+ .bat_power_data_interval = 60, \
+ .ext_power_data_interval = 5, \
+ .time_start_type = WRC_TIME_START_INTERVAL, \
+ .bat_power_send_interval = 1440, \
+ .ext_power_send_interval = 60, \
+ .send_first_time_BCD ={0x05,0x20} , \
+ .timing_send_num = 1, \
+ .timing_send_time_BCD = {{0x05,0x20}}, \
+ .retransmission_interval = 10, \
+ .retransmission_num = 0, \
+ .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 = { \
+ .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 = 15, \
+ .no_use_gas_days = 0, \
+};
+
+
+LOG_SIZHU_HISTORY_CTRL_T log_sizhu_history_ctrl_g = { \
+ .per_month_log.log_addr_save = HISTORY_MONTH_START_ADDR, \
+ .per_day_log.log_addr_save = HISTORY_DAY_START_ADDR, \
+ .per_hour_log.log_addr_save = HISTORY_HOUR_START_ADDR, \
+ .per_interval_log.log_addr_save = HISTORY_INTERVAL_START_ADDR, \
+};
+LOG_ALARM_CTRL_T log_alarm_ctrl_g ={ \
+ .system_alarm_log.log_addr_save = SYSTEM_ALARM_LOG_START_ADDR, \
+};
+LOG_EVENT_CTRL_T log_event_ctrl_g ={ \
+ .valve_operation_log.log_addr_save = VALVE_OPERATION_EVENT_LOG_START_ADDR, \
+ .factory_reset_log.log_addr_save = FACTORY_RESET_EVENT_LOG_START_ADDR, \
+ .set_time_log.log_addr_save = SET_TIME_EVENT_LOG_START_ADDR, \
+};
+LOG_PARA_MODIFY_CTRL_T log_para_modify_ctrl_g = { \
+ .basic_info_modify_log.log_addr_save = BASIC_INFO_MODIFY_LOG_START_ADDR, \
+ .cumulate_modify_log.log_addr_save = CUMULATE_MODIFY_LOG_START_ADDR, \
+ .balance_modify_log.log_addr_save = BALANCE_MODIFY_LOG_START_ADDR, \
+ .flow_meter_para_modify_log.log_addr_save = FLOWMETER_PARA_MODIFY_LOG_START_ADDR, \
+ .conditional_close_valve_para_modify_log.log_addr_save = CONDITIONAL_CLOSE_VALVE_CTRL_MODIFY_LOG_START_ADDR, \
+ .fun_ctrl_word_modify_log.log_addr_save = FUN_CTRL_MODIFY_LOG_START_ADDR, \
+ .alarm_ctrl_word_modify_log.log_addr_save = ALARM_CTRL_MODIFY_LOG_START_ADDR, \
+ .close_valve_ctrl_word_modify_log.log_addr_save = VALVE_CTRL_BYTES_MODIFY_LOG_START_ADDR, \
+};
//EEPROM����д��Ͷ�ȡ���,ֻ֧��1024���ֽڵ�д�����ȡ���
ErrorStatus eepWriteAndReadCheck(uint8_t * write_data,uint32_t addr,uint16_t length)
@@ -20,9 +151,11 @@
if(length >1024)
return FAIL;
+ EEPROM_CTRL_ENABLE;
EEPROM_MultipleWrite(write_data,addr,length);
EEPROM_MultipleRead(buf_l,addr,length);
+ EEPROM_CTRL_DISABLE;
return ucharcmp(write_data,buf_l,length);
}
@@ -31,6 +164,8 @@
ErrorStatus eepABWriteAndReadCheck(uint8_t * write_data,uint32_t addrA,uint32_t addrB,uint16_t length)
{
ErrorStatus return_flag = PASS;
+
+
if(eepWriteAndReadCheck(write_data,addrA,length)==FAIL)
{
if(eepWriteAndReadCheck(write_data,addrA,length)==FAIL)
@@ -51,7 +186,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;
@@ -62,6 +197,7 @@
if(length >1024)
return FAIL;
+ EEPROM_CTRL_ENABLE;
for(count_i=0;count_i< read_times;count_i++)
{
memset (buf_l,0,sizeof (buf_l));
@@ -74,13 +210,15 @@
break;
}
}
+ EEPROM_CTRL_DISABLE;
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
{
+ EEPROM_CTRL_ENABLE;
for(count_i=0;count_i< read_times;count_i++)
{
memset (buf_l,0,sizeof (buf_l));
@@ -96,11 +234,13 @@
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��
+ EEPROM_CTRL_DISABLE;
return PASS;
}else
{
+ EEPROM_CTRL_DISABLE;
return FAIL;
}
}
@@ -150,7 +290,285 @@
}
-//���в�����ʼ��ΪĬ��ֵ��д��EEPROM
+
+//�豸������Ϣ��ʼ��д��
+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;
+ }
+}
+
+
+
+
+
+
+
+//���������ֳ�ʼ��д��
+ErrorStatus CtrlWordParaDefaultInit(void)
+{
+ ErrorStatus return_flag = PASS;
+ SAVE_FUN_CTRL_WORD_T save_fun_ctrl_word_l;
+ SAVE_ALARM_CTRL_WORD_T save_alarm_ctrl_word_l;
+ SAVE_VALVE_CTRL_WORD_T save_valve_ctrl_word_l;
+
+// SYSTEM_FUNCTION_CTRL_WORD_T system_function_ctrl_word_l = { \
+// .fun_ctrl_word.billing_type = 0x02, \
+// };
+// SYSTEM_ALARM_CTRL_WORD_T system_alarm_ctrl_word_l= {.alarm_ctl_word={
+// .system_start = 1,
+// .power_state = 1,
+// .valve_error = 1,
+// .valve_state_change = 1,
+// .set_cumulate_up_to = 1,
+// .no_use_gas_date_up_to = 1,
+// .no_gprs_date_up_to = 1,
+// .balance_small_3 = 1,
+// .lith_low = 1,
+// .lith_down = 1,
+// .lith_remove = 1,
+// .alka_low = 1,
+// .alka_down = 1,
+// .alka_remove = 1,
+// .gprs_status = 1, //Զ��ʧ��ֻ���������ϱ�
+// .RS485_err = 1,
+// .RS485_lessen = 1,
+// .broken_line = 1,
+// .temp_err = 1,
+// .cpu_temp_up = 1,
+// .cpu_temp_down = 1,
+// .press_err = 1,
+// .lcd_up = 1,
+// .cl_have_flow = 1,
+// }
+// };
+//
+// SYSTEM_ALARM_CTRL_WORD_T system_alarm_report_ctrl_word_l= {.alarm_ctl_word={
+// .system_start = 1,
+// .power_state = 1,
+// .valve_error = 1,
+// .valve_state_change = 1,
+// .set_cumulate_up_to = 1,
+// .no_use_gas_date_up_to = 1,
+// .no_gprs_date_up_to = 1,
+// .balance_small_3 = 1,
+// .lith_low = 1,
+// .lith_down = 1,
+// .lith_remove = 1,
+// .alka_low = 1,
+// .alka_down = 1,
+// .alka_remove = 1,
+// //.gprs_status = 1, //Զ��ʧ��ֻ���������ϱ�
+// .RS485_err = 1,
+// .RS485_lessen = 1,
+// .broken_line = 1,
+// .temp_err = 1,
+// .cpu_temp_up = 1,
+// .cpu_temp_down = 1,
+// .press_err = 1,
+// .lcd_up = 1,
+// .cl_have_flow = 1,
+// }
+// };
+//
+// VALVE_CTL_BYTES_UNION_T valve_ctl_bytes_l = {.valve_ctrl_bytes = {
+// {0},
+// {0},
+// {0},
+// {.lith_down_need_close_valve_flag =1,.lith_down_close_valve_type = 1,.lith_remove_need_close_valve_flag =1,.lith_remove_close_valve_type =1,
+// //.alka_down_need_close_valve_flag= 1,.alka_down_close_valve_type = 1,.alka_remove_need_close_valve_flag =1,.alka_remove_close_valve_type =1,
+// },
+// {0},
+// {0},
+// {0},
+// {0},
+// {0},
+// {0},
+// {0},}
+// };
+
+ arrayA_2_arrayB((uint8_t*)&system_function_ctrl_word_g,(uint8_t*)&save_fun_ctrl_word_l.fun_ctrl_word,sizeof(system_function_ctrl_word_g),LITTLE_ENDIAN);
+ arrayA_2_arrayB((uint8_t*)&system_alarm_ctrl_word_g,(uint8_t*)&save_alarm_ctrl_word_l.alarm_ctrl_word,sizeof(system_alarm_ctrl_word_g),LITTLE_ENDIAN);
+ arrayA_2_arrayB((uint8_t*)&system_alarm_report_ctrl_word_g,(uint8_t*)&save_alarm_ctrl_word_l.alarm_report_ctrl_word,sizeof(system_alarm_report_ctrl_word_g),LITTLE_ENDIAN);
+ arrayA_2_arrayB((uint8_t*)&valve_ctl_bytes_g,(uint8_t*)&save_valve_ctrl_word_l.valve_ctrl_word,sizeof(valve_ctl_bytes_g),LITTLE_ENDIAN);
+
+
+ if(paraCalcCrcAndWriteEepAB((uint8_t * )&save_fun_ctrl_word_l,SYSTEM_FUNCTION_CTRL_WORD_ADDR,SYSTEM_FUNCTION_CTRL_WORD_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(save_fun_ctrl_word_l))==FAIL)
+ return_flag = FAIL;
+ if(paraCalcCrcAndWriteEepAB((uint8_t * )&save_alarm_ctrl_word_l,SYSTEM_ALARM_CTRL_WORD_ADDR,SYSTEM_ALARM_CTRL_WORD_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(save_alarm_ctrl_word_l))==FAIL)
+ return_flag = FAIL;
+ if(paraCalcCrcAndWriteEepAB((uint8_t * )&save_valve_ctrl_word_l,VALVE_CTL_BYTES_ADDR,VALVE_CTL_BYTES_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(save_valve_ctrl_word_l))==FAIL)
+ return_flag = FAIL;
+
+ return return_flag;
+}
+
+//���������ֶ�ȡ
+ErrorStatus CtrlWordParaReadFromEep(void)
+{
+ ErrorStatus return_flag = PASS;
+ SAVE_FUN_CTRL_WORD_T save_fun_ctrl_word_l;
+ SAVE_ALARM_CTRL_WORD_T save_alarm_ctrl_word_l;
+ SAVE_VALVE_CTRL_WORD_T save_valve_ctrl_word_l;
+ if( eepABReadCheck((uint8_t * )&save_fun_ctrl_word_l,SYSTEM_FUNCTION_CTRL_WORD_ADDR,SYSTEM_FUNCTION_CTRL_WORD_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(save_fun_ctrl_word_l)) == FAIL)
+ {
+ return_flag = FAIL;
+ }else
+ {
+ arrayA_2_arrayB((uint8_t*)&save_fun_ctrl_word_l.fun_ctrl_word,(uint8_t*)&system_function_ctrl_word_g,sizeof(system_function_ctrl_word_g),LITTLE_ENDIAN);
+ }
+
+ if( eepABReadCheck((uint8_t * )&save_alarm_ctrl_word_l,SYSTEM_ALARM_CTRL_WORD_ADDR,SYSTEM_ALARM_CTRL_WORD_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(save_alarm_ctrl_word_l)) == FAIL)
+ {
+ return_flag = FAIL;
+ }else
+ {
+ arrayA_2_arrayB((uint8_t*)&save_alarm_ctrl_word_l.alarm_ctrl_word,(uint8_t*)&system_alarm_ctrl_word_g,sizeof(system_alarm_ctrl_word_g),LITTLE_ENDIAN);
+ arrayA_2_arrayB((uint8_t*)&save_alarm_ctrl_word_l.alarm_report_ctrl_word,(uint8_t*)&system_alarm_report_ctrl_word_g,sizeof(system_alarm_report_ctrl_word_g),LITTLE_ENDIAN);
+ }
+
+ if( eepABReadCheck((uint8_t * )&save_valve_ctrl_word_l,VALVE_CTL_BYTES_ADDR,VALVE_CTL_BYTES_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(save_valve_ctrl_word_l)) == FAIL)
+ {
+ return_flag = FAIL;
+ }else
+ {
+ arrayA_2_arrayB((uint8_t*)&save_valve_ctrl_word_l.valve_ctrl_word,(uint8_t*)&valve_ctl_bytes_g,sizeof(valve_ctl_bytes_g),LITTLE_ENDIAN);
+ }
+}
+
+
+
+//��־���Ʋ�����ʼ��д��
+ErrorStatus LogCtrlParaDefaultInit(void)
+{
+ ErrorStatus return_flag = PASS;
+ log_sizhu_history_ctrl_g.per_month_log.log_count = 0;
+ log_sizhu_history_ctrl_g.per_month_log.log_addr_save = HISTORY_MONTH_START_ADDR;
+ log_sizhu_history_ctrl_g.per_day_log.log_count = 0;
+ log_sizhu_history_ctrl_g.per_day_log.log_addr_save = HISTORY_DAY_START_ADDR;
+ log_sizhu_history_ctrl_g.per_hour_log.log_count = 0;
+ log_sizhu_history_ctrl_g.per_hour_log.log_addr_save = HISTORY_HOUR_START_ADDR;
+ log_sizhu_history_ctrl_g.per_interval_log.log_count = 0;
+ log_sizhu_history_ctrl_g.per_interval_log.log_addr_save = HISTORY_INTERVAL_START_ADDR;
+
+ log_alarm_ctrl_g.system_alarm_log.log_count = 0;
+ log_alarm_ctrl_g.system_alarm_log.log_addr_save = SYSTEM_ALARM_LOG_START_ADDR;
+
+ log_event_ctrl_g.valve_operation_log.log_count = 0;
+ log_event_ctrl_g.valve_operation_log.log_addr_save = VALVE_OPERATION_EVENT_LOG_START_ADDR;
+ log_event_ctrl_g.factory_reset_log.log_count = 0;
+ log_event_ctrl_g.factory_reset_log.log_addr_save = FACTORY_RESET_EVENT_LOG_START_ADDR;
+ log_event_ctrl_g.set_time_log.log_count = 0;
+ log_event_ctrl_g.set_time_log.log_addr_save = SET_TIME_EVENT_LOG_START_ADDR;
+
+ log_para_modify_ctrl_g.basic_info_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.basic_info_modify_log.log_addr_save = BASIC_INFO_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.cumulate_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.cumulate_modify_log.log_addr_save = CUMULATE_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.balance_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.balance_modify_log.log_addr_save = BALANCE_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.flow_meter_para_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.flow_meter_para_modify_log.log_addr_save = FLOWMETER_PARA_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.conditional_close_valve_para_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.conditional_close_valve_para_modify_log.log_addr_save = CONDITIONAL_CLOSE_VALVE_CTRL_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.fun_ctrl_word_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.fun_ctrl_word_modify_log.log_addr_save = FUN_CTRL_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.alarm_ctrl_word_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.alarm_ctrl_word_modify_log.log_addr_save = ALARM_CTRL_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.close_valve_ctrl_word_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.close_valve_ctrl_word_modify_log.log_addr_save = VALVE_CTRL_BYTES_MODIFY_LOG_START_ADDR;
+
+
+ if(paraCalcCrcAndWriteEepAB((uint8_t * )&log_sizhu_history_ctrl_g,LOG_SIZHU_HISTORY_CTRL_ADDR,LOG_SIZHU_HISTORY_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_sizhu_history_ctrl_g))==FAIL)
+ return_flag = FAIL;
+ if(paraCalcCrcAndWriteEepAB((uint8_t * )&log_alarm_ctrl_g,LOG_ALARM_CTRL_ADDR,LOG_ALARM_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_alarm_ctrl_g))==FAIL)
+ return_flag = FAIL;
+ if(paraCalcCrcAndWriteEepAB((uint8_t * )&log_event_ctrl_g,LOG_EVENT_CTRL_ADDR,LOG_EVENT_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_event_ctrl_g))==FAIL)
+ return_flag = FAIL;
+ if(paraCalcCrcAndWriteEepAB((uint8_t * )&log_para_modify_ctrl_g,LOG_PARA_MODIFY_CTRL_ADDR,LOG_PARA_MODIFY_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_para_modify_ctrl_g))==FAIL)
+ return_flag = FAIL;
+
+ return return_flag;
+}
+//��־���Ʋ�����ʼ����ȡ
+ErrorStatus LogCtrlParaReadFromEep(void)
+{
+ ErrorStatus return_flag = PASS;
+
+ if( eepABReadCheck((uint8_t * )&log_sizhu_history_ctrl_g,LOG_SIZHU_HISTORY_CTRL_ADDR,LOG_SIZHU_HISTORY_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_sizhu_history_ctrl_g)) == FAIL)
+ {
+ log_sizhu_history_ctrl_g.per_month_log.log_count = 0;
+ log_sizhu_history_ctrl_g.per_month_log.log_addr_save = HISTORY_MONTH_START_ADDR;
+ log_sizhu_history_ctrl_g.per_day_log.log_count = 0;
+ log_sizhu_history_ctrl_g.per_day_log.log_addr_save = HISTORY_DAY_START_ADDR;
+ log_sizhu_history_ctrl_g.per_hour_log.log_count = 0;
+ log_sizhu_history_ctrl_g.per_hour_log.log_addr_save = HISTORY_HOUR_START_ADDR;
+ log_sizhu_history_ctrl_g.per_interval_log.log_count = 0;
+ log_sizhu_history_ctrl_g.per_interval_log.log_addr_save = HISTORY_INTERVAL_START_ADDR;
+ paraCalcCrcAndWriteEepAB((uint8_t * )&log_sizhu_history_ctrl_g,LOG_SIZHU_HISTORY_CTRL_ADDR,LOG_SIZHU_HISTORY_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_sizhu_history_ctrl_g));
+ return_flag = FAIL;
+ }
+ if( eepABReadCheck((uint8_t * )&log_alarm_ctrl_g,LOG_ALARM_CTRL_ADDR,LOG_ALARM_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_alarm_ctrl_g)) == FAIL)
+ {
+ log_alarm_ctrl_g.system_alarm_log.log_count = 0;
+ log_alarm_ctrl_g.system_alarm_log.log_addr_save = SYSTEM_ALARM_LOG_START_ADDR;
+ paraCalcCrcAndWriteEepAB((uint8_t * )&log_alarm_ctrl_g,LOG_ALARM_CTRL_ADDR,LOG_ALARM_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_alarm_ctrl_g));
+ return_flag = FAIL;
+ }
+ if( eepABReadCheck((uint8_t * )&log_event_ctrl_g,LOG_EVENT_CTRL_ADDR,LOG_EVENT_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_event_ctrl_g)) == FAIL)
+ {
+ log_event_ctrl_g.valve_operation_log.log_count = 0;
+ log_event_ctrl_g.valve_operation_log.log_addr_save = VALVE_OPERATION_EVENT_LOG_START_ADDR;
+ log_event_ctrl_g.factory_reset_log.log_count = 0;
+ log_event_ctrl_g.factory_reset_log.log_addr_save = FACTORY_RESET_EVENT_LOG_START_ADDR;
+ log_event_ctrl_g.set_time_log.log_count = 0;
+ log_event_ctrl_g.set_time_log.log_addr_save = SET_TIME_EVENT_LOG_START_ADDR;
+ paraCalcCrcAndWriteEepAB((uint8_t * )&log_event_ctrl_g,LOG_EVENT_CTRL_ADDR,LOG_EVENT_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_event_ctrl_g));
+ return_flag = FAIL;
+ }
+ if( eepABReadCheck((uint8_t * )&log_para_modify_ctrl_g,LOG_PARA_MODIFY_CTRL_ADDR,LOG_PARA_MODIFY_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_para_modify_ctrl_g)) == FAIL)
+ {
+ log_para_modify_ctrl_g.basic_info_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.basic_info_modify_log.log_addr_save = BASIC_INFO_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.cumulate_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.cumulate_modify_log.log_addr_save = CUMULATE_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.balance_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.balance_modify_log.log_addr_save = BALANCE_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.flow_meter_para_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.flow_meter_para_modify_log.log_addr_save = FLOWMETER_PARA_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.conditional_close_valve_para_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.conditional_close_valve_para_modify_log.log_addr_save = CONDITIONAL_CLOSE_VALVE_CTRL_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.fun_ctrl_word_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.fun_ctrl_word_modify_log.log_addr_save = FUN_CTRL_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.alarm_ctrl_word_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.alarm_ctrl_word_modify_log.log_addr_save = ALARM_CTRL_MODIFY_LOG_START_ADDR;
+ log_para_modify_ctrl_g.close_valve_ctrl_word_modify_log.log_count = 0;
+ log_para_modify_ctrl_g.close_valve_ctrl_word_modify_log.log_addr_save = VALVE_CTRL_BYTES_MODIFY_LOG_START_ADDR;
+ paraCalcCrcAndWriteEepAB((uint8_t * )&log_para_modify_ctrl_g,LOG_PARA_MODIFY_CTRL_ADDR,LOG_PARA_MODIFY_CTRL_ADDR + PARA_EEP_B_OFFSET_ADDR,sizeof(log_para_modify_ctrl_g));
+ return_flag = FAIL;
+ }
+
+
+ return return_flag;
+}
+
+
+
+
+
+//?���в�����ʼ��ΪĬ��ֵ��д��EEPROM
void allParaDefaultInit(void)
{
ErrorStatus return_flag = PASS;
@@ -159,18 +577,29 @@
//�豸������Ϣ��ʼ��д��
+ if(EquipmentBasicInfoDefaultInit()==FAIL) return_flag = FAIL;
+ //?��������
//ʵʱ���ݳ�ʼ��д��
- //�����ж�return_flag==FAIL�����洢�쳣�����������������Ļ�
+ //���������ֳ�ʼ��д��
+ if(CtrlWordParaDefaultInit()==FAIL) return_flag = FAIL;
+ //��־���Ʋ���
+ if(LogCtrlParaDefaultInit()==FAIL) return_flag = FAIL;
+
+
+ //�����ж�return_flag==FAIL�����洢�쳣�����������������Ļ�
+ if(return_flag==FAIL){
+ ;
+ }
}
-//���в���ֱ�Ӷ�ȡ
+//?���в���ֱ�Ӷ�ȡ
void allParaReadFromEep(void)
{
ErrorStatus return_flag = PASS;
@@ -178,9 +607,20 @@
if(systemEepIdReadFromEep()==FAIL) return_flag = FAIL;
//�豸������Ϣ��ȡ
+ if(EquipmentBasicInfoReadFromEep()==FAIL) return_flag = FAIL;
+
+
+ //?��������
+ //���������ֶ�ȡ
+ if(CtrlWordParaReadFromEep()==FAIL) return_flag = FAIL;
+
+ //��־������Ϣ��ȡ
+ if(LogCtrlParaReadFromEep()==FAIL) return_flag = FAIL;
//�����ж�return_flag==FAIL�����洢�쳣�����������������Ļ�
-
+ if(return_flag==FAIL){
+ ;
+ }
}
--
Gitblit v1.9.3