From e4424eb6b50d0300583c422dfb71d58e040f4b9e Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Tue, 11 Jun 2024 19:54:37 +0800
Subject: [PATCH] 继续测试优化

---
 Function/STORAGE/sizhu_alarm_record.c |  129 ++++++++++++++++++++++--------------------
 1 files changed, 68 insertions(+), 61 deletions(-)

diff --git a/Function/STORAGE/sizhu_alarm_record.c b/Function/STORAGE/sizhu_alarm_record.c
index 07072bc..c9b9797 100644
--- a/Function/STORAGE/sizhu_alarm_record.c
+++ b/Function/STORAGE/sizhu_alarm_record.c
@@ -1,60 +1,15 @@
 #include "sizhu_alarm_record.h"
 #include "sizhu_ctrl_word.h"
-#include "eeprom.h"
+#include "system_mem_para.h"
+#include "rs485_data_analysis_pro.h"
+#include "power_manage.h"
+#include "mbcrc1.h"
+#include "system_flash_mem_manage.h"
+#include "system_eep_mem_manage.h"
 
-LOG_ALARM_CTRL_T log_alarm_para_g;
 //ALARM_REPORT_PARA_T alarm_report_para_g;
 
 
-/******************************************
- * func: system_alarm_log_eeprom_default_init
-* desc: ������־�洢������ʼ��ΪĬ��ֵ
- * input: none
- * output: none
- * return: none
- *****************************************/
-uint8_t system_alarm_log_eeprom_default_init(void)
-{
-//	log_alarm_para_g.system_alarm_log.log_count            = 0;
-//	log_alarm_para_g.system_alarm_log.log_addr_save        = SYSTEM_ALARM_LOG_STORAGE_START_ADDR;
-//	EEPROM_data_write_uint16 ( log_alarm_para_g.system_alarm_log.log_count, SYSTEM_ALARM_LOG_COUNT_ADDR );
-//	EEPROM_data_write_uint32 ( log_alarm_para_g.system_alarm_log.log_addr_save, SYSTEM_ALARM_LOG_SAVE_ADDR );
-//	
-//	log_alarm_para_g.class_measure_abn.log_count            = 0;
-//	log_alarm_para_g.class_measure_abn.log_addr_save        = MEASURE_ALARM_LOG_STORAGE_START_ADDR;
-//	EEPROM_data_write_uint16 ( log_alarm_para_g.class_measure_abn.log_count, MEASURE_ALARM_LOG_COUNT_ADDR );
-//	EEPROM_data_write_uint32 ( log_alarm_para_g.class_measure_abn.log_addr_save, MEASURE_ALARM_LOG_SAVE_ADDR );
-
-//	log_alarm_para_g.valve_action_log.log_count            = 0;
-//	log_alarm_para_g.valve_action_log.log_addr_save        = VALVE_ACTION_LOG_STORAGE_START_ADDR;
-//	EEPROM_data_write_uint16 ( log_alarm_para_g.valve_action_log.log_count, VALVE_ACTION_LOG_COUNT_ADDR );
-//	EEPROM_data_write_uint32 ( log_alarm_para_g.valve_action_log.log_addr_save, VALVE_ACTION_LOG_SAVE_ADDR );	
-	return 0;	
-}
-
-
-
-
-/******************************************
- * func: system_alarm_log_eeprom_default_init
-* desc: ������־�洢�����Ӵ洢�л�ȡ
- * input: none
- * output: none
- * return: none
- *****************************************/
-uint8_t system_alarm_log_record_only_read_init(void)
-{
-
-//	log_alarm_para_g.system_alarm_log.log_count            = eeprom_data_read_uint16 (  SYSTEM_ALARM_LOG_COUNT_ADDR );
-//	log_alarm_para_g.system_alarm_log.log_addr_save        = eeprom_data_read_uint32 (  SYSTEM_ALARM_LOG_SAVE_ADDR );
-//	
-//	if((log_alarm_para_g.system_alarm_log.log_addr_save > SYSTEM_ALARM_LOG_STORAGE_END_ADDR)||(log_alarm_para_g.system_alarm_log.log_addr_save < SYSTEM_ALARM_LOG_STORAGE_START_ADDR))
-//	{
-//		log_alarm_para_g.system_alarm_log.log_count            = 0;
-//		log_alarm_para_g.system_alarm_log.log_addr_save        = SYSTEM_ALARM_LOG_STORAGE_START_ADDR;
-//	}
-	return 0;	
-}
 
 
 /******************************************
@@ -68,26 +23,26 @@
 {
 //	void	*alarm_ptr;
 //	
-//	eeprom_multiple_data_write( (uint8_t *)para_alarm_ptr, log_alarm_para_g.system_alarm_log.log_addr_save, SYSTEM_ALARM_LOG_STORAGE_LENGTH );
+//	eeprom_multiple_data_write( (uint8_t *)para_alarm_ptr, log_alarm_ctrl_g.system_alarm_log.log_addr_save, SYSTEM_ALARM_LOG_STORAGE_LENGTH );
 //			
-//	if((log_alarm_para_g.system_alarm_log.log_addr_save >= SYSTEM_ALARM_LOG_STORAGE_END_ADDR)||(log_alarm_para_g.system_alarm_log.log_addr_save < SYSTEM_ALARM_LOG_STORAGE_START_ADDR))
+//	if((log_alarm_ctrl_g.system_alarm_log.log_addr_save >= SYSTEM_ALARM_LOG_STORAGE_END_ADDR)||(log_alarm_ctrl_g.system_alarm_log.log_addr_save < SYSTEM_ALARM_LOG_STORAGE_START_ADDR))
 //	{
-//		log_alarm_para_g.system_alarm_log.log_addr_save = SYSTEM_ALARM_LOG_STORAGE_START_ADDR; 			
+//		log_alarm_ctrl_g.system_alarm_log.log_addr_save = SYSTEM_ALARM_LOG_STORAGE_START_ADDR; 			
 //	}else
 //	{
-//		log_alarm_para_g.system_alarm_log.log_addr_save =  log_alarm_para_g.system_alarm_log.log_addr_save + SYSTEM_ALARM_LOG_STORAGE_LENGTH;
+//		log_alarm_ctrl_g.system_alarm_log.log_addr_save =  log_alarm_ctrl_g.system_alarm_log.log_addr_save + SYSTEM_ALARM_LOG_STORAGE_LENGTH;
 //	}
 //	
-//	if(log_alarm_para_g.system_alarm_log.log_count >= SYSTEM_ALARM_LOG_NUM)
+//	if(log_alarm_ctrl_g.system_alarm_log.log_count >= SYSTEM_ALARM_LOG_NUM)
 //	{			
-//		log_alarm_para_g.system_alarm_log.log_count  = SYSTEM_ALARM_LOG_NUM;			
+//		log_alarm_ctrl_g.system_alarm_log.log_count  = SYSTEM_ALARM_LOG_NUM;			
 //	}else
 //	{
-//		log_alarm_para_g.system_alarm_log.log_count  ++;			
+//		log_alarm_ctrl_g.system_alarm_log.log_count  ++;			
 //	}
 //	
-//	EEPROM_data_write_uint16 ( log_alarm_para_g.system_alarm_log.log_count, SYSTEM_ALARM_LOG_COUNT_ADDR );
-//	EEPROM_data_write_uint32 ( log_alarm_para_g.system_alarm_log.log_addr_save, SYSTEM_ALARM_LOG_SAVE_ADDR );
+//	EEPROM_data_write_uint16 ( log_alarm_ctrl_g.system_alarm_log.log_count, SYSTEM_ALARM_LOG_COUNT_ADDR );
+//	EEPROM_data_write_uint32 ( log_alarm_ctrl_g.system_alarm_log.log_addr_save, SYSTEM_ALARM_LOG_SAVE_ADDR );
 	return 0;
 }
 
@@ -153,7 +108,59 @@
 
 
 
-
+/*������¼�洢
+*�и�������⣬Ŀǰϣ�����һֱ���ӣ�������Ϊ��Ҫû�д洢EEP������ֻ�ܶ�ȡ��һ����¼������һ����¼�Ļ�����+1
+*/
+void sizhuAlarmRecord(ALARM_TRIGGER_TYPE trigger_type,uint16_t alarm_id)
+{
+	LOG_SIZHU_SYS_ALARM_SAVE_T	sizhu_alarm_log_l;
+	LOG_SIZHU_SYS_ALARM_SAVE_T	previous_log_l;
+	uint32_t	previous_addr = 0;
+	
+	return;  //?û�������ԣ�������
+	
+	arrayA_2_arrayB((uint8_t *)&sys_clockBCD_g,(uint8_t *)&sizhu_alarm_log_l.record_time_BCD,sizeof(sys_clockBCD_g), LITTLE_ENDIAN);
+	
+	sizhu_alarm_log_l.forward_cumulate_sc = save_realtime_data_g.realtime_flow_data_s.forward_cumulate_sc; // �������ۻ���
+	sizhu_alarm_log_l.forward_cumulate_wc = save_realtime_data_g.realtime_flow_data_s.forward_cumulate_wc;
+	sizhu_alarm_log_l.instant_sc = flow_meter_data_g.instant_sc;
+	sizhu_alarm_log_l.instant_wc = flow_meter_data_g.instant_wc;   
+	sizhu_alarm_log_l.temperature = flow_meter_data_g.temperature;	
+	sizhu_alarm_log_l.pressure = flow_meter_data_g.pressure;
+	sizhu_alarm_log_l.ambient_tem = pwr_vol_g.mcu_temperature;
+	sizhu_alarm_log_l.lith_bat_v = pwr_vol_g.lith_vcc * 10;
+	sizhu_alarm_log_l.alka_bat_v = pwr_vol_g.alka_vcc * 10;
+	arrayA_2_arrayB((uint8_t *)&system_status_word_g.status_word_union,(uint8_t *)&sizhu_alarm_log_l.status_word,sizeof(SYSTEM_STATUS_WORD_T), LITTLE_ENDIAN);
+	sizhu_alarm_log_l.current_price = save_realtime_data_g.realtime_billing_data_s.price_now;
+	sizhu_alarm_log_l.residual_amount = save_realtime_data_g.realtime_billing_data_s.balance_now;
+	
+	switch(trigger_type){
+	case ALARM_HAPPEN:sizhu_alarm_log_l.alarm_id = alarm_id;break; 
+	case ALARM_END:sizhu_alarm_log_l.alarm_id = 0x1000+alarm_id;break;   //+0x1000������������ʶ���4λΪ1  
+	default : break;
+	}
+	
+	FLASH_LOG_ADDR_CHECK(log_alarm_ctrl_g.system_alarm_log,SYSTEM_ALARM_LOG_START_ADDR,SYSTEM_ALARM_LOG_LENGTH,SYSTEM_ALARM_LOG_MAX_NUM);
+	if(log_alarm_ctrl_g.system_alarm_log.log_count != 0){
+		previous_addr = FlashLogPreviousAddrGet(log_alarm_ctrl_g.system_alarm_log.log_addr_save,SYSTEM_ALARM_LOG_START_ADDR,SYSTEM_ALARM_LOG_LENGTH,SYSTEM_ALARM_LOG_END_ADDR);
+		if(FlashMultipleReadAndCrcCheck((uint8_t *)&previous_log_l,previous_addr,SYSTEM_ALARM_LOG_LENGTH)== PASS)
+			sizhu_alarm_log_l.serial_number = previous_log_l.serial_number +1;
+		else
+			sizhu_alarm_log_l.serial_number = 0;
+	}else{
+		sizhu_alarm_log_l.serial_number = 0;
+	}
+	
+	//����CRC
+	sizhu_alarm_log_l.CRC16_MODBUS = usMBCRC16(0xFFFF, (uint8_t * )&sizhu_alarm_log_l.record_time_BCD, sizeof(LOG_SIZHU_SYS_ALARM_SAVE_T) - sizeof(sizhu_alarm_log_l.CRC16_MODBUS) );
+	
+	FlashMultipleWriteAndReadCheck((uint8_t *)&sizhu_alarm_log_l,log_alarm_ctrl_g.system_alarm_log.log_addr_save,SYSTEM_ALARM_LOG_LENGTH);
+	FLASH_LOG_CRTL_PARA_HANDLE(log_alarm_ctrl_g.system_alarm_log,SYSTEM_ALARM_LOG_START_ADDR,SYSTEM_ALARM_LOG_LENGTH,SYSTEM_ALARM_LOG_MAX_NUM);
+	//?�����洢
+	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){
+		
+	}
+}
 
 
 

--
Gitblit v1.9.3