Compare commits
14 Commits
78e81da80f
...
a4777d571c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a4777d571c | ||
| 209fd3c4ab | |||
|
|
02f4eb9d8b | ||
|
|
4a7b9062c0 | ||
|
|
8f090cbfaa | ||
| ee1da7b574 | |||
| 19d344008f | |||
| 73448d03a0 | |||
| bee3d7797e | |||
| 86ed0f9191 | |||
| 51b89698ff | |||
| 0f1edab9b9 | |||
|
|
4da6fb525a | ||
|
|
a19a30470b |
58
.trae/documents/plan_20260203_063543.md
Normal file
58
.trae/documents/plan_20260203_063543.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# 修改蓝牙发送雷达数据模式
|
||||||
|
|
||||||
|
## 1. 需求分析
|
||||||
|
- 修改蓝牙发送机制,实现基于数据变化的发送
|
||||||
|
- 当心率、呼吸、存在检测、体动状态、睡眠状态发生变化时才发送
|
||||||
|
- 根据小程序设定的时间间隔进行定时检测
|
||||||
|
- 如果检测到变化,立即更新数据
|
||||||
|
- 按设定间隔检测数据更新,有变化则发送全部数据
|
||||||
|
|
||||||
|
## 2. 实现方案
|
||||||
|
|
||||||
|
### 2.1 添加数据存储结构
|
||||||
|
- 在 `radar_manager.h` 中添加 `LastSentData` 结构体,用于存储上一次发送的数据
|
||||||
|
- 包含需要检测变化的字段:心率、呼吸率、存在状态、运动状态、睡眠状态
|
||||||
|
|
||||||
|
### 2.2 修改全局变量
|
||||||
|
- 在 `radar_manager.cpp` 中添加 `lastSentData` 全局变量
|
||||||
|
- 添加 `lastCheckTime` 变量用于记录上次检测时间
|
||||||
|
|
||||||
|
### 2.3 实现数据变化检测函数
|
||||||
|
- 添加 `isDataChanged()` 函数,比较当前数据与上次发送数据
|
||||||
|
- 实现阈值判断,避免微小波动导致频繁发送
|
||||||
|
|
||||||
|
### 2.4 重写 BLE 数据发送任务
|
||||||
|
- 修改 `bleSendTask` 任务,实现以下逻辑:
|
||||||
|
1. 定时检测数据变化(基于 `continuousSendInterval`)
|
||||||
|
2. 检测到变化时立即发送数据
|
||||||
|
3. 发送后更新 `lastSentData` 为当前数据
|
||||||
|
4. 保持与现有命令处理的兼容性
|
||||||
|
|
||||||
|
### 2.5 保持命令处理逻辑
|
||||||
|
- 保留 `processStartContinuousSend` 和 `processStopContinuousSend` 函数
|
||||||
|
- 确保小程序可以正常控制发送模式和间隔
|
||||||
|
|
||||||
|
## 3. 代码修改点
|
||||||
|
|
||||||
|
### 3.1 radar_manager.h
|
||||||
|
- 添加 `LastSentData` 结构体定义
|
||||||
|
- 在全局变量声明中添加 `lastSentData` 和相关变量
|
||||||
|
|
||||||
|
### 3.2 radar_manager.cpp
|
||||||
|
- 初始化 `lastSentData` 变量
|
||||||
|
- 实现 `isDataChanged()` 函数
|
||||||
|
- 重写 `bleSendTask` 任务函数
|
||||||
|
- 确保数据发送格式与现有代码保持一致
|
||||||
|
|
||||||
|
## 4. 技术要点
|
||||||
|
- 使用阈值检测避免微小数据波动导致的频繁发送
|
||||||
|
- 保持定时检测机制,确保数据及时性
|
||||||
|
- 维持与现有 BLE API 的兼容性
|
||||||
|
- 按照现有代码的注释格式编写新代码
|
||||||
|
- 确保内存使用合理,避免内存泄漏
|
||||||
|
|
||||||
|
## 5. 预期效果
|
||||||
|
- 减少不必要的蓝牙数据传输
|
||||||
|
- 只在数据发生实际变化时发送
|
||||||
|
- 保持数据的实时性和准确性
|
||||||
|
- 与现有小程序控制逻辑完全兼容
|
||||||
Reference in New Issue
Block a user