Add V1 protocol discovery and upgrade support
This commit is contained in:
1 parent
63a32aaf02
commit
d50be29246
5 files changed
+240
-6
No files matched your search
@@ -12,6 +12,43 @@
|
||||
- `C:\Users\ZK\Downloads\工厂协议V1.md`
|
||||
- `E:\CodeSpace\git-pro\eapil_qt_player_v2\EpProtocolDemo`
|
||||
|
||||
## 协议资料总览
|
||||
|
||||
本技能覆盖的协议资料不止设备搜索和升级。按当前本机资料,范围包括:
|
||||
|
||||
| 协议族 | 资料范围 | 本技能的使用方式 |
|
||||
|---|---|---|
|
||||
| V1 工厂协议 | 66 条工厂/产测命令;UDP 搜索与 TCP 控制 | `scripts/v1_discover.py` 搜索;`scripts/v1_command.py` 对文档中任意 CMD 发送 JSON 请求 |
|
||||
| V2 广播发现 | EPBC/EPBD、UDP 8941/8951、cmd 60000 | `scripts/v2_discover.py` |
|
||||
| V2 统一配置 | cmd 30101 起,覆盖基本信息、网络、音视频、音频、设备操作、SD 卡、夜视、时间、OSD、IO 等文档章节 | TCP 8942;当前脚本仅做身份查询,其他命令按文档单独实现/调用;不得把语义协议误当作固定传输协议 |
|
||||
| V2 产测 | cmd 1–26,LED、按键、老化、带宽、PCBA、屏幕、MIC、SD、芯片、镜头等 | 文档定义命令语义;需使用匹配固件提供的传输封装 |
|
||||
| TCP 文件传输 | EPFP,2001/2002/3001/4001,端口 8943 | `scripts/device_upgrade.py` 实现 4001 固件升级;其余命令保留文档语义,不由该脚本执行 |
|
||||
| TCP 音视频播放 | 端口 8944,cmd 0x01–0x05 | 长连接心跳、解码器列表、播放控制及媒体帧;不是设备发现或升级通道 |
|
||||
| V2 工厂整合协议 | 工厂扩展命令及设备信息接口 | 按资料版本与设备支持情况使用;与 V1 工厂命令空间不能混用 |
|
||||
|
||||
“覆盖”指协议字段、命令范围、边界和现有脚本能力都在参考文档中可查;不代表每种协议都有通用执行器,也不代表所有固件都启用了每条命令。新增写操作前须逐条查对应协议的请求、响应和副作用。
|
||||
|
||||
## V1 工厂协议
|
||||
|
||||
V1 使用独立于 V2 的报文,不带 `EPBP`/`EPTP`/`EPFP` 同步字:
|
||||
|
||||
```text
|
||||
uint32 CMD (network byte order)
|
||||
+ uint32 Data length (network byte order)
|
||||
+ Data bytes (normally UTF-8 JSON; optional)
|
||||
```
|
||||
|
||||
| 功能 | 传输 | 端口 | 命令 |
|
||||
|---|---|---:|---|
|
||||
| 设备发现请求/响应 | UDP 广播 | 设备 4942 | `0x5A0EFF00` / `0x5A0EFF01` |
|
||||
| 工厂/产测控制 | TCP | 4941 | 按 V1 文档中各接口的 CMD |
|
||||
|
||||
搜索请求 Data 为 `{"session":<随机整数>}`。只接受 `0x5A0EFF01` 且回显本次 session 的响应。设备响应 JSON 保留原始字段;协议版本之间字段可能不同,型号、SN、IP、MAC 等信息必须根据实际响应展示,缺失即标为不可用。多网卡或设备搜索工具已占用 UDP 4942 时,先确定本机接口/端口状态;不结束占用进程。V1 搜索用 `scripts/v1_discover.py`,对单个接口显式指定 `--interface <本机IPv4>`。
|
||||
|
||||
`scripts/v1_command.py` 是通用 TCP 请求器:指定 IP、CMD 和 JSON Data;默认仅显示预检,不建立连接。只有显式 `--execute` 才发送。它校验 TCP 响应头、长度和响应 CMD,但不解释各命令的业务成功字段、不判断写操作安全性,也不执行设备身份核验。因此必须先将发现的设备与完整 SN/型号人工核对;对写配置、复位、格式化、烧号或其他有副作用命令,先核实请求字段及后果并取得本次操作确认。不得用该通用脚本发送 ROM。
|
||||
|
||||
V1 工厂协议文档列出的 66 条命令及字段定义是命令语义来源。传输层客户端可承载这些 CMD,但各命令是否被具体型号/固件实现,仍需用对应版本文档或设备响应确认。V1 示例工程只实现了搜索和前五个 TCP 示例命令,不代表其它 V1 命令已在设备上验证。
|
||||
|
||||
## V2 协议矩阵
|
||||
|
||||
| 功能 | 传输与端口 | 帧格式 |
|
||||
|
||||
Reference in new issue
Block a user