feat(client): RMIC::2026 界面重做、可计算的版本机制与固件版本联动
- feat(client): 界面换成墨黑蓝底 + 单支红的矩形语言,切角全部去掉,仅装甲条保留平行四边形 - feat(client): 自托管 HarmonyOS Sans SC 与 JetBrains Mono,中文与拉丁数字逐字回退 - feat(client): 新增启动序列、首启门、用户端 HUD、裁判端控制台、设置抽屉与固件维护页 - feat(client): 裁判端中缝与下方控制台可拖,鼠标落在哪一路下方就看哪一路 - feat(client): 设置抽屉常驻实时预览,与画面共用同一份准星绘制代码 - feat(client): 动效改用 Material 3 的缓动曲线与时长,逐条替换掉自造的贝塞尔 - feat(version): 版本号与 CHANGELOG 由 scripts/version.mjs 从 git 历史算出,不再手写 - feat(firmware): Hello 报文携带语义化版本、构建号与自报协议号,负载向后兼容 - feat(client): 固件版本显示在绑定列表与裁判端每一格;协议不匹配时给出具体原因 - feat(firmware): 固件包版本与客户端同源,都从 version.json 读 - fix(client): getCurrentWindow() 在没有 Tauri 注入时同步抛异常,浏览器预览整棵树被卸载 - fix(client): 启动序列的淡出 effect 清掉了自己刚设的 setTimeout,界面永远停在启动页 - fix(client): 设置抽屉左侧导航的锚点没挂到 section 上,且用错了坐标系 - fix(protocol): Hello 改用宽松帧头解析,让协议不匹配的板子能被解释而不是静默消失 - fix(build): Windows 上 bindgen 加载不了 libclang 的同目录依赖,构建脚本补上搜索路径 - fix(build): esp-idf-sys 在长路径下拒绝构建,固件构建改用短的目标目录 - build(client): 队标图标,含光学尺寸分级与手工拼的多尺寸 ICO - build(ci): 守门 job 增加版本一致性检查,产物名改为 rmic-2026-* - docs: 补充界面语言、版本机制与协议通告布局的说明
This commit is contained in:
+31
-92
@@ -1,102 +1,41 @@
|
||||
# 改动记录
|
||||
|
||||
记录面向使用者和维护者的主要变化。历史条目依据 Git 提交整理,日期为提交日期,尚未对应正式发布版本;详细历史见 `git log`。
|
||||
> 本文件由 `scripts/version.mjs` 依据 git 历史生成,**请勿手改**。
|
||||
> 提交信息遵循 Conventional Commits,一条一个条目;要求见该脚本的文件头。
|
||||
> 建立这套机制之前的人工整理记录保存在 [`docs/CHANGELOG-legacy.md`](docs/CHANGELOG-legacy.md)。
|
||||
|
||||
## 未发布
|
||||
## v0.2.0 — 2026-10-19
|
||||
|
||||
### 文档
|
||||
构建号 **34** · 线路协议 **1** · 1 个提交(v0.1.0 → v0.2.0)
|
||||
|
||||
- 重组根 README,补充 ESP Rust 入门、跨平台编译与标准烧录指南。
|
||||
- 将硬件限制、开发说明与改动记录分别整理为独立文档。
|
||||
- 修正 JPEG 质量与数据大小的说明,区分历史性能记录和当前验证。
|
||||
- 补充桌面端 Windows x64 / NSIS 构建、测试与产物路径说明。
|
||||
### 新增
|
||||
|
||||
- **client** · RMIC::2026 界面重做、可计算的版本机制与固件版本联动
|
||||
- **client** · 界面换成墨黑蓝底 + 单支红的矩形语言,切角全部去掉,仅装甲条保留平行四边形
|
||||
- **client** · 自托管 HarmonyOS Sans SC 与 JetBrains Mono,中文与拉丁数字逐字回退
|
||||
- **client** · 新增启动序列、首启门、用户端 HUD、裁判端控制台、设置抽屉与固件维护页
|
||||
- **client** · 裁判端中缝与下方控制台可拖,鼠标落在哪一路下方就看哪一路
|
||||
- **client** · 设置抽屉常驻实时预览,与画面共用同一份准星绘制代码
|
||||
- **client** · 动效改用 Material 3 的缓动曲线与时长,逐条替换掉自造的贝塞尔
|
||||
- **version** · 版本号与 CHANGELOG 由 scripts/version.mjs 从 git 历史算出,不再手写
|
||||
- **firmware** · Hello 报文携带语义化版本、构建号与自报协议号,负载向后兼容
|
||||
- **client** · 固件版本显示在绑定列表与裁判端每一格;协议不匹配时给出具体原因
|
||||
- **firmware** · 固件包版本与客户端同源,都从 version.json 读
|
||||
|
||||
### 修复
|
||||
|
||||
- **client** · getCurrentWindow() 在没有 Tauri 注入时同步抛异常,浏览器预览整棵树被卸载
|
||||
- **client** · 启动序列的淡出 effect 清掉了自己刚设的 setTimeout,界面永远停在启动页
|
||||
- **client** · 设置抽屉左侧导航的锚点没挂到 section 上,且用错了坐标系
|
||||
- **protocol** · Hello 改用宽松帧头解析,让协议不匹配的板子能被解释而不是静默消失
|
||||
- **build** · Windows 上 bindgen 加载不了 libclang 的同目录依赖,构建脚本补上搜索路径
|
||||
- **build** · esp-idf-sys 在长路径下拒绝构建,固件构建改用短的目标目录
|
||||
|
||||
### 构建
|
||||
|
||||
- 固定使用命名工具链 `esp-1.97.0.0`,避免较新预览版标准库的 ESP-IDF 兼容问题。
|
||||
- 移除 S3 构建配置中的个人 macOS SDK 路径,默认 ESP-IDF v5.5.5,支持环境变量覆盖。
|
||||
- 新增从 `.env` 读取配置的 PowerShell 构建脚本。
|
||||
- 图传构建脚本使用 `--locked`,忽略 SDK 缓存和生成配置。
|
||||
- 分区表复制到生成的 CMake 工程,不再依赖 Cargo 输出层级;支持 Windows 使用较短的外部构建目录。
|
||||
- **client** · 队标图标,含光学尺寸分级与手工拼的多尺寸 ICO
|
||||
- **ci** · 守门 job 增加版本一致性检查,产物名改为 rmic-2026-*
|
||||
|
||||
### 修复
|
||||
### 文档
|
||||
|
||||
- 增加运行中 Wi-Fi 断线恢复、关联和 DHCP 超时退避;取址后重建 UDP socket,清理订阅目标与旧帧,保留相机状态和帧序号。
|
||||
- 桌面端向已发现的图传板 IP 定向续订,修复 VPN / 多网卡把全局广播发往虚拟接口后“设备在线但无画面”的问题。
|
||||
- 修正丢帧统计:计入未收齐就被替换、超时及帧号缺口,重复包和等待分片不计作丢帧;拒绝迟到旧帧覆盖新帧。
|
||||
- 校验分片数量、长度与同帧元数据,处理帧号回绕及设备重启。
|
||||
|
||||
### 图传性能
|
||||
|
||||
- 根据距离收益有限、拥塞增加的实测反馈,将交付 Wi-Fi 最大发射功率上限从 17 dBm 回退到 15 dBm,实板驱动回读 15.00 dBm;启动、重连均应用同一设置,拥塞和温控逻辑不自动降功率。保留此前 14/17 dBm 的原始记录,新增功率与拥塞分析。
|
||||
- 阻塞恢复时非阻塞取最新完整 JPEG,返回被替换的旧采集缓冲;保留三块采集内存,不增加待发送 FIFO。
|
||||
- 每帧增加采集帧龄和绝对发送期限,重试预算默认缩短至 8 ms;`UDP_RETRY_BUDGET_US=0` 可在回压时立即放弃剩余分片。
|
||||
- 客户端通过本机帧时间标记拒绝 WebView 积压和慢解码的过期画面;本地 JPEG 二进制头保持 16 字节兼容。
|
||||
- 根据长程运行的峰值丢帧反馈,当前交付恢复三缓冲;双缓冲的短测数据保留为历史对照。
|
||||
- 新增可选 OV5640 `CAM_AE_LEVEL` 细调:`-1` 将亮度目标从 55 调至 45,保留 AEC/AGC 与曝光上限,供轻微过亮时调整。
|
||||
- 增加完整 OV5640 `vga30` PLL 配置与可选双缓冲;保持默认行、帧时序与彩色读出窗口,配套调整自动曝光行数上限。
|
||||
- Windows 客户端增加裁判端 `--latency-report` 校准模式,通过屏幕标记和实际视频画布测量首次可解码回显时间,保存本地 NDJSON;区分画布刷新估计与物理面板响应。
|
||||
- 固件直接读取 PSRAM 中的 JPEG,复用单个数据报缓冲,减少每帧分片复制与分配。
|
||||
- 视频 socket 使用 IP precedence 4,映射至保留 AMPDU 的 Wi-Fi 视频队列 AC_VI。
|
||||
- 对临时 UDP 发送拥塞进行有时限的让出调度重试,统计实际提交帧、失败次数与丢弃帧。
|
||||
- Windows UDP 接收缓冲请求增至 1 MiB;界面视频通道和解码队列保留最新待处理帧,避免慢端持续积压。
|
||||
- 新客户端使用随机会话 ID;固件更新同一会话的源端口,避免 NAT / TUN 端口变化产生重复推流目标,旧固定 ID 客户端继续按地址区分。
|
||||
- 新增可选编译参数 `WIFI_TX_POWER_DBM`(2–20 dBm);未设置时保留 SDK 默认上限,按实际板卡和网络测量调节。
|
||||
- 新增 `scripts/perf_probe.py`,测量完整帧率、帧损失、接收间隔和分片组装耗时。
|
||||
- 新增 `CAM_MAX_FPS`(默认 0,不限帧),可限制取帧和发送节拍,过载后不追赶补发。
|
||||
- 新增 `CAM_GRAYSCALE`,通过传感器灰度效果保留硬件 JPEG;增加可配置的芯片温度减载和 5°C 恢复回差。
|
||||
- 增加芯片内部温度、采集错误与复位原因日志,以及串口和原生客户端视频通道的长测记录脚本。
|
||||
- 新增 OV5640 曝光目标偏置与固定快门行数配置,保留自动增益;记录实际曝光行数,避免将降低亮度等同于缩短快门。
|
||||
- 新增 OV5640 水平总长试验参数 `CAM_HTS`;过短消隐会出现绿紫闪烁,几何约束通过不代表画质稳定,必须在板上验证。
|
||||
- 新增可配置 UDP 分片间隔及有界帧发送时间,支持按五分钟窗口比较突发发送与让出调度发送。
|
||||
- 新增可选 JPEG 压缩回压调节 `CAM_QUALITY_MAX`,拥塞时快速减小彩色帧,连续稳定后缓慢恢复画质;记录实际压缩档位和传感器增益。
|
||||
- 新增 `CAM_EXPOSURE_MAX_LINES`,保留自动曝光和增益联动,以曝光上限控制拖影;固定短快门不再作为室内亮度优化的默认方案。
|
||||
- 新增 OV5640 自动增益上限 `CAM_GAIN_CEILING`,为室内短曝光提供增益余量,保留运行时增益读数供验证。
|
||||
|
||||
### 硬件配置
|
||||
|
||||
- 显式设置 `CONFIG_CAMERA_CORE1=y`;仅关闭 `CAMERA_CORE0` 时,Kconfig 的 choice 仍会默认选择 CPU0。
|
||||
- 按当前 Wi-Fi 配置的镜像核对 Factory 偏移与原测试模组 `0xFADE7` 坏字节的可写性;后续重编译仍需重新检查,以 `partitions.csv` 为准。
|
||||
|
||||
## 2026-10-15
|
||||
|
||||
### 持续集成
|
||||
|
||||
- 新增 Windows、Linux、macOS 客户端构建工作流。
|
||||
- 调整制品上传版本及缓存行为,适配 Gitea runner。
|
||||
- 修复 Windows runner 的 shell、临时目录和低完整性环境适配。
|
||||
- 使用 npm 安装的 JS 版 pnpm,处理安装目录残留与 `EEXIST`。
|
||||
|
||||
对应提交:`98dc87e` 至 `4794bed`。
|
||||
|
||||
## 2026-10-14
|
||||
|
||||
### 新增
|
||||
|
||||
- 引入 Tauri v2 + React 队伍端和裁判端,网络逻辑拆分到 `desktop/core`。
|
||||
- 加入 ESP32-C3 一主三从装甲板:四路受击检测、灯带及血量广播。
|
||||
- 保存早期 C 版装甲板工程到 `reference/armor/`。
|
||||
- 桌面端加入双方血条、归零胜负提示与裁判端队名编辑。
|
||||
|
||||
### 调整与修复
|
||||
|
||||
- 移除旧 Slint 客户端。
|
||||
- 修复演示模式命中节奏与设置文字显示,移除受击画面抖动。
|
||||
|
||||
对应提交:`a89d7ae`、`4f7a142`、`7fdebe3`、`a30eb32`、`fd71b83`、`a93ae06`。
|
||||
|
||||
## 2026-10-05
|
||||
|
||||
### 新增
|
||||
|
||||
- 建立摄像头固件、共享 UDP 协议与初代桌面客户端。
|
||||
- 支持多端发现、订阅、设备绑定及队伍端 / 裁判端视图。
|
||||
- 加入滚轮缩放、拖动平移与启动最大化。
|
||||
|
||||
### 修复
|
||||
|
||||
- 修复探测脚本重组状态未按帧隔离导致的坏帧误报,以及 FPS 窗口计算错误。
|
||||
- 修复裁判端两格宽度不一致,槽位按队伍语义分配。
|
||||
- 队伍端 release 接收路径限制到已绑定图传板。
|
||||
|
||||
早期对重复分片的协议归因已被后续提交更正,不能将当时的坏帧直接归为协议缺陷。对应提交:`4f893ce`、`1c65eaa`、`7be8d7d`、`c7f42a1`、`a16ad85`、`cd8344c`、`3631a03`。
|
||||
- 补充界面语言、版本机制与协议通告布局的说明
|
||||
|
||||
Reference in New Issue
Block a user