fix(device-test): contain tool processes and add reviewed preview

This commit is contained in:
chenmingxuan committed 2026-10-30 12:43:36 +08:00
1 parent c98d7527a0
commit 7d31e09cb7
59 files changed
+23722

No files matched your search

@@ -0,0 +1,43 @@
# 设备协议范围与资料来源
发现、查询或升级前先运行 `python scripts/device_adapter.py capabilities`,再按设备实际协议选择路由。该命令不联网;能力清单不代表设备在线或已完成真机升级。
| 设备协议 | 已实现的 CLI 操作 | 升级范围 |
| --- | --- | --- |
| V1 | UDP `ff00/ff01` 搜索、TCP `2104` 身份/原生版本查询、`2170` 固件下发、指定字段比较 | 默认 ROM/身份预检;显式执行最多一次 TCP4941/MD5+ROM 下发;同命令code=0后另行回读 |
| V2 | UDP EPBP 搜索、TCP EPTP/30101 身份/版本查询、EPFP/4001 传输 | 默认预检,显式执行后最多一次传包;协议成功后另行回读验收 |
`--protocol v1` 或 `--protocol v2` 放在网络子命令之后;不传仍默认 V2,以兼容既有调用。这不是自动检测。参数和结果见 [设备适配器](device-adapter.md);V1 报文、字段和应答范围见 [V1 接口](v1-protocol.md)。
配置工具软件的 V2.x 与设备的 V1/V2 协议不是同一个概念。同一 GUI 可以包含多个协议页面。V2 端口拒绝或搜索无响应不能证明 V1 设备离线。已知 V1 时不自动切换 V2;身份冲突时不能默认选第一台。
## 已核对的资料
2026-10-19,交叉核对用户提供的两份本地原文及源码:
| 文件 | 文档修订 | SHA-256 |
| --- | --- | --- |
| `v1.md`(工厂协议) | v1.0.23,2026-08-03 | `50e8a76c880386e03e173582de3115bc60fd91e1f1ce5f4e8a6b190e4fc8f8b9` |
| `固件配置工具及web管理工具接口文档.md` | V1.9,2019-05-13 | `e4d373e3ab673add9da93ca4d07b5c8530189df086743ba7fb171757eb2efa10` |
| `src.zip` | 用户提供的 Qt C++ 源码;未提供上游提交版本 | `1603ece177973ec79a4ea3fb94f2984faf9c82ca3ec7f4eac224003385737fbc` |
两份原文均定义 TCP4941、设备UDP4942、网络字节序的 `U32 CMD + U32 Data长度 + Data`,以及无请求Data的 `0x5a0e2104`。较早文档补充 `0x5a0eff00/ff01` 搜索。其第21节的升级Data留空,现由源码核实为 MD5小写ASCII32 + ROM,非直接ROM。
原文和源码ZIP保留在提供资料的机器上,不做修改。可分发技能只包含必要协议摘记和来源摘要,避免带入其他配置章节及示例账号。重新取得同名文件时先核对内容及修订,不只按路径判断;运行时不依赖原始ZIP或作者机器路径。
同时核对了“Windows电脑端调试”插件 `embedded-app-pc-debug` 1.0.0 及上游 tag `v1.0.0`,提交 `cfb586cb5ffc5a69e66cd9adbc57e4ebf725d1d3`。该版本仅附 V2 设备脚本,V1 参考是作者机器的外部路径;路径是查找线索,不是团队部署依赖。已有用户资料时先核对,不重复索取已提供的文件。
## 源码核对位置
以下行号相对上述归档中的 `src/`,不是本机安装依赖:
| 位置 | 核实内容 |
| --- | --- |
| `EapilPanoCHead.h:21–35,160` | 成功码0、TCP4941、UDP4942、升级命令2170 |
| `EpConnection.cpp:116–195`,`sendTcpFile` | 大端CMD/Length;全ROM的MD5.toHex();Length=32+ROM大小;MD5文本后跟ROM |
| `EpConnection.cpp:369–411` | 连续TCP文件字节及本地发送结束,不存在自定义块头 |
| `EpConnection.cpp:687–729`,`readTcpData` | 同连接读取CMD/Length/JSON |
| `EpPanoCConfigure.cpp:734–754`,`updatePanoC` | 检查返回命令为2170、CommonResponse.code=0 |
| `json/GetBasicInfoResponse.cpp:57–68` | V1字段为dev_type/sn/firmware/hardware/dev_id/dev_ver,无inner/outer映射 |
源码同时有8940/EPFP的另一种文件通道,不自动推断当前设备支持它。源码的本地发送完成和code=0没有证明设备已完成烧录并启动;CLI保留单次传输、精确身份/摘要门槛和独立回读。V1与inner/outer关系未建立,不能静默替换任务指定字段。具体实现及真机范围见 [V1接口](v1-protocol.md)。