除了显示驱动,其余全部测试通过

This commit is contained in:
guo
2026-08-30 14:13:24 +08:00
commit c0ace98dff
146 changed files with 9476 additions and 0 deletions
+94
View File
@@ -0,0 +1,94 @@
#ifndef RADAR_REPORT_SERVICE_H
#define RADAR_REPORT_SERVICE_H
#include "typedef.h"
#include "radar_manager.h"
/*
* radar_report_service 的职责:
*
* 1. 从 radar_manager 获取统一业务快照
* 2. 判断当前是否需要上报
* 3. 在真正上报成功后推进“已上报”状态
*
* 它不知道:
* - UART
* - R60 CTRL/CMD
* - WiFi
* - MQTT
* - JSON
* - Flash
*
* 本模块不创建任务。
* 由未来的上报/网络执行流主动调用。
*/
enum radar_report_reason {
RADAR_REPORT_REASON_NONE = 0,
RADAR_REPORT_REASON_INITIAL,
RADAR_REPORT_REASON_CHANGE,
RADAR_REPORT_REASON_PERIODIC,
};
struct radar_report_service_config {
/*
* manager 快照允许的最大数据年龄。
* 超过这个时间的数据不提交给上层上报。
*/
u32 max_age_ms;
/*
* 即使没有 meaningful change
* 也允许按周期强制产生一次快照。
*
* 设为 0 表示关闭周期强制上报。
*/
u32 periodic_interval_ms;
};
/*
* 初始化上报决策层。
*/
int radar_report_service_init(
const struct radar_report_service_config *config
);
/*
* 检查当前是否存在待上报快照。
*
* return:
* 1 有快照需要上报,out/reason 有效
* 0 当前不需要上报
* <0 错误
*
* 注意:
* 一旦产生 pending snapshot
* 在 radar_report_service_mark_reported() 成功调用前,
* 后续 check 会返回同一份 pending snapshot。
*
* 这样上层发送失败时可以重试,
* 不会因为 manager 又更新而偷偷替换发送内容。
*/
int radar_report_service_check(
u32 now_ms,
struct radar_report_snapshot *out,
u8 *reason
);
/*
* 只有“上层已经真正发送成功”后才调用。
*
* 该函数会:
* - 清除 pending snapshot
* - 记录成功上报时间
* - 在安全情况下推进 manager 的 consumed baseline
*
* 如果 pending 产生以后 manager 又发生了有意义字段变化,
* 本函数不会把那个新变化错误地消费掉;
* 下一次 check 仍会重新产生 CHANGE 上报。
*/
int radar_report_service_mark_reported(
u32 now_ms
);
#endif