Files
xtrhrj/docs/系统融合软件页面与采集接入.md

39 lines
3.1 KiB
Markdown

# 系统融合软件页面与采集接入
本次将已确认的六页设计实现为原生系统融合软件控制台。页面源码位于 `frontend/`,构建产物放入 `src/main/resources/static/console/`,随 `xtrh-services` JAR 一起部署。
## 页面
| 页面 | 当前数据行为 |
|---|---|
| 数据接收 | 按试验冻结的实装选择,查看真实采集参数、来源、采样和接收时间及质量 |
| 同步质量监控 | 装备列表与查看框架已实现,尚未接入同步质量指标时显示空状态 |
| 虚拟数据下发 | 虚拟装备血量、位置等只读框架;尚无虚拟装备源时为空 |
| 融合视频展示 | 按实装选择,画面右上角保留六项融合指标;尚无真正融合源时为空 |
| 融合指标展示 | 按实装逐行展示,未接入指标为 `—` |
| 主从控制 | 展示已注册节点的身份、角色、心跳在线状态;未上报 CPU、内存、网络速率为 `—` |
页面不会将原图、演示视频或采集参数推测成融合输出,不内置示例装备、位置、血量或曲线。
## 真实采集链路
`采集器 → 既有网关/采集入口 → PXHJ 认证、解密、协议解析 → 冻结装备与采集模块绑定 → 实时质量判定 → 签名快照推送 → 系统融合软件页面`
PXHJ 的 `TrialFusionCollectionSnapshot` 只读取未完成的正式试验及冻结绑定。`TrialCollectionService.realLiveForFusion` 沿用原采集服务,在计算质量前排除模拟报文,固定读取实时 60 秒窗口;公开用户采集接口原有权限检查保持不变。
每两秒由独立单线程 `FusionCollectionPublisher` 复用 `FusionImageClient` 和原 `app.fusion.*` 私有配置,调用签名 `POST /control/collection/sync`。共享凭证只保留在后台。新快照整体替换内存中的旧快照,空列表也同步,因此结束试验后不会残留装备。
接收端使用大小、数量、字段、标量值及时间边界校验,保留真实零值,缺失使用 null。保留 `GOOD/MISSING/STALE/INVALID_TIME/INVALID_VALUE/AMBIGUOUS` 等质量;超过 15 秒无有效推送,最后值标记为过期。断开时不将旧值显示成正常接收。
## 构建和使用
1. 在 `frontend` 安装依赖:`pnpm install` 或 `npm install`。
2. 运行 `scripts/Build-Xtrh.ps1`,将先测试并构建页面,再执行 Java 测试和打包。已有前端构建产物时可使用 `-SkipFrontend`。
3. 将新 JAR 部署到既有总控,保留身份、数据和私有配置。
4. PXHJ 桥接源码已按基线校验应用;重新打包并加载 PXHJ 后端,既有 `app.fusion.enabled` 和总控配置生效后自动推送。
5. 从总控所在电脑打开 `http://127.0.0.1:18100/console/`。页面每两秒刷新,可搜索和选择装备;存在多个试验时可在页头切换。
浏览器 API 只有同源本机 GET/HEAD 查看能力。原 `/control/*` 仍需 HMAC 签名;页面没有节点容量修改、试验控制或采集器重配置操作。
PXHJ 桥接补丁与原文件校验清单保存在 `runtime/console-pxhj-staging/`;应用前会核对基线并备份原文件,避免覆盖其他改动。源码修改不会自动更新运行中的进程。