Qt 离线使用 - NUSNiuMu/insight-capture-dashboard GitHub Wiki
现有设备断外网使用
本机 Native Qt 在已有依赖齐全的设备上不需要公网。默认命令保持不变:
./native_dashboard/run.sh
“断外网”指不访问互联网;本机 Dashboard、相机的 USB/局域网连接、ROS/DDS 和本机 loopback 必须仍可用。断开相机链路或停止本机后端会失去相应输入,与公网无关。
本地依赖
| 功能 | 依赖位置 |
|---|---|
| 九页界面、控件、Inter 字体 | 嵌入 Native 可执行文件,无 CDN、远程字体或网页框架 |
| Qt 运行库 | .native-build/runtime;未解包时可从本地 .native-build/qt-runtime.tar 恢复 |
| 三维模型 | 本机后端 /asset 读取仓库 assets/models,客户端本地转换并缓存;首次打开也无需公网 |
| 实时视频、姿态、任务和状态 | 默认 127.0.0.1:8765 与本机 WebSocket;本机直通视频无需公网信令服务 |
| 录制、回放、评分、导出、优化 | 已安装的本机后端、处理程序和本地文件;远程后端需要其局域网连接 |
| WiLoR | 后端镜像内的程序与预置权重,运行时代码不下载缺少的权重,缺失会明确报错 |
| 可选语音功能 | 本地语音服务、模型和音频设备,服务未安装或未运行时不可用 |
联网准备依赖、升级镜像与日常离线运行分开。已有二进制和 Qt 运行库时,启动不调用 Docker;源码更新需要重新编译时,默认构建仅使用已存在的 insight-qt-builder:jammy,容器设置 --network none --pull=never。构建镜像缺失会立即提示,不自动拉取镜像或执行 apt。
首次准备或主动更新 Qt 构建镜像,需要在有网时执行一次:
./native_dashboard/build.sh --prepare-builder
也可用 docker load 导入此前保存的构建镜像。后续 ./native_dashboard/build.sh 可在无外网环境编译。使用自定义 INSIGHT_NATIVE_BUILD_CONTAINER 时,依赖及网络配置由该既有容器提供。
当前设备检查与验证
2026-10-12 检查确认本机 Qt 二进制、运行库、本地构建镜像和后端镜像已存在;WiLoR capabilities 为 available,预置模型没有缺项。语音 API 返回服务未运行,语音功能的当前不可用状态与公网无关。未切换设备配置或中断现场相机连接。
离线验收使用独立用户网络命名空间,只启用 loopback,没有外网接口或 IPv4 默认路由,保留宿主机现有依赖。模拟后端与 Qt 均在其中运行,测试不修改宿主机网络,也不操作现场录制、任务或地图。
- 从本地 tar 恢复 Qt 运行库并启动真实客户端,运行测试无需重新构建。
- 清空测试专用 Qt 模型缓存,首次从本地 HTTP 读取、转换两种 GLB,三模型获得本地文件地址。
- 实际点击九页控件,检查任务创建/编辑与错误恢复、导出请求、评分、处理结果、录制跨页保护、设置及删除确认;检查 QML 错误和实际帧交换。
- 使用
--network none --pull=never实际完成 Qt 编译与运行库导出;构建镜像缺失路径只执行本地 image inspect,立即失败,不 build/run/pull。
测试记录位于 ~/workspaces/insight_capture_tests/native_offline_20261012/。模拟业务验证说明界面和本机请求流程在无外网环境可用,不等同于重新验收实际设备录制质量、WiLoR 推理结果或优化算法质量;这些处理仍使用设备已准备的本地程序、输入与模型。
源码:Native Qt。