PROGRESS / HANDOFF:补 rack 推固件页、固件目录清理、界面改版、底板温度曲线

- PROGRESS 顶部新增 rack 这一轮的汇总;C2 条目里「重启不断电待讨论」「rack 没 OTA 按钮」划掉
- HANDOFF:新增「rack 侧」一节;--reboot 的说明改为「≥c3 且目标认接管不断电」;下一步补手机窄屏检查

Co-Authored-By: Claude Opus 5.5 <[email protected]>
这个提交包含在:
zhou yang
2026-09-27 15:10:38 +08:00
共同撰写人 Claude Opus 5.5
父节点 9858b6c98e
当前提交 82d10ffefc
共修改 2 个文件,包含 23 行新增和 4 行删除
+12 -2
查看文件
@@ -1,5 +1,5 @@
# 交接
更新:2026-09-27 **0.1.1-c3**:修了 I²C 不应答被报成 STATE / 关电回 busy(下面「0.1.1」);**0.1.0-c3:重启不断电**
更新:2026-09-27 深夜 固件 **0.1.1-c3**(I²C 不应答不再报成 STATE;重启不断电)+ rack 界面改版 / 推固件页 / 底板温度曲线
## 一句话现状
OTA 换固件 / 超时回滚现在走 `warm_restart()`(`main/warm_esp.c`):目标固件认接管 ⇒ 手机不断电;
@@ -27,6 +27,16 @@ OTA 换固件 / 超时回滚现在走 `warm_restart()`(`main/warm_esp.c`):
## 下一步(没人定,候选)
- 示波器验证:插一片刀片,CH 开着,OTA 带重启,抓 EN / 输出电压(`scope_*` 工具)。
- 在手机上看一眼 rack 新界面(390 px 左右):无头 Chrome 最窄只到 ~500 px,窄屏只验到那里。
- 下面「其它挂着的事」里 A15 / A16 留下的几条(I²C 总线挂死恢复、PD 降载、风扇阈值实测)照旧。
## rack 侧(服务器前后端,详见 `rack/README.md`)
- **固件页**(顶栏「固件」):上传 `build/phonerail.bin` → 选板推送;上传时核镜像头(非本工程 / 非 app 镜像 / >3 MB 直接拒),
显示每个镜像「重启不断电:支持 / 不支持」,勾「立刻重启」时按它给不同提示。通用 `/cmd` 不放行 `ota`(URL / 哈希只能由固件库生成)。
- **下载目录自动清理**(每小时):库里登记的不删;`ota_push.py` 直传的放满 7 天删;半截 `.tmp` 1 小时删。
- **界面改版**:仪器前面板风格 + 暗色模式(跟随系统);总览每个槽带最近两分钟电流小曲线(平线 = 疑似卡死)。
- **底板温度曲线**(单板页):两路 NTC + 风扇占空比,10 分钟 ~ 7 天;后端 `board_tele_min` 分钟聚合留 90 天,
接口 `GET /api/boards/{id}/history`。NTC1 贴 Hub 稳压 U31,NTC2 贴输入降压 U37。
## 踩到的坑(c3)
- `.rodata_custom_desc` 没人引用会被 `--gc-sections` 丢掉 ⇒ `main/CMakeLists.txt` 加 `-u g_phonerail_caps`。
@@ -37,7 +47,7 @@ OTA 换固件 / 超时回滚现在走 `warm_restart()`(`main/warm_esp.c`):
## 怎么推固件
```
python tools/ota_push.py b81f3fc9c8bc # 推 build/phonerail.bin:只下载 + 校验 + 切分区,下次复位生效
python tools/ota_push.py b81f3fc9c8bc --reboot # 校验过就立刻重启 —— ⚠️ 五台手机硬断电一次
python tools/ota_push.py b81f3fc9c8bc --reboot # 校验过就立刻重启(板上 ≥c3 且目标镜像认接管 ⇒ 手机不断电,否则五路全断一次)
python tools/ota_push.py b81f3fc9c8bc --status
```
它把镜像传到服务器 `/root/phonerail/fw/<sha 前 16 位>.bin`(nginx 7765,只放行这种文件名,不过门户;