| | |
| | | #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) |
| | | { |
| | | |
| | | // /*´æ´¢¿Õ¼äÈç¹û¸øµÄ²»¹»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) |
| | |
| | | // //Èç¹û |
| | | // 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) |
| | |
| | | // //Èç¹û |
| | | // 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) |
| | |
| | | // //Èç¹û |
| | | // 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) |
| | |
| | | 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(); |
| | | |
| | | } |
| | | |