108 lines
3.9 KiB
Markdown
108 lines
3.9 KiB
Markdown
# EG800 FT1 工厂烧录与产测上位机
|
|
|
|
本目录包含上位机源码、默认配置、测试、构建脚本和发布文档。最终交付物统一生成到
|
|
`factory_host/dist/`,工厂不需要接触项目源码。
|
|
|
|
## 工程结构
|
|
|
|
```text
|
|
factory_host/
|
|
├─ src/ # Python 上位机源码
|
|
│ ├─ factory_host.py
|
|
│ └─ ft1_protocol.py
|
|
├─ config/ # 开发和发布使用的默认配置
|
|
│ └─ factory_host_config.json
|
|
├─ scripts/ # 音频、固件和 release 构建脚本
|
|
│ ├─ build_factory_audio_package.py
|
|
│ ├─ build_factory_firmware.ps1
|
|
│ └─ build_release.ps1
|
|
├─ tests/ # 自动测试
|
|
│ └─ test_factory_host.py
|
|
├─ docs/
|
|
│ ├─ USAGE.md # 工厂现场操作说明
|
|
│ └─ DEVELOPMENT.md # 开发、换包和发布说明
|
|
├─ firmware/ # 默认产测与正式固件
|
|
├─ vendor/ # 本地 Aboot 厂商工具,不提交
|
|
├─ build/ # 中间产物和开发日志,不提交
|
|
├─ dist/ # 最终交付目录,每次发布会重建
|
|
├─ requirements.txt
|
|
└─ README.md
|
|
```
|
|
|
|
`build/` 和 `dist/` 都被 Git 忽略。发布脚本只会清理 `dist/`,不会修改 `src/`、
|
|
`config/`、`docs/`、`tests/` 或 `build/`。
|
|
|
|
## 功能
|
|
|
|
- 产测固件与正式固件独立保存并醒目标识。
|
|
- 持续检测 ASR AROM 下载口,按物理 USB 设备去重,支持多工位自动等待设备上电后烧录。
|
|
- 点击自动烧录后立即启动一个 `adownload.exe -u -a` 监听进程,在设备上电前等待 AROM;多台设备共享该进程。
|
|
- 同一设备烧录成功后锁定,端口断开并重新出现后才允许烧录下一台。
|
|
- 自动烧录忽略同一设备枚举出的 DBG、AT、DIAG 和运行态串口,不会为它们创建伪工位。
|
|
- 自动识别 DBG UART,解析设备每 500 ms 广播的 FT1 状态。
|
|
- 显示七个测试节点、IMEI、ICCID、NFC UID、失败码和实时日志。
|
|
- 自动保存汇总 CSV 与单机 JSON,烧录和扫描过程不弹出控制台黑框。
|
|
|
|
## 快速验证
|
|
|
|
在项目根目录执行:
|
|
|
|
```powershell
|
|
python -m pip install -r .\factory_host\requirements.txt
|
|
python -B -m unittest discover -s .\factory_host\tests -p "test_*.py" -v
|
|
python -B .\factory_host\src\factory_host.py
|
|
```
|
|
|
|
源码模式会读取 `factory_host/config/factory_host_config.json`,运行日志写入
|
|
`factory_host/build/logs/`,固件和下载器从现有 `factory_host/dist/` 解析。
|
|
|
|
## 生成 Release
|
|
|
|
默认使用项目中的以下输入:
|
|
|
|
```text
|
|
factory_host/firmware/test/EG800AKCN_11LG-FT1-factory-test.zip
|
|
factory_host/firmware/official/EG800AKCN_11LG-official-fac.zip
|
|
factory_host/vendor/aboot-tools-2024.08.08-win-x64/
|
|
```
|
|
|
|
执行:
|
|
|
|
```powershell
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\factory_host\scripts\build_release.ps1
|
|
```
|
|
|
|
生成:
|
|
|
|
```text
|
|
factory_host/dist/
|
|
├─ START-EG800-FACTORY-TOOL.exe
|
|
├─ firmware/
|
|
│ ├─ EG800AKCN_11LG-FT1-factory-test.zip
|
|
│ └─ EG800AKCN_11LG-official-fac.zip
|
|
├─ .runtime/ # Windows 隐藏目录
|
|
│ ├─ burn_tool/
|
|
│ ├─ docs/USAGE.md
|
|
│ ├─ factory_host_config.json
|
|
│ ├─ release_manifest.json
|
|
│ └─ logs/
|
|
└─ EG800-Factory-Tool-Full-Package.zip
|
|
```
|
|
|
|
交付工厂时只发送 `EG800-Factory-Tool-Full-Package.zip`。解压后双击醒目的
|
|
`START-EG800-FACTORY-TOOL.exe`;不要单独移动 EXE、固件或 `.runtime`。
|
|
|
|
默认配置使用相对于发布目录的路径:
|
|
|
|
```text
|
|
firmware/EG800AKCN_11LG-FT1-factory-test.zip
|
|
firmware/EG800AKCN_11LG-official-fac.zip
|
|
.runtime/burn_tool/aboot-tools-2024.08.08-win-x64/adownload.exe
|
|
```
|
|
|
|
## 文档
|
|
|
|
- 工厂操作:[docs/USAGE.md](docs/USAGE.md)
|
|
- 开发、更新固件与发布:[docs/DEVELOPMENT.md](docs/DEVELOPMENT.md)
|
|
- 固件侧 FT1 协议:[../docs/factory_test.md](../docs/factory_test.md)
|