Files
Rader_Success_5/data_formats_explanation.md
userName 5e2dfc8ac8 Radar
2025-12-15 09:19:47 +08:00

2.3 KiB
Raw Blame History

数据格式说明

1. 雷达数据格式 (HBR01)

格式特征

  • HBR01: 开头
  • 后跟8个用逗号分隔的数值字段
  • 每行一条数据记录

数据字段说明

HBR01:presence,heart_rate,breath_rate,motion,rssi,heartbeat_waveform,breathing_waveform,raw_signal

字段含义

  1. presence - 人员存在状态 (0=无人, 1=有人)
  2. heart_rate - 心率 (bpm)
  3. breath_rate - 呼吸率 (bpm)
  4. motion - 运动状态 (0=静止, 1=运动)
  5. rssi - 信号强度
  6. heartbeat_waveform - 心跳波形数据
  7. breathing_waveform - 呼吸波形数据
  8. raw_signal - 原始信号数据

示例数据

HBR01:1,72,16,0,-45,120,45,-25
HBR01:0,0,0,0,-50,0,0,10

处理方式

在ESP32代码中通过 parseSensorLine() 函数处理,按行读取并解析逗号分隔的数值。

2. JSON数据格式

格式特征

  • 以花括号 { 开始,} 结束
  • 符合标准JSON格式
  • 可能因长度超过BLE MTU而需要分包传输

示例数据

{
  "type": "radarData",
  "deviceId": 1001,
  "timestamp": 1640995200000,
  "presence": 1,
  "heartRate": 72.5,
  "breathRate": 16.2,
  "motion": 0,
  "rssi": -45,
  "heartbeatWaveform": 120,
  "breathingWaveform": 45,
  "rawSignal": -25
}

分包传输特点

  • 每包最大20字节BLE限制
  • 需要通过匹配花括号来重组完整JSON
  • 可能出现一个完整JSON被分成多个BLE包的情况

接收处理方式

使用JavaScript代码中的 processChunk() 函数处理:

  1. 将接收到的数据片段追加到缓冲区
  2. 通过计数花括号来识别完整的JSON对象
  3. 提取完整JSON并解析
  4. 清理缓冲区中已处理的部分

3. 两种格式的主要区别

特性 雷达数据 (HBR01) JSON数据
格式标识 HBR01:开头 花括号{}包围
数据结构 固定8个数值字段 灵活的键值对
分隔符 逗号分隔 JSON标准格式
分包处理 按行处理 按花括号匹配
解析方式 数值转换 JSON解析

4. 处理建议

雷达数据处理

  • 按行读取处理
  • 验证以"HBR01:"开头
  • 按逗号分割提取8个字段
  • 进行数值有效性检查

JSON数据处理

  • 使用缓冲区累积数据
  • 通过花括号匹配识别完整对象
  • 使用JSON解析库处理
  • 注意缓冲区大小限制和清理