#include "sizhu_history_record.h"
|
#include "system_mem_para.h"
|
|
|
LOG_SIZHU_HISTORY_RUN_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)
|
{
|
|
// u32 addr_save;
|
//
|
// //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);
|
//
|
// }else
|
// {
|
|
// addr_save = addr - sizeof(LOG_SIZHU_LOG_SAVE_T);
|
//
|
// }
|
//
|
//
|
// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(LOG_SIZHU_LOG_SAVE_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);
|
//
|
// }else
|
// {
|
|
// addr_save = addr - sizeof(LOG_SIZHU_LOG_SAVE_T);
|
//
|
// }
|
//
|
//
|
// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(LOG_SIZHU_LOG_SAVE_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);
|
//
|
// }else
|
// {
|
|
// addr_save = addr - sizeof(LOG_SIZHU_LOG_SAVE_T);
|
//
|
// }
|
//
|
//
|
// eeprom_multiple_data_read( (uint8_t *)log_run_ptr,addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
|
//
|
//
|
//
|
// }
|
//
|
//// eeprom_multiple_data_read( (uint8_t *)&ufg620_log_g,addr_save, sizeof(LOG_SIZHU_LOG_SAVE_T) );
|
//
|
// return addr_save;
|
|
|
}
|
|
|
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;
|
|
uint16_t IntervalTime;
|
uint8_t first_time[2] = {0,0};
|
|
/*¼ä¸ôÉϱ¨¶³½á*/
|
if(__SYS_STATUS_BYTES_GET(power_state) == SET)
|
IntervalTime = wrc_para_sizhu_g.ext_power_data_interval;
|
else
|
IntervalTime = wrc_para_sizhu_g.bat_power_data_interval;
|
|
if(IntervalTriggerHandle(sys_clockBCD_in,IntervalTime,first_time)==SET)
|
interval_report_record_flag =SET;
|
|
|
/*Сʱ¡¢Ìì¡¢ÔÂ*/
|
if((sys_clockBCD_in.min == 0)&&(sys_clockBCD_in.sec == 0)) //Сʱ¼Ç¼´æ´¢µã
|
hour_record_flag =SET;
|
|
if((sys_clockBCD_in.hour == 0)&&(sys_clockBCD_in.min == 0)&&(sys_clockBCD_in.sec == 0))//Ìì¼Ç¼´æ´¢µã
|
day_record_flag =SET;
|
|
if((sys_clockBCD_in.day == 1)&&(sys_clockBCD_in.hour == 0)&&(sys_clockBCD_in.min == 0)&&(sys_clockBCD_in.sec == 0))//ԼǼ´æ´¢µã
|
month_record_flag =SET;
|
|
|
if((interval_report_record_flag == SET)&&(sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag ==RESET)){
|
//¼ä¸ô¶³½áÉϱ¨´æ´¢
|
interval_report_record_flag = RESET;
|
|
}
|
|
|
|
|
if((hour_record_flag == SET)&&(sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag ==RESET)){
|
//Сʱ¼Ç¼´æ´¢
|
hour_record_flag = RESET;
|
|
}
|
|
if((day_record_flag == SET)&&(sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag ==RESET)){
|
//Ìì¼Ç¼´æ´¢
|
day_record_flag = RESET;
|
|
}
|
|
if((month_record_flag == SET)&&(sys_fun_run_ctrl_g.rs485_ctrl_flag.running_flag ==RESET)){
|
//ԼǼ´æ´¢
|
month_record_flag = RESET;
|
|
}
|
|
}
|