From b39a40b0191e0a8b155db74e885ff66e17b91896 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Thu, 06 Jun 2024 19:25:15 +0800
Subject: [PATCH] 继续完善

---
 Function/STORAGE/system_mem_para.c |  384 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 360 insertions(+), 24 deletions(-)

diff --git a/Function/STORAGE/system_mem_para.c b/Function/STORAGE/system_mem_para.c
index 0a66459..ad36ccd 100644
--- a/Function/STORAGE/system_mem_para.c
+++ b/Function/STORAGE/system_mem_para.c
@@ -3,11 +3,21 @@
 #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;
+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,};
 
@@ -16,21 +26,24 @@
 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_conn_type = FLOW_METER_CONN_RS485, \
+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, };
+	.slave_address = 1, 													\
+	.broken_line_multiplex = BROKEN_LINE_MUTIPLEX_NONE,    \
+};
 
-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 +56,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,21 +71,20 @@
 	.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},            \
 };
 
-UP_COMM_PARA_T	up_comm_para_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},          								\
+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},         				  			\
@@ -91,16 +103,45 @@
 	.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,         								\
 };
 
+
+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)
@@ -141,7 +182,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;
@@ -167,7 +208,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
 	{
@@ -186,7 +227,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
@@ -240,6 +281,284 @@
 }
 
 
+
+//�豸������Ϣ��ʼ��д��
+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)
 {
@@ -249,15 +568,23 @@
 	
 	
 	//�豸������Ϣ��ʼ��д��
+	if(EquipmentBasicInfoDefaultInit()==FAIL) return_flag = FAIL;
 	
-	
-	//?�������䣬����������־�洢�IJ���
-	
+	//?��������
 	
 	//ʵʱ���ݳ�ʼ��д��
 	
-	//�����ж�return_flag==FAIL���򱨾��洢�쳣�����������������Ļ�
+	//���������ֳ�ʼ��д��
+	if(CtrlWordParaDefaultInit()==FAIL) return_flag = FAIL;
 	
+	//��־���Ʋ���
+	if(LogCtrlParaDefaultInit()==FAIL) return_flag = FAIL;
+
+	
+	//�����ж�return_flag==FAIL���򱨾��洢�쳣�����������������Ļ�
+	if(return_flag==FAIL){
+		;
+	}
 }
 
 
@@ -271,11 +598,20 @@
 	if(systemEepIdReadFromEep()==FAIL) return_flag = FAIL;
 	
 	//�豸������Ϣ��ȡ
+	if(EquipmentBasicInfoReadFromEep()==FAIL) return_flag = FAIL;
 	
-	//?�������䣬����������־�洢�IJ���
+
+	//?��������
+	//���������ֶ�ȡ
+	if(CtrlWordParaReadFromEep()==FAIL) return_flag = FAIL;
+	
+	//��־������Ϣ��ȡ
+	if(LogCtrlParaReadFromEep()==FAIL) return_flag = FAIL;
 	
 	//�����ж�return_flag==FAIL���򱨾��洢�쳣�����������������Ļ�
-	
+	if(return_flag==FAIL){
+		;
+	}
 }
 
 

--
Gitblit v1.9.3