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

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
+115
View File
@@ -0,0 +1,115 @@
#ifndef RADAR_MANAGER_H
#define RADAR_MANAGER_H
#include "typedef.h"
/*
* radar_manager 的职责:
* 1. 保存“当前最新雷达状态”
* 2. 对上层提供一致快照
* 3. 判断 fresh / valid / meaningful change
*
* 它不知道:
* - UART
* - R60 CTRL/CMD
* - MQTT
* - WiFi
* - Flash
*/
struct radar_manager_input {
u8 presence;
u8 motion;
u8 body_movement;
u16 distance_cm;
u16 heart_rate_x10;
u16 breath_rate_x10;
u8 sleep_state;
s16 pos_x_mm;
s16 pos_y_mm;
s16 pos_z_mm;
u8 abnormal_state;
/*
* 由调用者传入本次数据真正更新的系统时间。
* manager 自己不依赖 AC79 timer API
* 保持模块纯净。
*/
u32 update_ms;
};
struct radar_sensor_data {
u8 presence;
u8 motion;
u8 body_movement;
u16 distance_cm;
u16 heart_rate_x10;
u16 breath_rate_x10;
u8 heart_valid;
u8 breath_valid;
u8 sleep_state;
s16 pos_x_mm;
s16 pos_y_mm;
s16 pos_z_mm;
u8 abnormal_state;
u32 last_update_ms;
};
struct radar_change_flags {
u8 presence_changed;
u8 motion_changed;
u8 sleep_state_changed;
u8 body_movement_changed;
u8 distance_changed;
u8 heart_rate_changed;
u8 breath_rate_changed;
u8 abnormal_state_changed;
u8 any_changed;
};
struct radar_report_snapshot {
struct radar_sensor_data sensor;
u8 has_person;
u8 bed_occupied;
u8 has_valid_vitals;
u8 has_fresh_sample;
u8 has_meaningful_change;
u32 sample_age_ms;
};
int radar_manager_init(void);
int radar_manager_update(
const struct radar_manager_input *input
);
int radar_manager_get_sensor_data(
struct radar_sensor_data *out
);
int radar_manager_get_change_flags(
struct radar_change_flags *out
);
int radar_manager_get_report_snapshot(
u32 now_ms,
u32 max_age_ms,
struct radar_report_snapshot *out
);
int radar_manager_mark_snapshot_consumed(void);
#endif