145 lines
4.6 KiB
Markdown
145 lines
4.6 KiB
Markdown
# 蓝牙连接功能使用说明
|
||
|
||
## 📱 功能概述
|
||
|
||
本应用已集成蓝牙连接功能,支持连接十二导联心电设备并实时接收数据。
|
||
|
||
## 🔧 功能特性
|
||
|
||
### 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. **设备管理**:保存常用设备列表
|