From 6e3f1f560d618b37ee1a47fa2b0f682b70c3ef1c Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Wed, 19 Jun 2024 17:25:45 +0800
Subject: [PATCH] 增加OTA协议

---
 Function/STORAGE/sizhu_history_record.c |   76 +++++++++++++++++++++++++++++++++++---
 1 files changed, 70 insertions(+), 6 deletions(-)

diff --git a/Function/STORAGE/sizhu_history_record.c b/Function/STORAGE/sizhu_history_record.c
index c162f91..2edd5f7 100644
--- a/Function/STORAGE/sizhu_history_record.c
+++ b/Function/STORAGE/sizhu_history_record.c
@@ -7,7 +7,7 @@
 #include "system_eep_mem_manage.h"
 
 
-
+FlagStatus interval_report_record_flag = RESET;
 
 
 
@@ -15,7 +15,7 @@
 uint32_t sizhu_historical_record_read(uint8_t logtype, uint32_t addr, SIZHU_HISTORY_MDH_T * log_run_ptr)
 {
 	
-//	u32		addr_save;
+	u32		addr_save = 0;
 //	
 //	//addr_save = addr_length;
 //	if(logtype == LOG_SIZHU_HOUR_TYPE)
@@ -79,7 +79,7 @@
 //	
 ////	eeprom_multiple_data_read( (uint8_t *)&ufg620_log_g,addr_save, sizeof(SIZHU_HISTORY_MDH_T) );
 //	
-//	return addr_save;	
+	return addr_save;	
 
 
 }
@@ -89,7 +89,12 @@
 {
 	SIZHU_HISTORY_INTERVAL_T	sizhu_history_interval_l;
 	
+//	return;  //?û�������ԣ�������
+	
 	arrayA_2_arrayB((uint8_t *)&sys_clockBCD_g,(uint8_t *)&sizhu_history_interval_l.record_time_BCD,sizeof(sys_clockBCD_g), LITTLE_ENDIAN);
+	
+	//���⴦��������С��20ʱ�����ӹ�0��Ϊ���ϱ�ƽ̨�Ķ���ʱ������ÿ�
+	sizhu_history_interval_l.record_time_BCD.sec = (sizhu_history_interval_l.record_time_BCD.sec < 0x20)? 0: sizhu_history_interval_l.record_time_BCD.sec;
 	
 	sizhu_history_interval_l.forward_cumulate_sc = save_realtime_data_g.realtime_flow_data_s.forward_cumulate_sc; // �������ۻ���
 	sizhu_history_interval_l.forward_cumulate_wc = save_realtime_data_g.realtime_flow_data_s.forward_cumulate_wc;
@@ -114,8 +119,7 @@
 	
 	FlashMultipleWriteAndReadCheck((uint8_t *)&sizhu_history_interval_l,log_sizhu_history_ctrl_g.per_interval_log.log_addr_save,sizeof(SIZHU_HISTORY_INTERVAL_T));
 		
-	FLASH_LOG_CRTL_PARA_HANDLE(log_sizhu_history_ctrl_g.per_interval_log,HISTORY_INTERVAL_START_ADDR,sizeof(SIZHU_HISTORY_INTERVAL_T),HISTORY_INTERVAL_MAX_NUM);
-	 	 
+	FLASH_LOG_CRTL_PARA_HANDLE(log_sizhu_history_ctrl_g.per_interval_log,HISTORY_INTERVAL_START_ADDR,sizeof(SIZHU_HISTORY_INTERVAL_T),HISTORY_INTERVAL_MAX_NUM);	 	 
 	//?�����洢
 	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){
 		
@@ -127,7 +131,11 @@
 {
 	SIZHU_HISTORY_MDH_T	sizhu_history_l;
 	
+	return;  //?û�������ԣ�������
+	
 	arrayA_2_arrayB((uint8_t *)&sys_clockBCD_g,(uint8_t *)&sizhu_history_l.record_time_BCD,sizeof(sys_clockBCD_g), LITTLE_ENDIAN);
+	//���⴦�����ӹ�0��Ϊ�˹����ÿ�
+	sizhu_history_l.record_time_BCD.sec = 0;
 	
 	sizhu_history_l.forward_cumulate_sc = save_realtime_data_g.realtime_flow_data_s.forward_cumulate_sc; // �������ۻ���
 	sizhu_history_l.forward_cumulate_wc = save_realtime_data_g.realtime_flow_data_s.forward_cumulate_wc;
@@ -169,11 +177,61 @@
 	}
 }
 
+void HistoryRecordTest(void)
+{
+	static uint8_t  test_start_flag =0;
+	ErrorStatus	test_Status = PASS;
+	uint16_t	count_i = 0;
+	uint16_t	record_num = 0;
+	uint16_t	have_record_num = 0;
+	uint32_t	read_addr;
+	uint32_t	err_addr;
+	uint32_t	err_count;
+	
+	SIZHU_HISTORY_INTERVAL_T	history_interval_l;
+	
+	
+	
+	if(test_start_flag == 1){
+		test_start_flag = 0;
+		//�����¼����
+		have_record_num = 0;
+		record_num = log_sizhu_history_ctrl_g.per_interval_log.log_count;
+		read_addr = log_sizhu_history_ctrl_g.per_interval_log.log_addr_save;
+		for(count_i = 0;count_i < record_num;count_i++){
+				have_record_num ++;
+			
+			if(read_addr <= HISTORY_INTERVAL_START_ADDR)
+				read_addr = HISTORY_INTERVAL_END_ADDR;
+			else
+				read_addr -= HISTORY_INTERVAL_LENGTH;
+			
+			if(FlashMultipleReadAndCrcCheck((uint8_t *)&history_interval_l,read_addr,HISTORY_INTERVAL_LENGTH)== PASS){
+				
+			}else{
+				test_Status = FAIL;
+				break;
+			}
+			
+		}
+		
+		if(test_Status == FAIL){
+			err_addr = read_addr;
+			err_count = log_sizhu_history_ctrl_g.per_interval_log.log_count - count_i;
+		}
+		
+	}
+	
+	
+	
+	
+}
+
 
 
 void sizhuHistoryRecord(sClockBCD sys_clockBCD_in)
 {
-	static FlagStatus hour_record_flag = RESET,day_record_flag = RESET,month_record_flag = RESET,interval_report_record_flag = RESET;
+	static FlagStatus hour_record_flag = RESET,day_record_flag = RESET,month_record_flag = RESET;
 	
 	uint16_t	IntervalTime;
 	uint8_t first_time[2] = {0,0};
@@ -203,6 +261,9 @@
 		//��������ϱ��洢
 		interval_report_record_flag = RESET;
 		sizhuIntervalHistoryRecord();
+		
+		wrc_data_num_ctrl_para_sizhu_g.report_data_save_num ++;
+		//?�洢
 	}
 	
 
@@ -224,5 +285,8 @@
 		sizhuMDHHistoryRecord(HISTORY_TYPE_MONTH);
 	}
 	
+	
+	HistoryRecordTest(); //?���Ժ�������������Ҫע��
+	
 }
 

--
Gitblit v1.9.3