mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-06-19 22:59:46 +08:00
update claude.md
This commit is contained in:
218
jsowell-netty/CLAUDE.md
Normal file
218
jsowell-netty/CLAUDE.md
Normal file
@@ -0,0 +1,218 @@
|
||||
[根目录](../CLAUDE.md) > **jsowell-netty**
|
||||
|
||||
# jsowell-netty 模块
|
||||
|
||||
Netty 通信模块,处理充电桩设备的 TCP/MQTT 协议通信。
|
||||
|
||||
---
|
||||
|
||||
## 变更记录 (Changelog)
|
||||
|
||||
### 2026-02-03 11:32:30
|
||||
- 初始化模块文档
|
||||
- 识别云快充协议处理器 70+ 个
|
||||
- 识别电动自行车协议处理器 7 个
|
||||
|
||||
---
|
||||
|
||||
## 模块职责
|
||||
|
||||
- **TCP 服务**: 基于 Netty 的 TCP 服务器,处理充电桩设备连接
|
||||
- **MQTT 服务**: MQTT 协议支持
|
||||
- **协议解析**: 云快充协议、电动自行车协议解析
|
||||
- **消息处理**: 设备登录、心跳、充电控制、数据上报
|
||||
- **远程控制**: 远程启停充电、参数配置、固件升级
|
||||
|
||||
---
|
||||
|
||||
## 入口与启动
|
||||
|
||||
### Netty 服务器
|
||||
|
||||
```java
|
||||
// NettyServer.java - 云快充 TCP 服务器
|
||||
@Component
|
||||
public class NettyServer {
|
||||
// 启动 TCP 服务器,监听充电桩连接
|
||||
}
|
||||
|
||||
// MqttSever.java - MQTT 服务器
|
||||
@Component
|
||||
public class MqttSever {
|
||||
// 启动 MQTT 服务器
|
||||
}
|
||||
```
|
||||
|
||||
### 服务管理
|
||||
|
||||
```java
|
||||
// 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` | 电源心跳 |
|
||||
|
||||
### 业务服务
|
||||
|
||||
```java
|
||||
// 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 依赖
|
||||
|
||||
```xml
|
||||
<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` - 远程停止/响应
|
||||
|
||||
---
|
||||
|
||||
## 测试与质量
|
||||
|
||||
### 测试客户端
|
||||
|
||||
```java
|
||||
// TestNettyClient.java
|
||||
public class TestNettyClient {
|
||||
// 用于测试 Netty 服务器的客户端
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题 (FAQ)
|
||||
|
||||
### Q: 设备无法连接?
|
||||
1. 检查 TCP 端口是否开放
|
||||
2. 检查设备 SN 是否已注册
|
||||
3. 查看 `YKCBusinessServiceImpl.handleLogin()` 日志
|
||||
|
||||
### Q: 充电无法启动?
|
||||
1. 检查设备在线状态
|
||||
2. 检查充电枪状态
|
||||
3. 查看 `RemoteStartChargingRequestHandler` 处理逻辑
|
||||
|
||||
### Q: 实时数据不更新?
|
||||
1. 检查心跳是否正常
|
||||
2. 检查 `UploadRealTimeMonitorHandler` 处理
|
||||
3. 查看 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
|
||||
```
|
||||
Reference in New Issue
Block a user