/** ****************************************************************************** * @file User\Global\g_dcpile.h * @author 路淮 * @version v0.1 * @date 2026-05-21 * @brief 充电桩管理头文件 ****************************************************************************** */ #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 */