Initial commit: CCU621_M firmware project with BLE debug link support.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-08 17:28:36 +08:00
commit 9ceb218f80
1597 changed files with 724159 additions and 0 deletions
+372
View File
@@ -0,0 +1,372 @@
#ifndef FAULT_INTERFACE_H
#define FAULT_INTERFACE_H
#ifdef __cplusplus /*C++编译环境下兼容C语言*/
extern "C" {
#endif
/*------ Exported includes(头文件) ----------------------*/
#include "main.h"
#include "publicdata/publicdata.h"
/*------ Exported macro(宏定义) -------------------------*/
#define FAULT_ACTION_CACHE_SIZE 16 //故障动作缓存大小
/*------ Exported struct(结构体定义) --------------------*/
typedef enum
{
E_FAULT_NULL = 0,
//常规停止代码
E_NORMAL_1000 = 1000, //1 1000 充满停止
E_NORMAL_1001, //1 1001 本地停止充电
E_NORMAL_1002, //1 1002 后台停止充电
E_NORMAL_1003, //1 1003 达到设置充电时长停止
E_NORMAL_1004, //1 1004 达到设置充电电量停止
E_NORMAL_1005, //1 1005 达到设置充电金额停止
E_NORMAL_1006, //1 1006 达到离线停机条件
E_NORMAL_1007, //1 1007 达到SOC终止条件停止
E_NORMAL_1008, //1008 用户拔枪停止
E_NORMAL_1009, //1 1009 APP停止充电
E_NORMAL_1010, //1010 车端S2主动断开
E_NORMAL_1011, //1 1011 BMS停止充电
E_NORMAL_1012, //1 1012 账户余额不足
E_NORMAL_1013, //1 1013 预付金额不足
E_NORMAL_1014, //1014 车辆S2闭合超时
E_NORMAL_1015, //1015 充电中车辆S2断开超时
E_NORMAL_1016, //1016 达到涓流充电停机条件
//直流充电设备异常代码
E_FAULT_13000 = 13000, //1 13000 交流输入断路器故障
E_FAULT_13001, //1 13001 避雷器故障
E_FAULT_13002, //1 13002 交流输入接触器粘连故障
E_FAULT_13003, //1 13003 交流输入接触器拒动/误动故障
E_FAULT_13004, //1 13004 直流输出接触器粘连故障
E_FAULT_13005, //1 13005 直流输出接触器拒动/误动故障
E_FAULT_13006, //1 13006 直流输出熔断器故障
E_FAULT_13007, //1 13007 辅助电源故障
E_FAULT_13008, //13008 泄放继电器拒动/误动故障
E_FAULT_13009, //13009 泄放继电器粘连
E_FAULT_13010, //1 13010 充电枪电子锁上锁故障
E_FAULT_13011, //1 13011 充电枪电子锁解锁故障
E_FAULT_13012, //13012 PE 断线故障
E_FAULT_13013, //1 13013 充电接口过温故障
E_FAULT_13014, //1 13014 充电接口过温告警
E_FAULT_13015, //1 13015 控制导引电压异常
E_FAULT_13016, //1 13016 充电中车辆控制导引故障
E_FAULT_13017, //1 13017 急停按钮动作故障
E_FAULT_13018, //1 13018 充电桩门禁故障
E_FAULT_13019, //1 13019 充电机柜门禁故障
E_FAULT_13020, //13020 功率控制模块故障
E_FAULT_13021, //13021 功率控制模块告警
E_FAULT_13022, //1 13022 功率控制模块通信故障
E_FAULT_13023, //13023 桥接接触器拒动/误动故障
E_FAULT_13024, //13024 桥接接触器粘连故障
E_FAULT_13025, //13025 ESAM 故障
E_FAULT_13026, //13026 预留( 充电机柜加热部件故障)
E_FAULT_13027, //13027 充电桩过温故障( 可选)
E_FAULT_13028, //13028 充电桩过温告警( 可选)
E_FAULT_13029, //13029 充电机柜过温告警
E_FAULT_13030, //1 13030 充电机柜过温故障
E_FAULT_13031, //1 13031 预留( 散热系统故障)
E_FAULT_13032, //1 13032 烟感报警
E_FAULT_13033, //1 13033 充电桩水浸故障
E_FAULT_13034, //1 13034 充电机柜水浸故障
E_FAULT_13035, //13035 充电机环境湿度告警
E_FAULT_13036, //13036 数据合法性校验失败(“ 充电启动帧” 中“ 负荷控制开关” 等数据项合法性校验失败)
E_FAULT_13037, //13037 充电控制器“ 版本校验” 未完成
E_FAULT_13038, //13038 充电控制器“ 下发充电参数” 未完成
E_FAULT_13039, //1 13039 充电桩暂停服务, 拒绝启动
E_FAULT_13040, //1 13040 充电桩处于“工作” 状态, 拒绝启动
E_FAULT_13041, //1 13041 充电桩与车辆处于未连接状态,拒绝启动
E_FAULT_13042, //1 13042 绝缘监测故障
E_FAULT_13043, //1 13043 绝缘监测告警
E_FAULT_13044, //13044 充电桩执行功率分配策略失败故障( TBD)
E_FAULT_13045, //13045 预留( 输入电压过压故障) 改主机液冷故障
E_FAULT_13046, //13046 预留( 输入电压欠压故障) 改为主机柜急停
E_FAULT_13047, //1 13047 泄放回路故障
E_FAULT_13048, //1 13048 直流输出电压过压故障
E_FAULT_13049, //1 13049 直流输出电流过流故障
E_FAULT_13050, //1 13050 直流输出电压欠压故障
E_FAULT_13051, //13051 无空闲模块可用( 限智能分配功率) ( TBD)
E_FAULT_13052, //13052 电池反接故障( TBD)
E_FAULT_13053, //1 13053 预充阶段调压失败
E_FAULT_13054, //1 13054 输出电流大于车辆需求电流
E_FAULT_13055, //1 13055 充电过程中功率控制器为非工作状态
E_FAULT_13056, //1 13056 电能计量异常
E_FAULT_13057, //1 13057 车辆鉴权码不一致
E_FAULT_13058, //13058 未上送交易记录已满
E_FAULT_13059, //13059 交易记录存储失败
E_FAULT_13060, //13060 CAN 通讯版本校验异常
E_FAULT_13061, //13061 进程运行异常
E_FAULT_13062, //13062 程序文件校验失败
E_FAULT_13063, //13063 程序文件损坏
E_FAULT_13064, //1 13064 非法 VIN
E_FAULT_13065, //13065 非即插即充设备
E_FAULT_13066, //13066 充电桩处于“暂停” 状态( 27930中的暂停状态)
E_FAULT_13067, //1 13067 即插即充鉴权失败
E_FAULT_13068, //1 13068 充电桩充电中暂停超时( 27930中的暂停充电)
E_FAULT_13069, //13069 充电控制器通讯超时
E_FAULT_13070, //13070 读卡器通讯超时
E_FAULT_13071, //1 13071 电表通讯超时
E_FAULT_13072, //13072 两枪同充一车模式下充电控制器间通信超时
E_FAULT_13073, //1 13073 异常掉电
E_FAULT_13074, //1 13074 预留 液冷通讯超时
E_FAULT_13075, //13075 功率控制器间通讯超时( 功率并
E_FAULT_13076, //13076 功率控制器接收遥控、 遥信报文超时故障
E_FAULT_13077, //1 13077 功率控制器与环境信息采集模块通讯超时
E_FAULT_13078, //1 13078 车辆识别数据帧接收超时
E_FAULT_13079, //13079 充电启动命令应答超时
E_FAULT_13080, //13080 等待充电启动完成状态超时
E_FAULT_13081, //13081 充电停止命令应答超时
E_FAULT_13082, //13082 等待充电停止完成状态超时
E_FAULT_13083, //13083 充电启动完成状态确认超时
E_FAULT_13084, //13084 功率调节指令应答超时
E_FAULT_13085, //13085 充电停止完成状态确认超时
E_FAULT_13086, //13086 充电控制器间并枪时通信异常(充电控制器与充电控制器通讯超时)
E_FAULT_13087, //13087 功率控制器地址冲突(并柜时)
E_FAULT_13088, //13088 充电控制器地址冲突
E_FAULT_13089, //13089 人机通信异常
E_FAULT_13090, //1 13090 设备自检超时故障
E_FAULT_13091, //13091 内部通讯故障
E_FAULT_13092, //13092 车位锁故障
E_FAULT_13093, //13093 车位锁电池耗尽故障
E_FAULT_13094, //13094 车位锁落锁失败故障
E_FAULT_13095, //13095 终止订单号异常
E_FAULT_13096, //13096 开出盒通讯故障
E_FAULT_13097, //13097 开入盒通讯故障
E_FAULT_13098, //13098 绝缘采样盒通讯故障
E_FAULT_13099, //1 13099 直流采样盒通讯故障(AB板通讯故障)
E_FAULT_13100, //13100 导引板通讯故障
E_FAULT_13101, //13101 灯板通讯告警 //改为主机液冷通信超时
E_FAULT_13102, //13102 充电控制器未知停止原因
E_FAULT_13103, //13103 辅助电源电压切换回路故障
E_FAULT_13104, //1 13104 输出电流超过车辆最高允许电流
E_FAULT_13105, //13105 系统时钟异常
E_FAULT_13106, //13106 计费模型请求超时故障
E_FAULT_13107, //13107 计费模型不合法故障
E_FAULT_13108, //13108 对时超时故障
E_FAULT_13109, //13109 对时时间不合法故障
//直流充电电源异常代码
E_FAULT_14000 = 14000, //14000 开关模块故障
E_FAULT_14001, //1 14001 开关模块告警
E_FAULT_14002, //1 14002 开关模块通信故障
E_FAULT_14003, //14003 开关模块拒动/误动故障
E_FAULT_14004, //14004 开关模块粘连故障
E_FAULT_14005, //14005 预留(开关模块拒动/误动告警)
E_FAULT_14006, //14006 预留(开关模块粘连告警)
E_FAULT_14007, //1 14007 充电模块故障
E_FAULT_14008, //14008 充电模块过温故障
E_FAULT_14009, //1 14009 充电模块过温告警
E_FAULT_14010, //1 14010 充电模块输出短路故障
E_FAULT_14011, //1 14011 充电模块输出过流告警
E_FAULT_14012, //1 14012 充电模块输出过压告警
E_FAULT_14013, //1 14013 充电模块输出欠压告警
E_FAULT_14014, //1 14014 充电模块交流输入告警
E_FAULT_14015, //1 14015 充电模块输入过压告警
E_FAULT_14016, //1 14016 充电模块输入欠压告警
E_FAULT_14017, //1 14017 充电模块输入缺相告警
E_FAULT_14018, //14018 充电模块输入不平衡告警
E_FAULT_14019, //1 14019 充电模块通信故障
E_FAULT_14020, //1 14020 充电模块启动失败
E_FAULT_14021, //1 14021 充电模块关机失败
E_FAULT_14022, //1 14022 充电模块风扇故障
E_FAULT_14023, //1 14023 充电模块泄放故障
E_FAULT_14024, //14024 充电模块地址异常
E_FAULT_14025, //14025 PFC 电路过温故障
E_FAULT_14026, //14026 主变压器过温故障
E_FAULT_14027, //14027 DC/DC 电路过温故障
E_FAULT_14028, //14028 输出隔离二极管故障
E_FAULT_14029, //14029 模块启动故障(非保护动作造成的模块启动失败)
E_FAULT_14030, //14030 PFC 电路总故障
E_FAULT_14031, //14031 PFC 电路过压故障
E_FAULT_14032, //14032 PFC 电路偏压故障
E_FAULT_14033, //14033 DC/DC 电路总故障
E_FAULT_14034, //14034 高低压切换电路故障
E_FAULT_14035, //14035 输出电路不平衡故障
E_FAULT_14036, //1 14036 充电模块不输出告警
E_FAULT_14037, //1 14037 启动充电前直流输出接触器外侧电压大于充电机最大输出电压
E_FAULT_14038, //1 14038 启动充电前直流输出接触器外侧电压小于充电机最小输出电压
//直流充电车辆异常代码
E_FAULT_15000 = 15000, //1 15000 BMS 通讯故障
E_FAULT_15001, //1 15001 直流充电控制模块判断BMS故障
E_FAULT_15002, //1 15002 BMS 发送故障信息
E_FAULT_15003, //1 15003 BCP 充电参数配置报文超时
E_FAULT_15004, //1 15004 BRO 充电准备就绪报文超时
E_FAULT_15005, //1 15005 BCS 电池充电状态报文超时
E_FAULT_15006, //1 15006 BCL 电池充电需求报文超时
E_FAULT_15007, //1 15007 BST 中止充电报文超时
E_FAULT_15008, //1 15008 BSM 动力蓄电池状态报文超时
E_FAULT_15009, //1 15009 BRO 报文(0x00 接收超时
E_FAULT_15010, //1 15010 BRO 报文(0xAA 接收超时
E_FAULT_15011, //1 15011 BRM 车辆辨识报文超时
E_FAULT_15012, //1 15012 BSM 报文中单体动力蓄电池电压过高
E_FAULT_15013, //1 15013 BSM 报文中单体动力蓄电池电压过低
E_FAULT_15014, //1 15014 BSM 报文中 SOC 过高
E_FAULT_15015, //1 15015 BSM 报文中 SOC 过低
E_FAULT_15016, //1 15016 BSM 报文中充电过流
E_FAULT_15017, //1 15017 BSM 报文中动力蓄电池温度过高
E_FAULT_15018, //1 15018 BSM 报文中动力蓄电池绝缘状态异常
E_FAULT_15019, //1 15019 BSM 报文中连接器连接状态异
E_FAULT_15020, //1 15020 BRO 准备就绪后取消
E_FAULT_15021, //1 15021 BST 停止未知故障
E_FAULT_15022, //1 15022 BST 绝缘故障
E_FAULT_15023, //1 15023 BST 连接器过温
E_FAULT_15024, //1 15024 BST 元件、 输出连接器过温
E_FAULT_15025, //1 15025 BST 连接器故障
E_FAULT_15026, //1 15026 BST 电池组过温
E_FAULT_15027, //1 15027 BST 其他故障
E_FAULT_15028, //1 15028 BST 检测点 2 电压检测故障
E_FAULT_15029, //1 15029 BST 高压继电器故障
E_FAULT_15030, //1 15030 BST 电流过大
E_FAULT_15031, //1 15031 BST 电压异常
E_FAULT_15032, //1 15032 BRM 报文数据项异常(报文数据长度错误, BMS 通信协议版本号错误, 其他数据错误)
E_FAULT_15033, //1 15033 BCP 报文数据项异常(报文数据长度错误, 电池当前电压越限,其他数据项错误)
E_FAULT_15034, //1 15034 绝缘监测前直流输出接触器外侧电压越限(60V)
E_FAULT_15035, //1 15035 启动充电前直流输出接触器外侧电压与通信报文电池电压相差>±5%
E_FAULT_15036, //1 15036 电池最高允许充电电压小于充电机最小输出电压
E_FAULT_15037, //1 15037 输出电压大于车辆最高允许充电电压
E_FAULT_15038, //1 15038 需求电流超过车辆最高允许充电电流
E_FAULT_15039, //1 15039 需求电压超过车辆最高允许充电电压
E_FAULT_15040, //1 15040 BCS 中最高单体电池电压超过BCP 中最高允许单体电池电压
E_FAULT_15041, //1 15041 BSM 中最高动力蓄电池温度超过BCP 中单体动力蓄电池最高允许温度
E_FAULT_15042, //1 15042 SOC 达到上限值
E_FAULT_15043, //1 15043 BMS 通信协议版本不匹配
E_FAULT_15044, //1 15044 输出电流大于最高允许充电电流
E_FAULT_15045, //1 15045 电池端电压大于电池最高允许充电电压
E_FAULT_15046, //1 15046 SOC 达到 100 持续请求大电流(可选)
E_FAULT_16000 = 16000, //1 16000 液冷高压力故障
E_FAULT_16001, //1 16001 液冷低压力故障
E_FAULT_16002, //1 16002 液冷低液位故障
E_FAULT_16003, //1 16003 液冷循环泵过流故障
E_FAULT_16004, //1 16004 循环泵欠压报警
E_FAULT_16005, //1 16005 循环泵过压报警
E_FAULT_16006, //1 16006 循环泵过温报警
E_FAULT_16007, //1 16007 循环泵堵转报警
E_FAULT_16008, //1 16008 循环泵通信故障报警
E_FAULT_16009, //1 16009 低流量报警报警
E_FAULT_16010, //1 16010 高流量报警报警
E_FAULT_16011, //1 16011 风机过流报警
//主机故障
E_FAULT_17000 = 17000, //主机急停故障
E_FAULT_17001, //主机门禁
E_FAULT_17002, //主机水浸
E_FAULT_17003, //主机防雷
E_FAULT_17004, //主机烟感
E_FAULT_17005, //主机充电枪通信超时
E_FAULT_17006, //主机风扇调速通信超时
E_FAULT_17007, //主机计量计费 电表跳变故障
E_FAULT_17008, //主机计量计费 长时间未更新故障
E_FAULT_17009, //主机计量计费 费率异常故障
E_FAULT_17010, //主机
E_FAULT_17999, //主机故障范围
}E_FAULT_INFO;
//故障位置
typedef enum
{
E_WHOLE_PILE = 0, //整桩-终端
E_WHOLE_HOST = 500, //整桩-主机-功率分配
E_GUN = 1000, //枪地址
E_CHAR_MDU = 2000, //充电模块地址
E_SWH_MDU = 3000, //开关模块地址
E_OTHER = 4000, //其他位置
}E_FAULT_SITE;
//故障类型
typedef enum
{
E_RES = 0, //恢复
E_FAULT, //故障
E_WARN, //警告
}E_FAULT_TYPE;
typedef struct
{
U8_T u8_type; //拔枪恢复使能 0拔枪不恢复 1拔枪恢复
E_FAULT_SITE e_ingun; //归属枪号 0无 1一枪 2二枪
E_FAULT_INFO e_mag; //当前故障结构体数组
Comm_Time time; //动作时间
}Fault_data;
//实时故障告警数据
typedef struct
{
U8_T u8_fault_cnt; //故障数量
U8_T u8_warn_cnt; //告警数量
Fault_data fault_data[CURR_FAULT_MAX_CNT];
Fault_data warn_data[CURR_ALARM_MAX_CNT];
}REAL_FAULT_DATA_T;
typedef enum
{
E_FAULT_GET_DATA_EMERGENCY = 0, //急停
E_FAULT_GET_DATA_DOOR, //门禁
E_FAULT_GET_DATA_WARTER, //水浸
E_FAULT_GET_DATA_SPD, //防雷状态
E_FAULT_GET_DATA_SMOKE, //烟感
E_FAULT_GET_DATA_GUN_DC_FUSE, //直流熔断器状态
E_FAULT_GET_DATA_GUN_TEMP_THRESHOLD, //枪温阈值 精度 0.1度
E_FAULT_GET_DATA_GUN_TEMP, //枪温 精度 0.1度 参数值 0正极枪温 1负极枪温
E_FAULT_GET_DATA_GUN_CNT, //枪数量
E_FAULT_GET_DATA_DOOR_EN, //门禁使能
E_FAULT_GET_DATA_AC_CONTACT_EN, //交流接触器使能(与 sharedata bit_AcContactEna 一致)
E_FAULT_GET_DATA_GUN_LINK, //枪连接标志 0未连接 1已连接
E_FAULT_GET_DATA_GUN_CHAR_FLAG, //充电充电标志 0未充电 1充电中
E_FAULT_GET_DATA_AC_KM, //交流输入接触器反馈 0断开 1闭合(YX_PILE_KM
E_FAULT_GET_DATA_BUS_KM, //母联直流接触器反馈 0断开 1闭合(YX_PILE_BUS_KM
E_FAULT_GET_DATA_BUS_KM_EN, //母联继电器使能标识
E_FAULT_GET_DATA_FLOW_STATE, //枪 u8_gunNo 充电流程状态,与 flow 中 E_FLOW_STATE 一致
E_FAULT_GET_DATA_CHAR_TIME, //枪充电持续时间 秒(故障模块统一取数,内部转调 flow)
E_FAULT_GET_DATA_GUN_DC_KM_POS, //枪正母线直流输出接触器遥信 0断 1合
E_FAULT_GET_DATA_GUN_DC_KM_NEG, //枪负母线直流输出接触器遥信 0断 1合
}E_FAULT_GET_DATA_TYPE;
//故障动作缓存项
typedef struct
{
E_FAULT_SITE f_site; //故障位置
E_FAULT_TYPE type; //动作类型
E_FAULT_INFO e_info; //故障信息
U8_T action_type; //拔枪恢复使能
S16_T data1; //测量值1
S16_T data2; //测量值2
}FAULT_ACTION_CACHE_ITEM_T;
//故障动作缓存队列
typedef struct
{
FAULT_ACTION_CACHE_ITEM_T items[FAULT_ACTION_CACHE_SIZE];
U8_T front; //队列头
U8_T rear; //队列尾
U8_T count; //队列中元素数量
}FAULT_ACTION_CACHE_T;
/*------ Exported variables(变量定义) -------------------*/
extern const char fault_site_mag[3][20];
/*------ Exported function prototypes (函数声明) -------*/
void v_get_fault_info(E_FAULT_INFO e_info , char *mag ,U16_T u16_len);
void v_set_fault_data(E_FAULT_SITE f_site ,E_FAULT_TYPE type , E_FAULT_INFO e_info, U8_T action_type, S16_T data1 , S16_T data2);
U8_T u8_get_fault_sum(U8_T u8_seat, U8_T u8_flag);
void v_get_fault_data(REAL_FAULT_DATA_T *rl_data);
U8_T u8_cheak_fault_flag(E_FAULT_INFO e_info , E_FAULT_SITE f_site);
void v_fault_get_site_mag(E_FAULT_SITE e_site , char *mag , U8_T u8_len);
//故障动作缓存相关函数
void v_fault_cache_init(void);
U8_T u8_fault_cache_add(E_FAULT_SITE f_site ,E_FAULT_TYPE type , E_FAULT_INFO e_info, U8_T action_type, S16_T data1 , S16_T data2);
void v_fault_cache_process(void);
//对内使用函数接口
U16_T u16_fault_get_sys_data(U8_T u8_gunNo,E_FAULT_GET_DATA_TYPE e_dataType,U16_T u16_dataPara);
#ifdef __cplusplus
}
#endif
#endif /* FAULT_INTERFACE_H */