From fa6053f85287163f6e2d5dba690bec05cbc95f4a Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 07 Jun 2024 17:00:49 +0800
Subject: [PATCH] 增加阀控事件记录及修改阀控命令
---
Function/STORAGE/sizhu_history_record.c | 478 ++++++++++++++++-------------------------------------------
1 files changed, 132 insertions(+), 346 deletions(-)
diff --git a/Function/STORAGE/sizhu_history_record.c b/Function/STORAGE/sizhu_history_record.c
index e964dce..c0a1840 100644
--- a/Function/STORAGE/sizhu_history_record.c
+++ b/Function/STORAGE/sizhu_history_record.c
@@ -1,342 +1,21 @@
#include "sizhu_history_record.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_SIZHU_HISTORY_CTRL_T log_sizhu_history_run_g;
-LOG_SIZHU_LOG_SAVE_T ufg620_log_g;
-
-
-
-
-
-
-/*��ʷ��¼������ʼ��eerrom*/
-uint8_t sizhu_historical_eeprom_default_init(void)
-{
-
-// /*�洢�ռ�������IJ���5000����ô���ش���ֵ*/
-//
-// //
-// log_sizhu_history_run_g.per_period_log.log_count = 0;
-// log_sizhu_history_run_g.per_hour_log.log_count = 0;
-// log_sizhu_history_run_g.per_day_log.log_count = 0;
-// log_sizhu_history_run_g.per_month_log.log_count = 0;
-
-//
-// EEPROM_data_write_uint16(log_sizhu_history_run_g.per_period_log.log_count, (STRUCT_PER_PERIOD_OFFSET) );
-// EEPROM_data_write_uint16(log_sizhu_history_run_g.per_hour_log.log_count, (STRUCT_PER_HOUR_OFFSET) );
-// EEPROM_data_write_uint16(log_sizhu_history_run_g.per_day_log.log_count, (STRUCT_PER_DAY_OFFSET) );
-// EEPROM_data_write_uint16(log_sizhu_history_run_g.per_month_log.log_count, (STRUCT_PER_MONTH_OFFSET) );
-//
-// log_sizhu_history_run_g.per_period_log.log_addr_begin = PER_PERIOD_LOG_OFFSET;
-// log_sizhu_history_run_g.per_hour_log.log_addr_begin = PER_HOUR_LOG_OFFSET;
-// log_sizhu_history_run_g.per_day_log.log_addr_begin = PER_DAY_LOG_OFFSET;
-// log_sizhu_history_run_g.per_month_log.log_addr_begin = PER_MONTH_LOG_OFFSET;
-
-// log_sizhu_history_run_g.per_period_log.log_addr_save = PER_PERIOD_LOG_OFFSET;
-// log_sizhu_history_run_g.per_hour_log.log_addr_save = PER_HOUR_LOG_OFFSET;
-// log_sizhu_history_run_g.per_day_log.log_addr_save = PER_DAY_LOG_OFFSET;
-// log_sizhu_history_run_g.per_month_log.log_addr_save = PER_MONTH_LOG_OFFSET;
-//
-// EEPROM_data_write_uint32(log_sizhu_history_run_g.per_period_log.log_addr_save , (STRUCT_PERIOD_LOG_ADDR_SAVE_OFFSET) );
-// EEPROM_data_write_uint32(log_sizhu_history_run_g.per_hour_log.log_addr_save , (STRUCT_HOUR_LOG_ADDR_SAVE_OFFSET) );
-// EEPROM_data_write_uint32(log_sizhu_history_run_g.per_day_log.log_addr_save, (STRUCT_DAY_LOG_ADDR_SAVE_OFFSET) );
-// EEPROM_data_write_uint32(log_sizhu_history_run_g.per_month_log.log_addr_save, (STRUCT_MONTH_LOG_ADDR_SAVE_OFFSET) );
-
- return 1;
-}
-
-
-
-uint8_t sizhu_historical_record_clean(uint32_t epprom_begin_addr, LOG_SIZHU_RUN_T * log_run_ptr)
-{
-
-
- return 1;
-}
-
-
-/******************************************
- * func: sizhu_historical_record_only_read_init
- * desc: ��ʷ���ݴ洢������ȡ
- * input: none
- * output: none
- * return: none
- *****************************************/
-uint8_t sizhu_historical_record_only_read_init(void)
-{
-// log_sizhu_history_run_g.per_period_log.log_count = eeprom_data_read_uint16(STRUCT_PER_PERIOD_OFFSET);
-// log_sizhu_history_run_g.per_hour_log.log_count = eeprom_data_read_uint16(STRUCT_PER_HOUR_OFFSET);
-// log_sizhu_history_run_g.per_day_log.log_count = eeprom_data_read_uint16(STRUCT_PER_DAY_OFFSET);
-// log_sizhu_history_run_g.per_month_log.log_count = eeprom_data_read_uint16(STRUCT_PER_MONTH_OFFSET);
-//
-// log_sizhu_history_run_g.per_period_log.log_addr_begin = PER_PERIOD_LOG_OFFSET;
-// log_sizhu_history_run_g.per_hour_log.log_addr_begin = PER_HOUR_LOG_OFFSET;
-// log_sizhu_history_run_g.per_day_log.log_addr_begin = PER_DAY_LOG_OFFSET;
-// log_sizhu_history_run_g.per_month_log.log_addr_begin = PER_MONTH_LOG_OFFSET;
-//
-// log_sizhu_history_run_g.per_period_log.log_addr_save = eeprom_data_read_uint32(STRUCT_PERIOD_LOG_ADDR_SAVE_OFFSET);
-// log_sizhu_history_run_g.per_hour_log.log_addr_save = eeprom_data_read_uint32(STRUCT_HOUR_LOG_ADDR_SAVE_OFFSET);
-// log_sizhu_history_run_g.per_day_log.log_addr_save = eeprom_data_read_uint32(STRUCT_DAY_LOG_ADDR_SAVE_OFFSET);
-// log_sizhu_history_run_g.per_month_log.log_addr_save = eeprom_data_read_uint32(STRUCT_MONTH_LOG_ADDR_SAVE_OFFSET);
-//
-//
-// if((log_sizhu_history_run_g.per_period_log.log_addr_save > PER_PERIOD_LOG_OFFSET_END)||(log_sizhu_history_run_g.per_period_log.log_addr_save < PER_PERIOD_LOG_OFFSET))
-// {
-// log_sizhu_run_g.per_period_log_count = 0;
-// log_sizhu_history_run_g.per_period_log.log_addr_save = PER_PERIOD_LOG_OFFSET;
-// }
-//
-// if((log_sizhu_history_run_g.per_hour_log.log_addr_save > PER_HOUR_LOG_OFFSET_END)||(log_sizhu_history_run_g.per_hour_log.log_addr_save < PER_HOUR_LOG_OFFSET))
-// {
-// log_sizhu_history_run_g.per_hour_log.log_count = 0;
-// log_sizhu_history_run_g.per_hour_log.log_addr_save = PER_HOUR_LOG_OFFSET;
-// }
-//
-// if((log_sizhu_history_run_g.per_day_log.log_addr_save > PER_DAY_LOG_OFFSET_END)||(log_sizhu_history_run_g.per_day_log.log_addr_save < PER_DAY_LOG_OFFSET))
-// {
-// log_sizhu_history_run_g.per_day_log.log_count = 0;
-// log_sizhu_history_run_g.per_day_log.log_addr_save = PER_DAY_LOG_OFFSET;
-// }
-//
-// if((log_sizhu_history_run_g.per_month_log.log_addr_save > PER_MONTH_LOG_OFFSET_END)||(log_sizhu_history_run_g.per_month_log.log_addr_save < PER_MONTH_LOG_OFFSET))
-// {
-// log_sizhu_history_run_g.per_month_log.log_count = 0;
-// log_sizhu_history_run_g.per_month_log.log_addr_save = PER_MONTH_LOG_OFFSET;
-// }
-
-
- return 1;
-}
-
-//uint16_t sizhu_historical_period_log(void)
-//{
-// return log_sizhu_run_g.per_period_log_count;
-//}
-
-//uint16_t sizhu_historical_hour_log(void)
-//{
-// return log_sizhu_history_run_g.per_hour_log.log_count;
-//}
-
-//uint16_t sizhu_historical_day_log(void)
-//{
-// return log_sizhu_history_run_g.per_day_log.log_count;
-//}
-//uint16_t sizhu_historical_month_log(void)
-//{
-// return log_sizhu_history_run_g.per_month_log.log_count;
-//}
-
-
-uint8_t sizhu_historical_read_init(u32 * read_addr, u16 * save_count, uint8_t logtype)
-{
-
-// if(logtype == LOG_SIZHU_PERIOD_TYPE)
-// {
-// *read_addr = log_sizhu_run_g.per_period_log_addr_save;
-// *save_count = log_sizhu_run_g.per_period_log_count;
-// }else if(logtype == LOG_SIZHU_HOUR_TYPE)
-// {
-// *read_addr = log_sizhu_history_run_g.per_hour_log.log_addr_save;
-// *save_count = log_sizhu_history_run_g.per_hour_log.log_count;
-// }else if(logtype == LOG_SIZHU_DAY_TYPE)
-// {
-// *read_addr = log_sizhu_history_run_g.per_day_log.log_addr_save;
-// *save_count = log_sizhu_history_run_g.per_day_log.log_count;
-// }else if(logtype == LOG_SIZHU_MONTH_TYPE)
-// {
-// *read_addr = log_sizhu_history_run_g.per_month_log.log_addr_save;
-// *save_count = log_sizhu_history_run_g.per_month_log.log_count;
-// }
- return 1;
-}
-
-void file_data(uint8_t * ptr_ary)
-{
-// LOG_SIZHU_LOG_SAVE_T * log_str;
-//
-// log_str = (LOG_SIZHU_LOG_SAVE_T *)ptr_ary;
-//
-//
-// log_str->Sample_year = 0x19;
-// log_str->Sample_month = 0x10;
-// log_str->Sample_day = 0x18;
-// log_str->Sample_hour = 0x15;
-// log_str->Sample_min = 0x33;
-// log_str->Sample_sec = 0x12;
-//
-// log_str->StandardGasUsageTotal = 123.12;
-// log_str->WorkingGasUsageTotal = 456.67;
-
-// log_str->Standardvec = 135.79;
-
-//
-// log_str->Temperature = 12.12;
-// log_str->Pressure = 123;
-//
-
-}
-
-
-/******************************************
- * func: sizhu_period_historical_record_save
- * desc: ��ʷ���ݴ洢
- * input: none
- * output: none
- * return: none
- *****************************************/
-uint8_t sizhu_period_historical_record_save(uint8_t logtype, LOG_SIZHU_LOG_SAVE_PERIOD_T * log_run_ptr)
-{
-// if(logtype == LOG_SIZHU_PERIOD_TYPE)
-// {
-//
-// eeprom_multiple_data_write( (uint8_t *)log_run_ptr, log_sizhu_run_g.per_period_log_addr_save, sizeof(LOG_SIZHU_LOG_SAVE_PERIOD_T) );
-//
-//
-// if((log_sizhu_run_g.per_period_log_addr_save >= PER_PERIOD_LOG_OFFSET_END)||(log_sizhu_run_g.per_period_log_addr_save < PER_PERIOD_LOG_OFFSET))
-// {
-// log_sizhu_run_g.per_period_log_addr_save = PER_PERIOD_LOG_OFFSET;
-//
-// }else
-// {
-// log_sizhu_run_g.per_period_log_addr_save = log_sizhu_run_g.per_period_log_addr_save + sizeof(LOG_SIZHU_LOG_SAVE_PERIOD_T);
-//
-// }
-//
-//
-//
-// if(log_sizhu_run_g.per_period_log_count >= PERIOD_LOG_NUM)
-// {
-//
-// log_sizhu_run_g.per_period_log_count = PERIOD_LOG_NUM;
-//
-// }else
-// {
-// log_sizhu_run_g.per_period_log_count ++;
-//
-// }
-//
-// EEPROM_data_write_uint16(log_sizhu_run_g.per_period_log_count, ( STRUCT_PER_PERIOD_OFFSET ) );
-// EEPROM_data_write_uint32(log_sizhu_run_g.per_period_log_addr_save , ( STRUCT_PERIOD_LOG_ADDR_SAVE_OFFSET ) );
-//
-//
-// }
-//
- return 1;
-}
-uint8_t sizhu_historical_record_save(uint8_t logtype, LOG_SIZHU_LOG_SAVE_T * log_run_ptr)
-{
-
- /**/
-// if(logtype == LOG_SIZHU_HOUR_TYPE)
-// {
-//
-// eeprom_multiple_data_write( (uint8_t *)log_run_ptr, log_sizhu_history_run_g.per_hour_log.log_addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
-//
-//
-// if((log_sizhu_history_run_g.per_hour_log.log_addr_save >= PER_HOUR_LOG_OFFSET_END)||(log_sizhu_history_run_g.per_hour_log.log_addr_save < PER_HOUR_LOG_OFFSET))
-// {
-// log_sizhu_history_run_g.per_hour_log.log_addr_save = PER_HOUR_LOG_OFFSET;
-//
-// }else
-// {
-// log_sizhu_history_run_g.per_hour_log.log_addr_save = log_sizhu_history_run_g.per_hour_log.log_addr_save + sizeof(LOG_SIZHU_LOG_SAVE_T);
-// }
-//
-// if(log_sizhu_history_run_g.per_hour_log.log_count >= HOUR_LOG_NUM)
-// {
-//
-// log_sizhu_history_run_g.per_hour_log.log_count = HOUR_LOG_NUM;
-//
-// }else
-// {
-// log_sizhu_history_run_g.per_hour_log.log_count ++;
-//
-// }
-//
-// EEPROM_data_write_uint16(log_sizhu_history_run_g.per_hour_log.log_count, ( STRUCT_PER_HOUR_OFFSET ) );
-// EEPROM_data_write_uint32(log_sizhu_history_run_g.per_hour_log.log_addr_save , ( STRUCT_HOUR_LOG_ADDR_SAVE_OFFSET ) );
-//
-//
-//
-//
-// }else if(logtype == LOG_SIZHU_DAY_TYPE)
-// {
-// eeprom_multiple_data_write( (uint8_t *)log_run_ptr, log_sizhu_history_run_g.per_day_log.log_addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
-//
-//
-// if((log_sizhu_history_run_g.per_day_log.log_addr_save >= PER_DAY_LOG_OFFSET_END)||(log_sizhu_history_run_g.per_day_log.log_addr_save < PER_DAY_LOG_OFFSET))
-// {
-// log_sizhu_history_run_g.per_day_log.log_addr_save = PER_DAY_LOG_OFFSET;
-//
-// }else
-// {
-// log_sizhu_history_run_g.per_day_log.log_addr_save = log_sizhu_history_run_g.per_day_log.log_addr_save + sizeof(LOG_SIZHU_LOG_SAVE_T);
-// }
-//
-// if(log_sizhu_history_run_g.per_day_log.log_count >= DAY_LOG_NUM)
-// {
-//
-// log_sizhu_history_run_g.per_day_log.log_count = DAY_LOG_NUM;
-//
-// }else
-// {
-// log_sizhu_history_run_g.per_day_log.log_count ++;
-//
-// }
-//
-//
-// EEPROM_data_write_uint16(log_sizhu_history_run_g.per_day_log.log_count, ( STRUCT_PER_DAY_OFFSET ) );
-// EEPROM_data_write_uint32(log_sizhu_history_run_g.per_day_log.log_addr_save , ( STRUCT_DAY_LOG_ADDR_SAVE_OFFSET ) );
-//
-//
-// }else if(logtype == LOG_SIZHU_MONTH_TYPE)
-// {
-// eeprom_multiple_data_write( (uint8_t *)log_run_ptr, log_sizhu_history_run_g.per_month_log.log_addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
-//
-//
-// if((log_sizhu_history_run_g.per_month_log.log_addr_save >= PER_MONTH_LOG_OFFSET_END)||(log_sizhu_history_run_g.per_month_log.log_addr_save < PER_MONTH_LOG_OFFSET))
-// {
-// log_sizhu_history_run_g.per_month_log.log_addr_save = PER_MONTH_LOG_OFFSET;
-//
-// }else
-// {
-// log_sizhu_history_run_g.per_month_log.log_addr_save = log_sizhu_history_run_g.per_month_log.log_addr_save + sizeof(LOG_SIZHU_LOG_SAVE_T);
-// }
-//
-// if(log_sizhu_history_run_g.per_month_log.log_count >= MONTH_LOG_NUM)
-// {
-//
-// log_sizhu_history_run_g.per_month_log.log_count = MONTH_LOG_NUM;
-//
-// }else
-// {
-// log_sizhu_history_run_g.per_month_log.log_count ++;
-//
-// }
-//
-//
-// EEPROM_data_write_uint16(log_sizhu_history_run_g.per_month_log.log_count, ( STRUCT_PER_MONTH_OFFSET ) );
-// EEPROM_data_write_uint32(log_sizhu_history_run_g.per_month_log.log_addr_save , ( STRUCT_MONTH_LOG_ADDR_SAVE_OFFSET ) );
-//
-//
-//
-// }
-//
-//
- return 1;
-
-}
/*��־��ȡ����*/
-uint32_t sizhu_historical_record_read(uint8_t logtype, uint32_t addr, LOG_SIZHU_LOG_SAVE_T * log_run_ptr)
+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)
@@ -346,17 +25,17 @@
// //���
// if(addr == PER_HOUR_LOG_OFFSET)
// {
-// addr_save = PER_HOUR_LOG_OFFSET_END - sizeof(LOG_SIZHU_LOG_SAVE_T);
+// addr_save = PER_HOUR_LOG_OFFSET_END - sizeof(SIZHU_HISTORY_MDH_T);
//
// }else
// {
-// addr_save = addr - sizeof(LOG_SIZHU_LOG_SAVE_T);
+// addr_save = addr - sizeof(SIZHU_HISTORY_MDH_T);
//
// }
//
//
-// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
+// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(SIZHU_HISTORY_MDH_T) );
//
// }else if(logtype == LOG_SIZHU_DAY_TYPE)
@@ -364,17 +43,17 @@
// //���
// if(addr <= PER_DAY_LOG_OFFSET)
// {
-// addr_save = PER_DAY_LOG_OFFSET_END - sizeof(LOG_SIZHU_LOG_SAVE_T);
+// addr_save = PER_DAY_LOG_OFFSET_END - sizeof(SIZHU_HISTORY_MDH_T);
//
// }else
// {
-// addr_save = addr - sizeof(LOG_SIZHU_LOG_SAVE_T);
+// addr_save = addr - sizeof(SIZHU_HISTORY_MDH_T);
//
// }
//
//
-// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
+// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(SIZHU_HISTORY_MDH_T) );
//
//
// }else if(logtype == LOG_SIZHU_MONTH_TYPE)
@@ -382,28 +61,134 @@
// //���
// if(addr <= PER_MONTH_LOG_OFFSET)
// {
-// addr_save = PER_MONTH_LOG_OFFSET_END - sizeof(LOG_SIZHU_LOG_SAVE_T);
+// addr_save = PER_MONTH_LOG_OFFSET_END - sizeof(SIZHU_HISTORY_MDH_T);
//
// }else
// {
-// addr_save = addr - sizeof(LOG_SIZHU_LOG_SAVE_T);
+// addr_save = addr - sizeof(SIZHU_HISTORY_MDH_T);
//
// }
//
//
-// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
+// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(SIZHU_HISTORY_MDH_T) );
//
//
//
// }
//
-//// eeprom_multiple_data_read( (uint8_t *)&ufg620_log_g,addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
+//// eeprom_multiple_data_read( (uint8_t *)&ufg620_log_g,addr_save, sizeof(SIZHU_HISTORY_MDH_T) );
//
-// return addr_save;
+ return addr_save;
}
+
+//�������洢
+void sizhuIntervalHistoryRecord(void)
+{
+ 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);
+
+ 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;
+ sizhu_history_interval_l.instant_sc = flow_meter_data_g.instant_sc;
+ sizhu_history_interval_l.instant_wc = flow_meter_data_g.instant_wc;
+ sizhu_history_interval_l.temperature = flow_meter_data_g.temperature;
+ sizhu_history_interval_l.pressure = flow_meter_data_g.pressure;
+ sizhu_history_interval_l.current_price = save_realtime_data_g.realtime_billing_data_s.price_now;
+ sizhu_history_interval_l.residual_amount = save_realtime_data_g.realtime_billing_data_s.balance_now;
+ sizhu_history_interval_l.cumulate_gas_usage = save_realtime_data_g.realtime_billing_data_s.use_gas_sum;
+ sizhu_history_interval_l.cumulate_fee_usage = save_realtime_data_g.realtime_billing_data_s.use_fee_sum;
+ sizhu_history_interval_l.lith_bat_v = pwr_vol_g.lith_vcc * 10;
+ sizhu_history_interval_l.lith_bat_per = pwr_vol_g.lith_synthesize_per;
+ sizhu_history_interval_l.alka_bat_v = pwr_vol_g.alka_vcc * 10;
+ sizhu_history_interval_l.alka_bat_per = pwr_vol_g.alka_vcc_per;
+ arrayA_2_arrayB((uint8_t *)&system_status_word_g.status_word_union,(uint8_t *)&sizhu_history_interval_l.status_word,sizeof(SYSTEM_STATUS_WORD_T), LITTLE_ENDIAN);
+
+ //����CRC
+ sizhu_history_interval_l.CRC16_MODBUS = usMBCRC16(0xFFFF, (uint8_t * )&sizhu_history_interval_l.record_time_BCD, sizeof(SIZHU_HISTORY_INTERVAL_T) - sizeof(sizhu_history_interval_l.CRC16_MODBUS) );
+
+ FLASH_LOG_ADDR_CHECK(log_sizhu_history_ctrl_g.per_interval_log,HISTORY_INTERVAL_START_ADDR,sizeof(SIZHU_HISTORY_INTERVAL_T),HISTORY_INTERVAL_MAX_NUM);
+
+ 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);
+ //?�����洢
+ 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){
+
+ }
+}
+
+//����Сʱ�洢
+void sizhuMDHHistoryRecord(HISTORY_TYPE history_type)
+{
+ 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);
+
+ 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;
+ sizhu_history_l.instant_sc = flow_meter_data_g.instant_sc;
+ sizhu_history_l.instant_wc = flow_meter_data_g.instant_wc;
+ sizhu_history_l.temperature = flow_meter_data_g.temperature;
+ sizhu_history_l.pressure = flow_meter_data_g.pressure;
+ sizhu_history_l.current_price = save_realtime_data_g.realtime_billing_data_s.price_now;
+ sizhu_history_l.residual_amount = save_realtime_data_g.realtime_billing_data_s.balance_now;
+
+
+ //����CRC
+ sizhu_history_l.CRC16_MODBUS = usMBCRC16(0xFFFF, (uint8_t * )&sizhu_history_l.record_time_BCD, sizeof(SIZHU_HISTORY_MDH_T) - sizeof(sizhu_history_l.CRC16_MODBUS) );
+
+ switch(history_type){
+ case HISTORY_TYPE_MONTH:
+ FLASH_LOG_ADDR_CHECK(log_sizhu_history_ctrl_g.per_month_log,HISTORY_MONTH_START_ADDR,HISTORY_MONTH_LENGTH,HISTORY_MONTH_MAX_NUM);
+ FlashMultipleWriteAndReadCheck((uint8_t *)&sizhu_history_l,log_sizhu_history_ctrl_g.per_month_log.log_addr_save,HISTORY_MONTH_LENGTH);
+ FLASH_LOG_CRTL_PARA_HANDLE(log_sizhu_history_ctrl_g.per_month_log,HISTORY_MONTH_START_ADDR,HISTORY_MONTH_LENGTH,HISTORY_MONTH_MAX_NUM);
+ break;
+
+ case HISTORY_TYPE_DAY:
+ FLASH_LOG_ADDR_CHECK(log_sizhu_history_ctrl_g.per_day_log,HISTORY_DAY_START_ADDR,HISTORY_DAY_LENGTH,HISTORY_DAY_MAX_NUM);
+ FlashMultipleWriteAndReadCheck((uint8_t *)&sizhu_history_l,log_sizhu_history_ctrl_g.per_day_log.log_addr_save,HISTORY_DAY_LENGTH);
+ FLASH_LOG_CRTL_PARA_HANDLE(log_sizhu_history_ctrl_g.per_day_log,HISTORY_DAY_START_ADDR,HISTORY_DAY_LENGTH,HISTORY_DAY_MAX_NUM);
+ break;
+ case HISTORY_TYPE_HOUR:
+ FLASH_LOG_ADDR_CHECK(log_sizhu_history_ctrl_g.per_hour_log,HISTORY_HOUR_START_ADDR,HISTORY_HOUR_LENGTH,HISTORY_HOUR_MAX_NUM);
+ FlashMultipleWriteAndReadCheck((uint8_t *)&sizhu_history_l,log_sizhu_history_ctrl_g.per_hour_log.log_addr_save,HISTORY_HOUR_LENGTH);
+ FLASH_LOG_CRTL_PARA_HANDLE(log_sizhu_history_ctrl_g.per_hour_log,HISTORY_HOUR_START_ADDR,HISTORY_HOUR_LENGTH,HISTORY_HOUR_MAX_NUM);
+ break;
+
+ default : break;
+ }
+
+ //?�����洢
+ 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){
+
+ }
+}
+
+void HistoryRecordTest(void)
+{
+ static uint8_t test_start_flag =0;
+ ErrorStatus test_Status = PASS;
+
+ if(test_start_flag == 1){
+
+
+
+
+ }
+
+
+
+
+}
+
void sizhuHistoryRecord(sClockBCD sys_clockBCD_in)
@@ -437,29 +222,30 @@
if((interval_report_record_flag == SET)&&(sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag ==RESET)){
//��������ϱ��洢
interval_report_record_flag = RESET;
-
+ sizhuIntervalHistoryRecord();
}
-
-
-
+
if((hour_record_flag == SET)&&(sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag ==RESET)){
//Сʱ��¼�洢
hour_record_flag = RESET;
-
+ sizhuMDHHistoryRecord(HISTORY_TYPE_HOUR);
}
if((day_record_flag == SET)&&(sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag ==RESET)){
//���¼�洢
day_record_flag = RESET;
-
+ sizhuMDHHistoryRecord(HISTORY_TYPE_DAY);
}
if((month_record_flag == SET)&&(sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag ==RESET)){
//�¼�¼�洢
month_record_flag = RESET;
-
+ sizhuMDHHistoryRecord(HISTORY_TYPE_MONTH);
}
+
+ HistoryRecordTest();
+
}
--
Gitblit v1.9.3