#ifndef _SIZHU_HISTORY_RECORD_H
|
#define _SIZHU_HISTORY_RECORD_H
|
|
#include "sizhu_ctrl_word.h"
|
#include "system_general_para.h"
|
#include "system_mem_para.h"
|
#include "system_flash_mem_manage.h"
|
|
|
typedef enum
|
{
|
HISTORY_TYPE_HOUR = 1U,
|
HISTORY_TYPE_DAY,
|
HISTORY_TYPE_MONTH,
|
HISTORY_TYPE_INTERVAL
|
} HISTORY_TYPE; // ÀúÊ·¼Ç¼ÀàÐÍ
|
|
/*ÀúÊ·¼Ç¼´æ´¢¿ØÖÆ*/
|
//ԼǼ
|
#define HISTORY_MONTH_START_ADDR MONTH_HISTORY_RECORD_STORAGE_START_ADDR
|
#define HISTORY_MONTH_LENGTH sizeof(SIZHU_HISTORY_MDH_T)
|
#define HISTORY_MONTH_MAX_NUM 120U
|
#define HISTORY_MONTH_END_ADDR HISTORY_MONTH_START_ADDR + HISTORY_MONTH_LENGTH * (HISTORY_MONTH_MAX_NUM -1)
|
//Ìì¼Ç¼
|
#define HISTORY_DAY_START_ADDR DAY_HISTORY_RECORD_STORAGE_START_ADDR
|
#define HISTORY_DAY_LENGTH sizeof(SIZHU_HISTORY_MDH_T)
|
#define HISTORY_DAY_MAX_NUM 730U
|
#define HISTORY_DAY_END_ADDR HISTORY_DAY_START_ADDR + HISTORY_DAY_LENGTH * (HISTORY_DAY_MAX_NUM -1)
|
//Сʱ¼Ç¼
|
#define HISTORY_HOUR_START_ADDR HOUR_HISTORY_RECORD_STORAGE_START_ADDR
|
#define HISTORY_HOUR_LENGTH sizeof(SIZHU_HISTORY_MDH_T)
|
#define HISTORY_HOUR_MAX_NUM 4400U
|
#define HISTORY_HOUR_END_ADDR HISTORY_HOUR_START_ADDR + HISTORY_HOUR_LENGTH * (HISTORY_HOUR_MAX_NUM -1)
|
//¼ä¸ô¼Ç¼
|
#define HISTORY_INTERVAL_START_ADDR INTERVAL_HISTORY_RECORD_STORAGE_START_ADDR
|
#define HISTORY_INTERVAL_LENGTH sizeof(SIZHU_HISTORY_INTERVAL_T)
|
#define HISTORY_INTERVAL_MAX_NUM 1000U
|
#define HISTORY_INTERVAL_END_ADDR HISTORY_INTERVAL_START_ADDR + HISTORY_INTERVAL_LENGTH * (HISTORY_INTERVAL_MAX_NUM -1)
|
|
|
|
|
#pragma pack(1)
|
|
|
//¼ä¸ô¶³½áÈÕÖ¾ÄÚÈÝ
|
typedef struct
|
{
|
uint16_t CRC16_MODBUS;
|
sClockBCD record_time_BCD;
|
|
double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
|
double forward_cumulate_wc;
|
|
float instant_sc;
|
float instant_wc;
|
float temperature;
|
float pressure;
|
|
u32 current_price;
|
double residual_amount;
|
double cumulate_gas_usage;
|
double cumulate_fee_usage;
|
uint8_t lith_bat_v;
|
uint8_t lith_bat_per;
|
|
uint8_t alka_bat_v;
|
uint8_t alka_bat_per;
|
|
SYSTEM_STATUS_WORD_T status_word;
|
|
}SIZHU_HISTORY_INTERVAL_T; //84
|
|
//Ô¡¢ÈÕ¡¢Ê±ÈÕÖ¾ÄÚÈÝ
|
typedef struct
|
{
|
uint16_t CRC16_MODBUS;
|
sClockBCD record_time_BCD;
|
|
double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
|
double forward_cumulate_wc;
|
|
float instant_sc;
|
float instant_wc;
|
float temperature;
|
float pressure;
|
|
u32 current_price;
|
double residual_amount;
|
|
}SIZHU_HISTORY_MDH_T;
|
|
|
|
|
#pragma pack()
|
|
|
|
|
|
|
uint8_t sizhu_historical_record_clean(uint32_t epprom_begin_addr, LOG_SIZHU_CTRL_T * log_run_ptr);
|
|
uint8_t sizhu_historical_record_save(uint8_t logtype, SIZHU_HISTORY_MDH_T * log_run_ptr);
|
uint8_t sizhu_period_historical_record_save(uint8_t logtype, SIZHU_HISTORY_INTERVAL_T * log_run_ptr);
|
|
//
|
uint16_t sizhu_historical_period_log(void);
|
uint16_t sizhu_historical_hour_log(void);
|
uint16_t sizhu_historical_day_log(void);
|
uint16_t sizhu_historical_month_log(void);
|
uint32_t sizhu_historical_record_read(uint8_t logtype, uint32_t addr, SIZHU_HISTORY_MDH_T * log_run_ptr);
|
uint8_t sizhu_historical_read_init(u32 * read_addr, u16 * save_count, uint8_t logtype);
|
|
void sizhuHistoryRecord(sClockBCD sys_clockBCD_in);
|
#endif
|