完善后端联调链路与模拟器多通道支持

This commit is contained in:
2026-04-01 18:48:59 +08:00
parent 94a1f0ba78
commit a70dc8d5d0
51 changed files with 4037 additions and 197 deletions

View File

@@ -76,9 +76,9 @@
位于 [tools/mock-gps-sim](D:/dev/cmr-mini/tools/mock-gps-sim)
- [server.js](D:/dev/cmr-mini/tools/mock-gps-sim/server.js):本地 HTTP + WebSocket 服务
- [public/index.html](D:/dev/cmr-mini/tools/mock-gps-sim/public/index.html):模拟器 UI
- [public/simulator.js](D:/dev/cmr-mini/tools/mock-gps-sim/public/simulator.js):地图、路径、心率模拟逻辑
- [public/style.css](D:/dev/cmr-mini/tools/mock-gps-sim/public/style.css):布局与样式
- [public/index.html](D:/dev/cmr-mini/tools/mock-gps-sim/public/index.html)新版模拟器工作台 UI
- [public/simulator.js](D:/dev/cmr-mini/tools/mock-gps-sim/public/simulator.js):地图、路径、心率、日志、多通道模拟逻辑
- [public/workbench.css](D:/dev/cmr-mini/tools/mock-gps-sim/public/workbench.css)新版工作台布局与样式
---
@@ -557,6 +557,7 @@ HUD 当前颜色由 telemetry 驱动。
{
"type": "mock_gps",
"timestamp": 1711267200000,
"channelId": "runner-a",
"lat": 31.2304,
"lon": 121.4737,
"accuracyMeters": 6,
@@ -597,10 +598,13 @@ HUD 当前颜色由 telemetry 驱动。
当前已经调整为:
- 顶部显示全局连接状态与全局模拟通道号
- 左侧控制面板独立滚动
- 右侧地图固定不动
- 中间地图固定作为主观察区
- 右侧保留运行摘要、当前位置、最近事件
- 右下使用可缩放的调试日志浮层
这样更适合长面板配置和路径编辑,不会让地图区跟着滚动。
这样更适合长面板配置、多人联调隔离和过程日志观察,不会让地图区跟着滚动。
---
@@ -899,7 +903,7 @@ flowchart TD
- [server.js](D:/dev/cmr-mini/tools/mock-gps-sim/server.js)
- [index.html](D:/dev/cmr-mini/tools/mock-gps-sim/public/index.html)
- [simulator.js](D:/dev/cmr-mini/tools/mock-gps-sim/public/simulator.js)
- [style.css](D:/dev/cmr-mini/tools/mock-gps-sim/public/style.css)
- [workbench.css](D:/dev/cmr-mini/tools/mock-gps-sim/public/workbench.css)
---
@@ -1020,15 +1024,35 @@ GPS
{
"type": "mock_heart_rate",
"timestamp": 1711267200000,
"channelId": "runner-a",
"bpm": 148
}
```
两者当前共用同一个 WebSocket 入口
调试日志
- `.../mock-gps`
```json
{
"type": "debug-log",
"timestamp": 1711267200000,
"channelId": "runner-a",
"scope": "gps-logo",
"level": "info",
"message": "logo ready"
}
```
这是当前阶段为了降低复杂度做的统一通道设计,后面如果模拟消息种类继续增加,再考虑独立通道或消息总线拆分。
当前三条链已经拆开:
- GPS`.../mock-gps`
- 心率:`.../mock-hr`
- 日志:`.../debug-log`
同时三条链统一使用同一个 `channelId` 做最小隔离:
- 模拟器顶部设置一个全局“模拟通道号”
- 小程序调试面板也设置同一个“模拟通道号”
- 只有 `channelId` 精确匹配的数据才会被消费
### 18.5 当前推荐的联调顺序