Files

78 lines
3.1 KiB
C
Raw Permalink Normal View History

2026-03-31 15:46:04 +08:00
2026-05-21 12:19:01 +08:00
/**
******************************************************************************
* @file User\Global\g_dcpile.h
* @author
* @version v0.1
* @date 2026-05-21
* @brief
******************************************************************************
*/
2026-03-31 15:46:04 +08:00
#ifndef __DC_PILE_H
#define __DC_PILE_H
2026-05-21 12:19:01 +08:00
/* includes ------------------------------------------------------------------*/
2026-03-31 15:46:04 +08:00
#include "global.h"
2026-04-30 17:16:01 +08:00
#define MAX_CHARGER_COUNT 2 // 充电桩数量
2026-03-31 15:46:04 +08:00
#define MAX_GUN_PER_CHARGER 2 // 每个充电桩最多枪数
2026-05-21 10:01:28 +08:00
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, // 桩主动停止
};
2026-03-31 15:46:04 +08:00
/* 充电枪结构体*/
typedef struct
{
2026-05-21 10:01:28 +08:00
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信息
2026-03-31 15:46:04 +08:00
} ChargerGun;
/* 单个充电桩结构体*/
typedef struct
{
2026-05-21 10:01:28 +08:00
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]; // 充电枪数组
2026-03-31 15:46:04 +08:00
} ChargerPile;
/*全局充电桩管理结构体*/
typedef struct
{
2026-05-21 10:01:28 +08:00
uint8_t charger_count; // 桩索引
2026-03-31 15:46:04 +08:00
ChargerPile charger_piles[MAX_CHARGER_COUNT]; // 充电桩数组
2026-05-21 10:01:28 +08:00
FEE_MODEL fee_model_global; // 全局计费模型
2026-03-31 15:46:04 +08:00
} ChargerManager;
extern ChargerManager g_charger_manager;
2026-05-21 10:01:28 +08:00
void init_chargers(void); // 初始化全局充电桩
2026-03-31 15:46:04 +08:00
#endif /* __DC_PILE_H */