Files
banban/factory_host/README.md
T

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)