SDK_APP/BLUETOOTH_SETUP.md

145 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 蓝牙连接功能使用说明
## 📱 功能概述
本应用已集成蓝牙连接功能,支持连接十二导联心电设备并实时接收数据。
## 🔧 功能特性
### 1. 蓝牙设备管理
- **自动扫描**:点击"连接蓝牙"按钮自动扫描附近设备
- **设备选择**:扫描完成后显示设备列表供用户选择
- **状态显示**:实时显示连接状态和数据接收情况
### 2. 数据流处理
- **实时接收**:自动接收蓝牙设备发送的数据
- **数据处理**:将接收的数据传递给现有的数据处理管道
- **实时显示**在ECG曲线图上实时显示接收的数据
### 3. 用户界面
- **状态指示**:按钮颜色和文字显示当前连接状态
- **日志记录**:详细记录蓝牙操作和状态变化
- **错误处理**:友好的错误提示和状态恢复
## 🚀 使用方法
### 第一步:启用蓝牙
1. 确保设备蓝牙已启用
2. 确保心电设备已开启并处于可发现状态
### 第二步:连接设备
1. 点击"连接蓝牙"按钮
2. 等待扫描完成约2-3秒
3. 在弹出的设备列表中选择目标设备
4. 等待连接建立
### 第三步:开始数据采集
1. 连接成功后,点击"启动程序"按钮
2. 观察ECG曲线图开始显示实时数据
3. 查看状态信息确认数据接收正常
## 🔧 技术配置
### 蓝牙参数设置
```kotlin
// 服务UUID (根据设备协议调整)
private val SERVICE_UUID = UUID.fromString("0000fff0-0000-1000-8000-00805f9b34fb")
// 特征UUID (根据设备协议调整)
private val CHARACTERISTIC_UUID = UUID.fromString("0000fff1-0000-1000-8000-00805f9b34fb")
// 设备名称前缀
private const val DEVICE_NAME_PREFIX = "ECG"
```
### 权限配置
```xml
<!-- 蓝牙权限 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
```
## 📊 状态指示
### 按钮状态
| 状态 | 按钮文字 | 按钮颜色 | 说明 |
|------|----------|----------|------|
| 未连接 | "连接蓝牙" | 绿色 | 可以开始连接 |
| 扫描中 | "扫描中..." | 橙色 | 正在扫描设备 |
| 连接中 | "连接中..." | 橙色 | 正在连接设备 |
| 已连接 | "断开蓝牙" | 红色 | 可以断开连接 |
### 日志信息
- `[时间] 蓝牙状态: 正在扫描蓝牙设备...`
- `[时间] 发现设备: ECG_Device_001`
- `[时间] 蓝牙设备已连接: ECG_Device_001`
- `[时间] 接收到蓝牙数据: 128 字节`
- `[时间] 蓝牙设备已断开`
## 🔍 故障排除
### 常见问题
#### 1. 蓝牙未启用
**症状**:点击连接按钮无反应
**解决**:在系统设置中启用蓝牙
#### 2. 权限不足
**症状**:提示"缺少蓝牙扫描权限"
**解决**:在应用设置中授予蓝牙权限
#### 3. 设备未发现
**症状**:扫描完成但未找到设备
**解决**
- 确认设备已开启
- 确认设备处于可发现状态
- 检查设备距离是否过远
#### 4. 连接失败
**症状**:选择设备后连接失败
**解决**
- 确认设备未被其他应用占用
- 重新启动设备
- 检查设备电池电量
### 调试信息
应用会在日志中记录详细的调试信息,包括:
- 蓝牙初始化状态
- 设备扫描过程
- 连接建立过程
- 数据接收情况
## 🔄 数据流程
```
蓝牙设备 → BluetoothManager → MainActivity → DataManager → 信号处理 → 指标计算 → UI显示
```
1. **蓝牙设备**:发送原始心电数据
2. **BluetoothManager**:接收数据并传递给应用
3. **MainActivity**:处理蓝牙回调和数据转发
4. **DataManager**:解析和处理数据
5. **信号处理**:滤波和信号增强
6. **指标计算**计算心率和HRV指标
7. **UI显示**:在曲线图上显示结果
## 📝 注意事项
1. **首次使用**:需要授予蓝牙权限
2. **设备兼容性**确保设备支持BLE协议
3. **数据格式**:确保设备发送的数据格式与解析器兼容
4. **连接稳定性**:保持设备在有效范围内
5. **电池管理**:注意设备电池电量,避免连接中断
## 🔮 未来改进
1. **自动重连**:连接断开时自动尝试重连
2. **多设备支持**:同时连接多个设备
3. **数据缓存**:本地缓存数据防止丢失
4. **连接优化**:优化连接速度和稳定性
5. **设备管理**:保存常用设备列表