#ifndef _CYCLIC_STORAGE_DATA_CREATED_API_H_
|
#define _CYCLIC_STORAGE_DATA_CREATED_API_H_
|
|
#include "define_all.h"
|
#include "valve_control.h"
|
#include "billing.h"
|
#include "system_parameter.h"
|
|
|
|
#define SEND_FLOW_DATA_LOG_FORMAT_SIZE sizeof(SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T)
|
#define HISTORY_FLOW_DATA_LOG_FORMAT_SIZE sizeof(SYS_FLOW_DATA_SYSLOG_FORMAT_T)
|
|
#define VALVE_LOG_FORMAT_SIZE sizeof(VALVE_SYSLOG_FORMAT_T)
|
#define PAY_LOG_FORMAT_SIZE sizeof(PAY_SYSLOG_FORMAT_T)
|
#define RESTORE_DEFAULT_LOG_FORMAT_SIZE sizeof(RESTORE_DEFAULT_SYSLOG_FORMAT_T)
|
#define TIMING_LOG_FORMAT_SIZE sizeof(TIMING_SYSLOG_FORMAT_T)
|
|
#define AMEND_LOG_FORMAT_HEAD (sizeof(PARA_AMEND_SYSLOG_FORMAT_T) - sizeof(PARA_AMEND_UNION_T))
|
#define GAS_CUMULATE_AMEND_LOG_FORMAT_SIZE (sizeof(struct gas_cumulate_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define BALANCE_AMEND_LOG_FORMAT_SIZE (sizeof(struct balance_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define BILLING_PRICE_AMEND_LOG_FORMAT_SIZE (sizeof(struct billing_price_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define PRESS_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct press_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define TEMP_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct temp_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define FLOW_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct flow_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define CAL_PULSE_AMEND_LOG_FORMAT_SIZE (sizeof(struct cal_pulse_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define SYS_FUNC_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct sys_func_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define ALARM_CTL_SEND_BYTES_AMEND_LOG_FORMAT_SIZE (sizeof(struct sys_alarm_ctl_send_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define VALVE_CTL_BYTES_AMEND_LOG_FORMAT_SIZE (sizeof(struct sys_valve_ctl_bytes_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define BILLING_ALARM_CFG_AMEND_LOG_FORMAT_SIZE (sizeof(struct billing_alarm_cfg_amend) + AMEND_LOG_FORMAT_HEAD)
|
#define SEC_CORR_PARA_AMEND_LOG_FORMAT_SIZE (sizeof(struct sec_corr_para_amend) + AMEND_LOG_FORMAT_HEAD)
|
|
#define ALARM_DATA_LOG_FORMAT_HEAD (sizeof(ALARM_SYSLOG_FORMAT_T) - sizeof(ALARM_SYSLOG_UNION_T))
|
#define MEASURE_ALARM_DATA_LOG_FORMAT_SIZE (sizeof(struct measure_alarm_data) + ALARM_DATA_LOG_FORMAT_HEAD)
|
#define OTHER_ALARM_DATA_LOG_FORMAT_SIZE (sizeof(struct other_alarm_data) + ALARM_DATA_LOG_FORMAT_HEAD)
|
|
typedef enum
|
{
|
SDM_NULL = 0U,
|
SDM_UPPER, // ÉÏλ»ú
|
SDM_BT_APP, // À¶ÑÀAPP
|
SDM_GPRS_CMD, // Ô¶´«ÃüÁî
|
} SYS_DATA_MENDER;
|
|
typedef enum
|
{
|
TC_NULL = 0U,
|
TC_AUTO,
|
TC_GPRS,
|
TC_UPPER,
|
TC_BT_APP,
|
}TIMING_CAUSE_T;
|
|
#pragma pack(1)
|
|
/*****************************Cyclic Data************************************************/
|
typedef union
|
{
|
struct measure_alarm_data
|
{
|
float tof_up;
|
float tof_down;
|
float tof_diff;
|
uint8_t signal_intensity_up;
|
uint8_t signal_intensity_down;
|
uint8_t signal_gain_up;
|
uint8_t signal_gain_down;
|
uint16_t snr_up; // ÐÅÔë±È_ÉÏͨµÀ
|
uint16_t snr_down;
|
float sound_vel;
|
float flow_vel;
|
uint8_t reserve[20]; // Ô¤Áô
|
} measure_alarm_data_s;
|
struct other_alarm_data
|
{
|
uint32_t price_now;
|
double balance_now;
|
uint8_t reserve[20];
|
} other_alarm_data_s;
|
} ALARM_SYSLOG_UNION_T;
|
|
typedef struct
|
{
|
uint16_t record_num;
|
uint8_t record_time[6];
|
uint16_t alarm_id;
|
double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
|
double forward_cumulate_wc;
|
float instant_sc;
|
float instant_wc;
|
float temperature;
|
float pressure;
|
float cpu_temperature; // »·¾³Î¶È
|
uint8_t lith_vcc;
|
uint8_t alka_vcc;
|
uint16_t status_bytes[SYS_STATUS_BYTES_TYPE_LENGTH >> 1];
|
ALARM_SYSLOG_UNION_T alarm_syslog_union;
|
} ALARM_SYSLOG_FORMAT_T;
|
|
typedef struct // 19 bytes
|
{
|
uint16_t record_num;
|
uint8_t record_time[6];
|
VALVE_WORK_TYPE work_type;
|
SYS_ALARM_VALVE_T switch_cause;
|
uint16_t open_cnt;
|
uint16_t close_cnt;
|
uint8_t reserve[4];
|
} VALVE_SYSLOG_FORMAT_T; //4 bytesÔ¤Áô //·§ÃÅÀúÊ·¼Ç¼
|
|
typedef struct // 11 bytes
|
{
|
uint16_t record_num;
|
uint8_t record_time[6];
|
SYS_DATA_MENDER mender;
|
uint8_t reserve[2];
|
} RESTORE_DEFAULT_SYSLOG_FORMAT_T; // 4 bytesÔ¤Áô//»Ö¸´Ä¬ÈÏÉèÖüǼ¸ñʽ
|
|
typedef struct // 30 bytes
|
{
|
uint16_t record_num; // ÐòºÅ
|
uint8_t record_time[6]; // ʱ¼ä
|
SYS_DATA_MENDER mender; // ÐÞ¸ÄÕß
|
uint16_t plant_number; // ³§¼Ò´úÂë
|
uint8_t pay_type;
|
uint16_t pay_cnt;
|
int32_t pay_value;
|
long long pay_value_cumulate;
|
uint8_t reserve[4]; // Ô¤ÁôÊÇΪÁËÒÔºóÇø·ÖÆøÁ¿³äÖµ
|
} PAY_SYSLOG_FORMAT_T; // 4 bytesÔ¤Áô // ³äÖµ¼Ç¼
|
|
typedef struct
|
{
|
uint16_t record_num; // ÐòºÅ
|
uint8_t record_time_before[6]; // ʱ¼ä
|
TIMING_CAUSE_T timing_cause;
|
uint16_t plant_number; // ³§¼Ò´úÂë
|
uint8_t record_time_now[6];
|
uint8_t reserve[6];
|
}TIMING_SYSLOG_FORMAT_T;//6 bytesÔ¤Áô //Уʱ¼Ç¼
|
|
typedef union
|
{
|
struct gas_cumulate_amend // 36 bytes
|
{
|
double cumulate_sc_before;
|
double cumulate_wc_before;
|
double cumulate_sc_after;
|
double cumulate_wc_after;
|
uint8_t reserve[4];
|
} gas_cumulate_amend_s; // ÀÛ»ýÁ¿Ð޸ļǼ
|
struct balance_amend // 20 bytes
|
{
|
double balance_before;
|
double balance_now;
|
uint8_t reserve[4]; // Ô¤ÁôÊÇΪÁËÒÔºóÇø·ÖÊÇÓà¶î»¹ÊÇÓàÁ¿
|
} balance_amend_s; // Óà¶î/ÓàÁ¿Ð޸ļǼ¸ñʽ
|
struct billing_price_amend // 222 bytes
|
{
|
LADDER_PRICE_CFG_PARA_T price_cfg_before;
|
LADDER_PRICE_CFG_PARA_T price_cfg_now;
|
} billing_price_amend_s; // ¼Æ·Ñ¼Û¸ñÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪLADDER_PRICE_CFG_PARA_TÖÐÓÐÔ¤Áô£©
|
struct press_cfg_amend // 88 bytes
|
{
|
SYS_PRESS_ALARM_CFG_T press_cfg_before;
|
SYS_PRESS_ALARM_CFG_T press_cgf_now;
|
} press_cfg_amend_s; // ѹÁ¦ÅäÖÃÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪSYS_PRESS_ALARM_CFG_TÖÐÓÐÔ¤Áô£©
|
struct temp_cfg_amend // 76 bytes
|
{
|
SYS_TEMP_ALARM_CFG_T temp_cfg_before;
|
SYS_TEMP_ALARM_CFG_T temp_cgf_now;
|
} temp_cfg_amend_s; // ζÈÅäÖÃÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪSYS_TEMP_ALARM_CFG_TÖÐÓÐÔ¤Áô£©
|
struct flow_cfg_amend // 56 bytes
|
{
|
SYS_FLOW_ALARM_CFG_T flow_cfg_before;
|
SYS_FLOW_ALARM_CFG_T flow_cfg_now;
|
} flow_cfg_amend_s; // Á÷Á¿ÅäÖÃÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪSYS_FLOW_ALARM_CFG_TÖÐÓÐÔ¤Áô£©
|
struct cal_pulse_amend // 16 bytes
|
{
|
CAL_PULSE_PARA_T cal_pulse_cfg_before;
|
CAL_PULSE_PARA_T cal_pulse_cfg_now;
|
} cal_pulse_amend_s; // ±ê¶¨Âö³å²ÎÊýÐ޸ļǼ¸ñʽ£¨²»ÓÃÔ¤Áô£¬ÒòΪCAL_PULSE_PARA_TÖÐÓÐÔ¤Áô£©
|
struct sys_func_cfg_amend
|
{
|
uint16_t func_cfg_bytes_before[SYS_FUNC_CTL_BYTES_TYPE_LENGTH >> 1];
|
uint16_t func_cfg_bytes_now[SYS_FUNC_CTL_BYTES_TYPE_LENGTH >> 1];
|
} sys_func_cfg_amend_s;
|
struct sys_alarm_ctl_send_amend
|
{
|
uint16_t alarm_ctl_bytes_before[SYS_ALARM_CTL_BYTES_TYPE_LENGTH >> 1];
|
uint16_t alarm_send_bytes_before[SYS_ALARM_SEND_BYTES_TYPE_LENGTH >> 1];
|
uint16_t alarm_ctl_bytes_now[SYS_ALARM_CTL_BYTES_TYPE_LENGTH >> 1];
|
uint16_t alarm_send_bytes_now[SYS_ALARM_SEND_BYTES_TYPE_LENGTH >> 1];
|
} sys_alarm_ctl_bytes_amend_s;
|
struct sys_valve_ctl_bytes_amend
|
{
|
uint16_t valve_ctl_bytes_before[VALVE_CTL_LEN >> 1];
|
uint16_t valve_ctl_bytes_now[VALVE_CTL_LEN >> 1];
|
} sys_valve_ctl_bytes_amend_s;
|
struct billing_alarm_cfg_amend
|
{
|
BILLING_ALARM_CFG_T billing_alarm_before;
|
BILLING_ALARM_CFG_T billing_alarm_now;
|
} billing_alarm_cfg_amend_s;
|
struct sec_corr_para_amend
|
{
|
SECOND_ORDER_CORR_T sec_corr_para_before;
|
SECOND_ORDER_CORR_T sec_corr_para_now;
|
}sec_corr_para_amend_s;
|
} PARA_AMEND_UNION_T;
|
|
typedef struct
|
{
|
uint16_t record_num;
|
uint8_t record_time[6];
|
SYS_DATA_MENDER mender;
|
uint16_t plant_number;
|
PARA_AMEND_UNION_T para_amend_union;
|
} PARA_AMEND_SYSLOG_FORMAT_T; // ¸÷ÖÖ²ÎÊýÐ޸ļǼ¸ñʽ
|
|
typedef struct // 110 bytes
|
{
|
uint8_t check_sum; // ÓÉÓÚ´¢´æ¶Áдʱ¿ÉÄܱ»Öжϴò¶Ï£¬ÇÒÔ¶´«Êý¾Ý½ÏÎªÖØÒª£¬ËùÒÔµ¥¶ÀÌí¼ÓУÑéºÍ×öÅжϡ£
|
uint8_t record_time[6];
|
double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
|
double forward_cumulate_wc;
|
float instant_sc;
|
float instant_wc;
|
float temperature;
|
float pressure;
|
uint32_t price_now;
|
double balance_now;
|
float cpu_temp;
|
uint8_t lith_vcc;
|
uint8_t alka_vcc;
|
uint16_t snr_up; // ÐÅÔë±È_ÉÏͨµÀ
|
uint16_t snr_down;
|
uint8_t signal_gain_up;
|
uint8_t signal_gain_down;
|
uint8_t signal_intensity_up;
|
uint8_t signal_intensity_down;
|
float tof_up;
|
float tof_down;
|
float sound_vel;
|
float flow_vel;
|
uint16_t sys_state_bytes[SYS_STATUS_BYTES_TYPE_LENGTH >> 1];
|
uint8_t reserve[17];
|
} SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T; // ·¢ËÍÁ÷Á¿¶³½áÊý¾Ý¼Ç¼¸ñʽ
|
|
typedef struct // 62 bytes
|
{
|
uint8_t record_time[6];
|
double forward_cumulate_sc; // ÕýÏò±ê¿öÀÛ»ýÁ¿
|
double forward_cumulate_wc;
|
float instant_sc;
|
float instant_wc;
|
float temperature;
|
float pressure;
|
uint32_t price_now;
|
double balance_now;
|
uint8_t reserve[12];
|
} SYS_FLOW_DATA_SYSLOG_FORMAT_T; // 50 bytes + 12 bytesÔ¤Áô Á÷Á¿Êý¾ÝÀúÊ·¼Ç¼´¢´æ¸ñʽ
|
|
#pragma pack()
|
|
extern PAY_SYSLOG_FORMAT_T pay_para_g;
|
extern VALVE_SYSLOG_FORMAT_T valve_log_g;
|
extern PARA_AMEND_SYSLOG_FORMAT_T para_amend_log_g;
|
extern TIMING_SYSLOG_FORMAT_T timing_log_g;
|
|
|
void System_ValveLog_CyclicStorageHandler(VALVE_WORK_TYPE *pSucc_flag, SYS_ALARM_VALVE_T cause_id,
|
VALVE_SYSLOG_FORMAT_T *valve_log_buffer_p, __IO RTC_TimeDateTypeDef *calendar_p);
|
void AlarmLog_CyclicStorageHandler(SYS_ALARM_VALVE_T * pAlarm_id, SYS_REAL_TIME_DATA_T *realtime_data_p,
|
BILLING_REAL_PARA_T *billing_realtime_p, __IO RTC_TimeDateTypeDef *calendar_p);
|
void SendFlowData_LogRecordCreated(SYS_SEND_FLOW_DATA_SYSLOG_FORMAT_T *pOutput, SYS_REAL_TIME_DATA_T *realtime_data_p,
|
BILLING_REAL_PARA_T *billing_realtime_p, __IO RTC_TimeDateTypeDef *calendar_p);
|
void FlowData_LogRecordCreated(SYS_FLOW_DATA_SYSLOG_FORMAT_T *pOutput, SYS_REAL_TIME_DATA_T *realtime_data_p,
|
BILLING_REAL_PARA_T *billing_realtime_p, __IO RTC_TimeDateTypeDef *calendar_p);
|
|
void PayLog_CyclicStorageHandler(uint8_t *pPay_flag, PAY_SYSLOG_FORMAT_T *pay_log_buffer_p, __IO RTC_TimeDateTypeDef *calendar_p);
|
void ParaAmendLog_CyclicStorageHandler(PARA_AMEND_T *pAmend_flag, PARA_AMEND_SYSLOG_FORMAT_T *amend_log_buffer_p, __IO RTC_TimeDateTypeDef *calendar_p);
|
|
void TimingLog_CyclicStorageHandler(TIMING_SYSLOG_FORMAT_T * timing_log_buffer_p,__IO RTC_TimeDateTypeDef *calendar_p);
|
|
#endif
|