69 lines
2.8 KiB
C
69 lines
2.8 KiB
C
|
|
#ifndef __DC_PILE_H
|
|
#define __DC_PILE_H
|
|
|
|
/* includes ----------------------------------------------------------------------------------------------*/
|
|
#include "global.h"
|
|
|
|
#define MAX_CHARGER_COUNT 2 // 充电桩数量
|
|
#define MAX_GUN_PER_CHARGER 2 // 每个充电桩最多枪数
|
|
|
|
enum CHARGER_STATE
|
|
{
|
|
IDLE_CHARGER_STATE = 0, // 空闲状态
|
|
REDAY_CHARGER_START_STATE = 1, // 等待桩启动回应
|
|
SUCCESS_CHARGER_STATE = 2, // 桩启动成功
|
|
FAIL_CHARGER_STATE = 3, // 桩启动失败
|
|
CHARGER_STATE_CHARGING = 4, // 桩充电中
|
|
REDAY_CHARGER_STOP_STATE = 5, // 等待桩停止回应
|
|
SUCCESS_CHARGER_STOP_STATE = 6, // 桩停止成功
|
|
FAIL_CHARGER_STOP_STATE = 7, // 桩停止失败
|
|
CHARGER_STATE_CHARGE_DONE = 8, // 桩充电完成
|
|
CHARGER_STATE_STOPPED = 9, // 桩主动停止
|
|
};
|
|
|
|
/* 充电枪结构体*/
|
|
typedef struct
|
|
{
|
|
uint8_t gun_index; // 枪索引
|
|
uint8_t charger_state; // 枪充电流程状态
|
|
uint8_t gun_step; // 枪独立状态步进
|
|
uint32_t gun_step_tick; // 枪非阻塞延时时间戳(ms)
|
|
uint8_t is_get_bill; // 是否获取账单数据
|
|
uint8_t trade_serial[TRADE_SERIAL_LENGTH]; // 交易流水号
|
|
PACK_DATA_0X33 charging_feedback; // 远程启机反馈数据
|
|
PACK_DATA_0X13 real_time_data; // 实时数据
|
|
PACK_DATA_0X03 heartbeat_status_data; // 心跳状态数据
|
|
PACK_DATA_0X3B fee_data; // 计费数据
|
|
PACK_DATA_0X23 bms_demand; // 充电过程BMS需求、充电机输出
|
|
PACK_DATA_0X25 bms_info; // 充电过程BMS信息
|
|
|
|
} ChargerGun;
|
|
|
|
/* 单个充电桩结构体*/
|
|
typedef struct
|
|
{
|
|
bool is_online; // 云快充是否连接
|
|
bool is_udp_online; // 是否本地在线
|
|
bool get_model; // 是否获取计费模型
|
|
uint8_t step; // 桩初始化/运行状态步进
|
|
uint32_t step_tick; // 非阻塞延时时间戳(ms)
|
|
PACK_DATA_0X01 login_info; // 登录信息数据
|
|
uint8_t charger_serial[CHARGER_SERIAL_LENGTH]; // 桩编号
|
|
ChargerGun guns[MAX_GUN_PER_CHARGER]; // 充电枪数组
|
|
} ChargerPile;
|
|
|
|
/*全局充电桩管理结构体*/
|
|
typedef struct
|
|
{
|
|
uint8_t charger_count; // 桩索引
|
|
ChargerPile charger_piles[MAX_CHARGER_COUNT]; // 充电桩数组
|
|
FEE_MODEL fee_model_global; // 全局计费模型
|
|
} ChargerManager;
|
|
|
|
extern ChargerManager g_charger_manager;
|
|
|
|
void init_chargers(void); // 初始化全局充电桩
|
|
|
|
#endif /* __DC_PILE_H */
|