Files

54 lines
1.8 KiB
C

#ifndef CALCULATE_TASK_H
#define CALCULATE_TASK_H
#ifdef __cplusplus /*C++编译环境下兼容C语言*/
extern "C" {
#endif
/*------ Exported includes(头文件) ----------------------*/
#include "main.h"
#include "meter_calculate/meter_calculate_impl.h"
/*------ Exported macro(宏定义) -------------------------*/
/*------ Exported struct(结构体定义) --------------------*/
typedef struct
{
U8_T u8_billing_flag; //计费标志 0不进行计量计费 1进行计量计费 -- 注意,充电结束后应延时足够的时间,保证电量更新完全
U8_T u8_discharge_flag; //充放电标志 0常规充电 1放电
U32_T u32_billing_time; //充电结束后计量延时起始时间
U64_T u64_whm_start_energy; //循环起始电量值 精度 0.0001kW 用于存储上次周期计算电表低值
/* 充电中临时订单写入节流(秒):上次写入时间戳 */
U32_T u32_last_temp_save_sec;
}S_CHAR_DATA;
typedef struct
{
U8_T u8_period_time; //当前费率时段 0-95 代表一天15分钟的时段位置
U32_T u32_money_rate; //当前电费 单位0.0001元
U32_T u32_money_service; //当前服务费 单位0.0001元
}S_REAL_FEE_DATA;
typedef struct
{
U8_T u8_gunCnt; //枪数量
U16_T u16_timer; //周期计数
S_REAL_FEE_DATA s_real_fee_data[NUM_2]; //实时电费信息 - 0代表充电电费 1代表放电电费
S_CHAR_DATA s_char_data[GUN_MAX_CNT]; //充电计费 控制信息
S_LOG_DATA s_gun_log[GUN_MAX_CNT]; //枪订单信息
}S_METERING_BILLING_CTRL;
/*------ Exported variables(变量定义) -------------------*/
/*------ Exported function prototypes (函数声明) -------*/
void v_meterfee_task(void *arg);
#ifdef __cplusplus
}
#endif
#endif /* CALCULATE_TASK_H */