# gsensor-algorithm **Repository Path**: realmcu_admin/gsensor-algorithm ## Basic Information - **Project Name**: gsensor-algorithm - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-14 - **Last Updated**: 2026-11-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HealthAlgorithm 本分支独立维护,与本仓库 `master` / `develop` 没有共同历史,是另一套算法实现,后续如何演化由仓库所有者决定。 ## 用途 V101 系列手环固件(S100 / S200 / H100 / LS420B)直接编译 `src/` 下全部源码,替代原厂 `health_algorithm_3.8.14.0.lib`。固件只负责喂数据、存记录,算法逻辑都在这里,统一输入输出见 `include/health_algorithm.h`。 ## 组成 | 文件 | 内容 | |---|---| | `include/health_algorithm.h`, `src/health_algorithm.c` | 对外统一接口:计步、手势、睡眠单实例,同步回调 | | `src/health_gsa.c` | 计步 / 手势内核,由原厂库 3.8.21 (M3) `rtk_gsa.o` 反汇编重构 | | `src/health_sleep.c`, `src/health_sleep_hr.c` | 睡眠状态机,源自本仓库 `lib/sleep_v2`,带固件侧改动(小睡 4 分钟、中途醒 45 分钟内回睡并回浅睡等) | | `src/health_sleep_report.c` | 报告层:在线按 90 分钟周期生成 REM(心率有效分钟 ≥60% 才生成),通过 `sleep_record` 回调输出最终存储用的睡眠记录 | ## 与本仓库 `sleep_v2` 的关系 `health_sleep.c` 和 `lib/sleep_v2/src/sleep_v2.c` 同源,但已分叉。两边的报告层思路相近(90 分钟周期、醒前留 5 分钟浅睡),实现不同: - `develop` 的 `sleep_v2_report`:整晚结束后对时间线一次性整理,REM 按总睡眠 22% 的额度分配。 - 本分支:逐周期在线产出,适合固件内存与掉电场景;REM 落在每个周期最长浅睡段的末尾,长度依次为 7/13/20/26/33 分钟。 约束:单实例、调用串行、不可在回调里重入;要求 32 位小端目标;不需要堆和操作系统。