| | |
| | | #include "system_eep_mem_manage.h" |
| | | |
| | | |
| | | |
| | | FlagStatus interval_report_record_flag = RESET; |
| | | |
| | | |
| | | |
| | |
| | | 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) |
| | |
| | | // |
| | | //// eeprom_multiple_data_read( (uint8_t *)&ufg620_log_g,addr_save, sizeof(SIZHU_HISTORY_MDH_T) ); |
| | | // |
| | | // return addr_save; |
| | | return addr_save; |
| | | |
| | | |
| | | } |
| | |
| | | { |
| | | 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; |
| | |
| | | |
| | | 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){ |
| | | |
| | |
| | | { |
| | | 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; |
| | |
| | | } |
| | | } |
| | | |
| | | 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}; |
| | |
| | | //¼ä¸ô¶³½áÉϱ¨´æ´¢ |
| | | interval_report_record_flag = RESET; |
| | | sizhuIntervalHistoryRecord(); |
| | | |
| | | wrc_data_num_ctrl_para_sizhu_g.report_data_save_num ++; |
| | | //?´æ´¢ |
| | | } |
| | | |
| | | |
| | |
| | | sizhuMDHHistoryRecord(HISTORY_TYPE_MONTH); |
| | | } |
| | | |
| | | |
| | | HistoryRecordTest(); //?²âÊÔº¯Êý£¬²âÊÔÍêÐèҪעÊÍ |
| | | |
| | | } |
| | | |