# A125 吸尘器压力读数有效期接入

2026-10-18。基于 A121 的独立源码副本；本次没有改 PCB、没有烧录或制造放行，也没有改公网内容。三款产品与参考效果一致的总目标仍未完成。

## 本次实际行为

- `pressure_age.c/.h` 管理主机读取状态。开始下一次读取即清空旧解码值；无效报文、未开始就完成、重复完成、读取超时均不能恢复有效值。
- main 的真实压力采集路径调用 pv_begin / xp_decode / pv_complete，主循环独立调用 pv_tick，不依赖显示就绪来使旧读数过期。
- 当前工程参数：读取耗时须小于 100 ms，成功读取后不足 1,000 ms 才标为 PV_RECENT_READ。达到阈值立即失效。这是围绕名义 250 ms 主机轮询设置的临时诊断期限，未作为传感器的保证转换周期或整机响应指标。
- 计时采用 uint32 模差，处理正常毫秒计数回绕；时间服务至少每 2^31 ms 执行一次。不允许通过每次读取失败保留上次有效压力。
- 无论传入结构如何设置，suction_valid 始终强制为 false；不通过这次修复授权风机，既有硬件/软件输出关闭约束保留。

## 读取诊断

在相同且偶数的 g_pressure_epoch 之间读取 g_pressure_decoded、g_pressure_age_status、g_pressure_read_recent、g_pressure_finished_ms 及 g_millis。只有 PV_RECENT_READ、decoded 为 true 且当前模差小于 1,000 ms 才表示最近完成了一次可解码的主机读取。g_pressure_decode_status 仍表示解码器结果，不能单独用它判定当前读数可用。过期时解码值清零。

PV_RECENT_READ 不证明传感器进行了新的转换、内部五字节同步、物理校准、吸力或滤网状态。CPU 停顿时前台服务无法更新；外部调试程序还需用自己的时钟检测目标心跳和快照更新，不能把停止刷新的调试变量视作实时数据。

## 验证证据

- `host.log`：ASan/UBSan 下通过既有面板、UI、输出锁、风机策略、I2C、显示与 33,554,432 个原始压力编码验证；新增 1,992,905 个独立 64 位时间线参考检查，覆盖阈值前后、计时回绕、超时、失败清空、重复完成、恢复和输出权限隔离。
- `target.log` 与 `firmware/固件/vacuum_target/build/build_verification.json`：STM32G030F6 完整目标编译/链接通过；检查 main 中 age 初始化、轮询以及真实采集路径的 begin/complete 调用。构建占用 FLASH 9,168 字节，链接 RAM 2,664 字节；不代表实测栈水位或运行时性能。
- `baseline.json`：A121 原二进制哈希，本轮核对未改动。
- `hardware-check.json`：本机 USB 未发现匹配调试器/串口；不证明用户工程师或远端工厂没有资源。

复现：

```sh
sh firmware/固件/vacuum_target/test.sh
sh firmware/固件/vacuum_target/build.sh
```

## 距离整机效果一致尚需的实证

吸尘器仍需实际风机/传感器/滤材/风道选型，独立差压计标定、波形与更新时间确认、滤网学习/告警及集尘效果对比；当前吸力显示和风机运行不能按量产效果交付。电磨仍需配套手柄/电机、电池与充电、完整启动/观测接管以及负载转速/温升/振动测试；美甲灯仍需实际相机、模型、显示、光学灯板、几何标定和固化效果测试。不可从本次固件检查推导三款整机已经完成。
