rack:界面改版(仪器前面板风格 + 暗色模式)+ 底板温度曲线
- 总览:每块板一块面板、五个刀片槽(状态灯 + DIN 读数 + 最近两分钟电流小曲线,平线 = 疑似卡死);
只有异常 / 故障 / 执行中上色;顶上一句话概况,有问题直接列出是哪几路
- 单板页:新增「底板温度」(两路 NTC + 风扇占空比,上下两块共用时间轴,10 分钟 ~ 7 天);
每路电流 / 电压去掉双 Y 轴,改上下两块,电压固定 3.5~4.1 V;名称 / 位置就地编辑
- 主题:theme.css 亮 / 暗两套变量(跟随系统,Element Plus 暗色变量同挂 html.dark),图表切换时重画;
读数用系统自带 DIN 系字体(不加载网络字体);温度两色按本页亮暗底色跑过 dataviz validate_palette.js 全通过
- 后端:board_tele_min 分钟聚合(温度带 min/max,留 90 天)+ GET /api/boards/{id}/history(Db.board_history)
- 修一个偶发失败的测试(test_ota_events_are_named_by_arg:只推一次遥测,赶上 Hub 正在同步时会漏触发);
后端 42 例本机 + 服务器全绿,已部署;线上已取到板 B 温度 24.4 / 26.0 °C
Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
+14
-2
@@ -12,8 +12,8 @@
|
||||
| 目录 | 内容 |
|
||||
|---|---|
|
||||
| `backend/prrack/` | `protocol.py` 板侧协议镜像(命令白名单 / 事件表 / seq)· `bus.py` MQTT 抽象(paho / 进程内假 broker)· `hub.py` 核心 · `recovery.py` 自动恢复 · `db.py` 存储 · `firmware.py` 固件库 + OTA 命令 · `api.py` HTTP+WS · `simboard.py` 模拟板子 · `main.py` 入口 |
|
||||
| `backend/tests/` | 41 例(pytest),本机与服务器(Python 3.8)都跑 |
|
||||
| `frontend/` | Vue3 + Vite + Element Plus + ECharts(按需引入) |
|
||||
| `backend/tests/` | 42 例(pytest),本机与服务器(Python 3.8)都跑 |
|
||||
| `frontend/` | Vue3 + Vite + Element Plus + ECharts(按需引入)。主题在 `src/theme.css`(亮 / 暗两套变量,跟随系统),图表公共部分在 `src/chart.js` |
|
||||
| `deploy/` | `deploy.sh` 一键部署 · systemd unit · 每日备份 |
|
||||
|
||||
## 规矩(都来自板侧协议 §10.8,改代码前先看)
|
||||
@@ -24,6 +24,18 @@
|
||||
4. **只绑 127.0.0.1**:`X-Auth-User`(门户覆盖式注入)按 L2 信任,只用于审计「谁按的」;`main.py` 拒绝非回环绑定。
|
||||
5. **命令白名单在 `protocol.build_command`**:`wifi` / `mqtt`(只收 USB)与 `events`(服务器自己同步)不给界面。板子的校验仍是唯一权威。
|
||||
|
||||
## 界面(2026-09-27 改版)
|
||||
|
||||
- 仪器前面板风格:每块板一块面板,五个「刀片槽」各有状态灯、电流读数和**最近两分钟电流小曲线**(平线 = 疑似卡死)。
|
||||
只有要人看的状态(异常 / 故障 / 正在执行)上色,「运行」「断电」「空槽」保持安静;总览顶上一句话列出需要看的路。
|
||||
- 读数用 DIN 系等宽数字(系统自带:macOS/iOS `DIN Alternate`、Windows `Bahnschrift`),不加载网络字体(国内拉不到 Google Fonts)。
|
||||
- 暗色模式跟随系统(`html.dark`,Element Plus 的暗色变量也认它),图表在切换时重画。
|
||||
- 曲线**不用双 Y 轴**:一路的电流 / 电压、底板的温度 / 风扇,都是上下两块共用时间轴(dataviz 规矩)。
|
||||
两路温度用 dataviz 参考调色板第 1/2 槽,按本页亮暗两种面板底色跑过 `validate_palette.js`,全部通过。
|
||||
- **底板温度曲线**:`GET /api/boards/{id}/history`(`Db.board_history`)。6 小时以内回每秒原始数据,更长回分钟聚合
|
||||
`board_tele_min`(温度带每分钟 min/max、风扇、输入电压电流;与每路的 `tele_min` 一样留 90 天)。
|
||||
NTC1 贴 Hub 稳压 U31,NTC2 贴输入降压 U37(R2 规划 §32)。
|
||||
|
||||
## 推固件(OTA,板侧 C2)
|
||||
|
||||
界面「固件」页:上传 `firmware/build/phonerail.bin` → 选板子推送。进度、待验证、回滚都直接显示遥测里的 `ota` 一块。
|
||||
|
||||
在新工单中引用
屏蔽一个用户