mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-19 18:45:03 +08:00
5.6 KiB
5.6 KiB
根目录 > jsowell-netty
jsowell-netty 模块
Netty 通信模块,处理充电桩设备的 TCP/MQTT 协议通信。
变更记录 (Changelog)
2026-02-03 11:32:30
- 初始化模块文档
- 识别云快充协议处理器 70+ 个
- 识别电动自行车协议处理器 7 个
模块职责
- TCP 服务: 基于 Netty 的 TCP 服务器,处理充电桩设备连接
- MQTT 服务: MQTT 协议支持
- 协议解析: 云快充协议、电动自行车协议解析
- 消息处理: 设备登录、心跳、充电控制、数据上报
- 远程控制: 远程启停充电、参数配置、固件升级
入口与启动
Netty 服务器
// NettyServer.java - 云快充 TCP 服务器
@Component
public class NettyServer {
// 启动 TCP 服务器,监听充电桩连接
}
// MqttSever.java - MQTT 服务器
@Component
public class MqttSever {
// 启动 MQTT 服务器
}
服务管理
// NettyServerManager.java
@Component
public class NettyServerManager {
// 管理多个 Netty 服务器实例
}
对外接口
协议处理器(云快充)
| Handler | 帧类型 | 说明 |
|---|---|---|
LoginRequestHandler |
0x01 | 设备登录 |
HeartbeatRequestHandler |
0x03 | 心跳 |
BillingTemplateRequestHandler |
0x05 | 计费模板请求 |
RemoteStartChargingRequestHandler |
0x33 | 远程启动充电 |
RemoteStopChargingRequestHandler |
0x35 | 远程停止充电 |
UploadRealTimeMonitorHandler |
0x13 | 实时监控数据上报 |
ChargeEndHandler |
0x15 | 充电结束 |
ConfirmStartChargingRequestHandler |
0x17 | 确认启动充电 |
协议处理器(电动自行车)
| Handler | 说明 |
|---|---|
RegistrationHandler |
设备注册 |
HeartbeatHandler |
心跳 |
SettlementUploadHandler |
结算上报 |
PowerHeartbeatHandler |
电源心跳 |
业务服务
// YKCBusinessService.java - 云快充业务服务
public interface YKCBusinessService {
void handleLogin(LoginRequestData data);
void handleHeartbeat(HeartbeatData data);
void handleChargeEnd(TransactionRecordsData data);
// ...
}
// EBikeBusinessService.java - 电动自行车业务服务
public interface EBikeBusinessService {
void handleRegistration(RegistrationData data);
void handleSettlement(SettlementData data);
// ...
}
关键依赖与配置
Maven 依赖
<dependencies>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.75.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec-mqtt</artifactId>
<version>4.1.79.Final</version>
</dependency>
<dependency>
<groupId>com.jsowell</groupId>
<artifactId>jsowell-pile</artifactId>
</dependency>
<dependency>
<groupId>com.jsowell</groupId>
<artifactId>jsowell-thirdparty</artifactId>
</dependency>
</dependencies>
数据模型
协议数据结构
| 类 | 说明 |
|---|---|
YKCDataProtocol |
云快充协议数据 |
YKCBaseMessage |
基础消息 |
LoginRequestData |
登录请求数据 |
RealTimeMonitorData |
实时监控数据 |
TransactionRecordsData |
交易记录数据 |
EBikeDataProtocol |
电动自行车协议数据 |
帧类型码
定义在 YKCFrameTypeCode.java:
0x01/0x02- 登录请求/响应0x03/0x04- 心跳请求/响应0x13/0x14- 实时数据上报/响应0x15/0x16- 充电结束上报/响应0x33/0x34- 远程启动/响应0x35/0x36- 远程停止/响应
测试与质量
测试客户端
// TestNettyClient.java
public class TestNettyClient {
// 用于测试 Netty 服务器的客户端
}
常见问题 (FAQ)
Q: 设备无法连接?
- 检查 TCP 端口是否开放
- 检查设备 SN 是否已注册
- 查看
YKCBusinessServiceImpl.handleLogin()日志
Q: 充电无法启动?
- 检查设备在线状态
- 检查充电枪状态
- 查看
RemoteStartChargingRequestHandler处理逻辑
Q: 实时数据不更新?
- 检查心跳是否正常
- 检查
UploadRealTimeMonitorHandler处理 - 查看 RabbitMQ 消息队列状态
相关文件清单
jsowell-netty/
├── src/main/java/com/jsowell/netty/
│ ├── client/ # Netty 客户端
│ ├── decoder/ # 协议解码器
│ │ ├── YkcProtocolDecoder.java
│ │ ├── YouDianProtocolDecoder.java
│ │ └── YunKuaiChongDecoder.java
│ ├── domain/ # 数据模型
│ ├── factory/ # 处理器工厂
│ │ ├── YKCOperateFactory.java
│ │ └── EBikeOperateFactory.java
│ ├── handler/ # 消息处理器
│ │ ├── yunkuaichong/ # 云快充处理器 (70+)
│ │ └── electricbicycles/ # 电动自行车处理器
│ ├── server/ # Netty 服务器
│ │ ├── yunkuaichong/ # 云快充服务器
│ │ ├── electricbicycles/ # 电动自行车服务器
│ │ └── mqtt/ # MQTT 服务器
│ ├── service/ # 业务服务
│ │ ├── yunkuaichong/
│ │ ├── electricbicycles/
│ │ ├── camera/
│ │ └── rabbitmq/ # RabbitMQ 监听
│ └── strategy/ # 策略模式
│ └── ykc/ # 云快充策略
└── pom.xml