OcppPilot
OCPP 协议引擎
支撑全部 Pilot 产品的共享 Go 库。基于 WebSocket 的 OCPP-J 适配层,提供帧编解码、子协议协商(1.6 + 2.0.1 + 2.1)、 CALL/CALLRESULT/CALLERROR 按 uniqueId 关联,以及一套带类型的处理器接口。
为什么选择 OcppPilot?
协议层只解决一次——之后构建在它之上的每个产品都能直接跑通。
OCPP-J 线路编解码
对 OCPP-J 帧进行编码与解码——CALL、CALLRESULT、CALLERROR——并依据 1.6、2.0.1 与 2.1 的 schema 做完整校验。
WebSocket 连接处理
管理 wss:// 连接,涵盖子协议协商、自动重连与优雅关闭,客户端与服务端两种角色均适用。
按 uniqueId 关联帧
每个 CALL 都带有 uniqueId。OcppPilot 跟踪未完成的请求,并把每个 CALLRESULT 或 CALLERROR 匹配回发起它的那次调用。
原始帧捕获
接入原始 WebSocket 数据流,用于记录、调试或回放——线路上的每一个字节,在解析前后都可获取。
完整的 1.6 + 2.0.1 + 2.1 动作目录
三个协议版本的全部动作——BootNotification、Authorize、MeterValues、TransactionEvent,以及 2.1 新增的电价、DER 控制与周期性事件流动作——均已定义类型,开箱可用。
可嵌入的 Go 库
把 OcppPilot 作为 Go 模块引入你自己的程序。构建 CSMS、充电桩模拟器或测试框架——协议层已经替你处理好了。
工作原理
嵌入引擎,交给它处理协议。
引入 Go 模块
把 OcppPilot 加入你的 Go 项目。它开箱提供 WebSocket 层、帧编解码器以及带类型的报文处理器。
注册你的处理器
为你关心的 OCPP 动作实现处理器接口——BootNotification、StartTransaction、MeterValues 等等。
让 OcppPilot 处理线路层
连接管理、子协议协商、帧关联——都交给引擎。你只需专注业务逻辑。