forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-06 b39a40b0191e0a8b155db74e885ff66e17b91896
Function/STORAGE/sizhu_history_record.c
@@ -1,339 +1,18 @@
#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_LOG_SAVE_T      ufg620_log_g;
/*ÀúÊ·¼Ç¼²ÎÊý³õʼ»¯eerrom*/
uint8_t sizhu_historical_eeprom_default_init(void)
{
//   /*´æ´¢¿Õ¼äÈç¹û¸øµÄ²»¹»5000£¬ÄÇô·µ»Ø´íÎóÖµ*/
//
//   //
//   log_sizhu_history_ctrl_g.per_interval_log.log_count        = 0;
//   log_sizhu_history_ctrl_g.per_hour_log.log_count        = 0;
//   log_sizhu_history_ctrl_g.per_day_log.log_count        = 0;
//   log_sizhu_history_ctrl_g.per_month_log.log_count        = 0;
//
//   EEPROM_data_write_uint16(log_sizhu_history_ctrl_g.per_interval_log.log_count, (STRUCT_PER_PERIOD_OFFSET) );
//   EEPROM_data_write_uint16(log_sizhu_history_ctrl_g.per_hour_log.log_count, (STRUCT_PER_HOUR_OFFSET) );
//   EEPROM_data_write_uint16(log_sizhu_history_ctrl_g.per_day_log.log_count, (STRUCT_PER_DAY_OFFSET) );
//   EEPROM_data_write_uint16(log_sizhu_history_ctrl_g.per_month_log.log_count, (STRUCT_PER_MONTH_OFFSET) );
//
//   log_sizhu_history_ctrl_g.per_interval_log.log_addr_begin   = PER_PERIOD_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_hour_log.log_addr_begin      = PER_HOUR_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_day_log.log_addr_begin        = PER_DAY_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_month_log.log_addr_begin    = PER_MONTH_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_interval_log.log_addr_save       = PER_PERIOD_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_hour_log.log_addr_save       = PER_HOUR_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_day_log.log_addr_save     = PER_DAY_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_month_log.log_addr_save     = PER_MONTH_LOG_OFFSET;
//
//   EEPROM_data_write_uint32(log_sizhu_history_ctrl_g.per_interval_log.log_addr_save , (STRUCT_PERIOD_LOG_ADDR_SAVE_OFFSET) );
//   EEPROM_data_write_uint32(log_sizhu_history_ctrl_g.per_hour_log.log_addr_save , (STRUCT_HOUR_LOG_ADDR_SAVE_OFFSET) );
//   EEPROM_data_write_uint32(log_sizhu_history_ctrl_g.per_day_log.log_addr_save, (STRUCT_DAY_LOG_ADDR_SAVE_OFFSET) );
//   EEPROM_data_write_uint32(log_sizhu_history_ctrl_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_ctrl_g.per_interval_log.log_count       =  eeprom_data_read_uint16(STRUCT_PER_PERIOD_OFFSET);
//   log_sizhu_history_ctrl_g.per_hour_log.log_count          =  eeprom_data_read_uint16(STRUCT_PER_HOUR_OFFSET);
//   log_sizhu_history_ctrl_g.per_day_log.log_count          =  eeprom_data_read_uint16(STRUCT_PER_DAY_OFFSET);
//   log_sizhu_history_ctrl_g.per_month_log.log_count       =  eeprom_data_read_uint16(STRUCT_PER_MONTH_OFFSET);
//
//   log_sizhu_history_ctrl_g.per_interval_log.log_addr_begin   =  PER_PERIOD_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_hour_log.log_addr_begin      =  PER_HOUR_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_day_log.log_addr_begin       =  PER_DAY_LOG_OFFSET;
//   log_sizhu_history_ctrl_g.per_month_log.log_addr_begin      =  PER_MONTH_LOG_OFFSET;
//
//   log_sizhu_history_ctrl_g.per_interval_log.log_addr_save   =  eeprom_data_read_uint32(STRUCT_PERIOD_LOG_ADDR_SAVE_OFFSET);
//   log_sizhu_history_ctrl_g.per_hour_log.log_addr_save       =  eeprom_data_read_uint32(STRUCT_HOUR_LOG_ADDR_SAVE_OFFSET);
//   log_sizhu_history_ctrl_g.per_day_log.log_addr_save       =  eeprom_data_read_uint32(STRUCT_DAY_LOG_ADDR_SAVE_OFFSET);
//   log_sizhu_history_ctrl_g.per_month_log.log_addr_save    =  eeprom_data_read_uint32(STRUCT_MONTH_LOG_ADDR_SAVE_OFFSET);
//
//
//   if((log_sizhu_history_ctrl_g.per_interval_log.log_addr_save > PER_PERIOD_LOG_OFFSET_END)||(log_sizhu_history_ctrl_g.per_interval_log.log_addr_save < PER_PERIOD_LOG_OFFSET))
//   {
//      log_sizhu_run_g.per_period_log_count        = 0;
//      log_sizhu_history_ctrl_g.per_interval_log.log_addr_save       = PER_PERIOD_LOG_OFFSET;
//   }
//
//   if((log_sizhu_history_ctrl_g.per_hour_log.log_addr_save > PER_HOUR_LOG_OFFSET_END)||(log_sizhu_history_ctrl_g.per_hour_log.log_addr_save < PER_HOUR_LOG_OFFSET))
//   {
//      log_sizhu_history_ctrl_g.per_hour_log.log_count                = 0;
//      log_sizhu_history_ctrl_g.per_hour_log.log_addr_save          = PER_HOUR_LOG_OFFSET;
//   }
//
//   if((log_sizhu_history_ctrl_g.per_day_log.log_addr_save > PER_DAY_LOG_OFFSET_END)||(log_sizhu_history_ctrl_g.per_day_log.log_addr_save < PER_DAY_LOG_OFFSET))
//   {
//      log_sizhu_history_ctrl_g.per_day_log.log_count                = 0;
//      log_sizhu_history_ctrl_g.per_day_log.log_addr_save          = PER_DAY_LOG_OFFSET;
//   }
//
//   if((log_sizhu_history_ctrl_g.per_month_log.log_addr_save > PER_MONTH_LOG_OFFSET_END)||(log_sizhu_history_ctrl_g.per_month_log.log_addr_save < PER_MONTH_LOG_OFFSET))
//   {
//      log_sizhu_history_ctrl_g.per_month_log.log_count                = 0;
//      log_sizhu_history_ctrl_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_ctrl_g.per_hour_log.log_count;
//}
//uint16_t sizhu_historical_day_log(void)
//{
//   return log_sizhu_history_ctrl_g.per_day_log.log_count;
//}
//uint16_t sizhu_historical_month_log(void)
//{
//   return log_sizhu_history_ctrl_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_ctrl_g.per_hour_log.log_addr_save;
//      *save_count   = log_sizhu_history_ctrl_g.per_hour_log.log_count;
//   }else if(logtype == LOG_SIZHU_DAY_TYPE)
//   {
//      *read_addr    = log_sizhu_history_ctrl_g.per_day_log.log_addr_save;
//      *save_count   = log_sizhu_history_ctrl_g.per_day_log.log_count;
//   }else if(logtype == LOG_SIZHU_MONTH_TYPE)
//   {
//      *read_addr    = log_sizhu_history_ctrl_g.per_month_log.log_addr_save;
//      *save_count   = log_sizhu_history_ctrl_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_ctrl_g.per_hour_log.log_addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
//
//
//      if((log_sizhu_history_ctrl_g.per_hour_log.log_addr_save >= PER_HOUR_LOG_OFFSET_END)||(log_sizhu_history_ctrl_g.per_hour_log.log_addr_save < PER_HOUR_LOG_OFFSET))
//      {
//         log_sizhu_history_ctrl_g.per_hour_log.log_addr_save = PER_HOUR_LOG_OFFSET;
//
//      }else
//      {
//         log_sizhu_history_ctrl_g.per_hour_log.log_addr_save =  log_sizhu_history_ctrl_g.per_hour_log.log_addr_save + sizeof(LOG_SIZHU_LOG_SAVE_T);
//      }
//
//      if(log_sizhu_history_ctrl_g.per_hour_log.log_count >= HOUR_LOG_NUM)
//      {
//
//         log_sizhu_history_ctrl_g.per_hour_log.log_count  = HOUR_LOG_NUM;
//
//      }else
//      {
//         log_sizhu_history_ctrl_g.per_hour_log.log_count  ++;
//
//      }
//
//      EEPROM_data_write_uint16(log_sizhu_history_ctrl_g.per_hour_log.log_count, ( STRUCT_PER_HOUR_OFFSET ) );
//      EEPROM_data_write_uint32(log_sizhu_history_ctrl_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_ctrl_g.per_day_log.log_addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
//
//
//      if((log_sizhu_history_ctrl_g.per_day_log.log_addr_save >= PER_DAY_LOG_OFFSET_END)||(log_sizhu_history_ctrl_g.per_day_log.log_addr_save < PER_DAY_LOG_OFFSET))
//      {
//         log_sizhu_history_ctrl_g.per_day_log.log_addr_save = PER_DAY_LOG_OFFSET;
//
//      }else
//      {
//         log_sizhu_history_ctrl_g.per_day_log.log_addr_save =  log_sizhu_history_ctrl_g.per_day_log.log_addr_save + sizeof(LOG_SIZHU_LOG_SAVE_T);
//      }
//
//      if(log_sizhu_history_ctrl_g.per_day_log.log_count >= DAY_LOG_NUM)
//      {
//
//         log_sizhu_history_ctrl_g.per_day_log.log_count  = DAY_LOG_NUM;
//
//      }else
//      {
//         log_sizhu_history_ctrl_g.per_day_log.log_count  ++;
//
//      }
//
//
//      EEPROM_data_write_uint16(log_sizhu_history_ctrl_g.per_day_log.log_count, ( STRUCT_PER_DAY_OFFSET ) );
//      EEPROM_data_write_uint32(log_sizhu_history_ctrl_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_ctrl_g.per_month_log.log_addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
//
//
//      if((log_sizhu_history_ctrl_g.per_month_log.log_addr_save >= PER_MONTH_LOG_OFFSET_END)||(log_sizhu_history_ctrl_g.per_month_log.log_addr_save < PER_MONTH_LOG_OFFSET))
//      {
//         log_sizhu_history_ctrl_g.per_month_log.log_addr_save = PER_MONTH_LOG_OFFSET;
//
//      }else
//      {
//         log_sizhu_history_ctrl_g.per_month_log.log_addr_save =  log_sizhu_history_ctrl_g.per_month_log.log_addr_save + sizeof(LOG_SIZHU_LOG_SAVE_T);
//      }
//
//      if(log_sizhu_history_ctrl_g.per_month_log.log_count >= MONTH_LOG_NUM)
//      {
//
//         log_sizhu_history_ctrl_g.per_month_log.log_count  = MONTH_LOG_NUM;
//
//      }else
//      {
//         log_sizhu_history_ctrl_g.per_month_log.log_count  ++;
//
//      }
//
//
//      EEPROM_data_write_uint16(log_sizhu_history_ctrl_g.per_month_log.log_count, ( STRUCT_PER_MONTH_OFFSET ) );
//      EEPROM_data_write_uint32(log_sizhu_history_ctrl_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;
@@ -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,114 @@
//   //Èç¹û
//      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;   
}
//¼ä¸ô¶³½á´æ´¢
void sizhuIntervalHistoryRecord(void)
{
   SIZHU_HISTORY_INTERVAL_T   sizhu_history_interval_l;
   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;
   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 sizhuHistoryRecord(sClockBCD sys_clockBCD_in)
@@ -437,28 +202,26 @@
   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);
   }
   
}