# 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)