feat(iot_mqtt): loop_data 上报调度升级三档 — car_state 沿立即上报
原双速率下进/出车沿最坏等 300ms 门控。改为三档: - 立即档: 任一通道 car_state 翻转沿 → 直通间隔门控立即发布 - 快速档: |variation|>阈值 → 300ms (不变) - 空闲档: 配置 interval, 默认 60s (不变) 要点: - car_edge 优先级最高; 快照仍在门控后刷新, 同沿只触发一次立即档 - 防洪泛天然有界: Loop 事件帧最快 150ms/帧 且 car_state 为防抖后状态 - 协议 §5.2 补上报节奏说明; tests/test_report_cadence.c 8 组全过
This commit is contained in:
@@ -6,6 +6,36 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-15 — loop_data 上报调度升级三档: car_state 沿立即上报
|
||||
|
||||
### 背景
|
||||
|
||||
原双速率 (空闲 interval / 变化态 300ms) 下, 进/出车沿最坏也要等 300ms 门控。车辆进出是最关键时刻 (道闸联动/计数), 王工要求: **car_state 翻转沿立即上报, 不等间隔**。
|
||||
|
||||
### 实现 (iot_mqtt_publish_sensor Step2/3)
|
||||
|
||||
三档调度:
|
||||
|
||||
| 档位 | 触发 | 间隔 |
|
||||
|------|------|------|
|
||||
| **立即档** | 任一通道 car_state 翻转沿 | **0 (直通门控)** |
|
||||
| 快速档 | 任一通道 \|variation\| > 阈值(10) | 300ms |
|
||||
| 空闲档 | 平稳 | 配置 interval (默认 60s, 最小 1s) |
|
||||
|
||||
- car_edge 优先级最高, 命中即定档; variation 记录但不 break (后续通道可能有沿)
|
||||
- 门控: `if (!car_edge && 未到间隔) return;` — 沿直通, 其余照旧
|
||||
- 快照仍在门控通过后刷新 → 同一个沿只触发一次立即发布, 下一轮回归常规档
|
||||
|
||||
### 防洪泛分析
|
||||
|
||||
立即档天然有界: Loop MCU 事件帧最快 150ms 一帧, car_state 是 Loop 侧防抖后的状态 (进入确认 3 次 + 离开检测), 不存在毛刺沿; 且发布后快照即同步, 同沿不重复。最坏情况 = 帧率上限 150ms/次, 可接受。
|
||||
|
||||
### 验证
|
||||
|
||||
`tests/test_report_cadence.c` 8 组全过: 空闲60s到点 / 进车沿距上次50ms立即发 / 同沿不重复 / 快速档仍受300ms门控 / 出车沿20ms立即 / 回落空闲 / 双通道同帧沿单包覆盖。
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-15 — 设备时钟同步 (方案B): 平台经 report_config 下发 Unix ts
|
||||
|
||||
### 背景
|
||||
|
||||
Reference in New Issue
Block a user