forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-06-12 f03cf3ae7a36954e64fc014e6bb7afd20c5a5247
Function/STORAGE/sizhu_history_record.c
@@ -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;
}
@@ -88,6 +88,8 @@
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);
   
@@ -114,8 +116,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){
      
@@ -126,6 +127,8 @@
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);
   
@@ -167,6 +170,56 @@
   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;
   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;
      }
   }
}
@@ -224,5 +277,8 @@
      sizhuMDHHistoryRecord(HISTORY_TYPE_MONTH);
   }
   
   HistoryRecordTest(); //?²âÊÔº¯Êý£¬²âÊÔÍêÐèҪעÊÍ
}