# 蓝牙指令使用说明

## 功能概述
本应用支持通过蓝牙连接设备后，发送指令让设备开始发送单导联ECG数据，然后实时显示ECG曲线图。专门优化用于处理单导联蓝牙实时数据，不再读取12导联文件数据。

## 支持的协议

### 轻迅蓝牙通信协议 V1.0.1
本应用完全支持轻迅蓝牙通信协议，包括：
- 数据服务 UUID: `6e400001-b5a3-f393-e0a9-68716563686f`
- Write Characteristic UUID: `6e400002-b5a3-f393-e0a9-68716563686f`
- Notify Characteristic UUID: `6e400003-b5a3-f393-e0a9-68716563686f`

## 使用步骤

### 1. 连接蓝牙设备
- 点击"连接蓝牙"按钮
- 选择您的ECG设备
- 等待连接成功

### 2. 发送指令
连接成功后，点击"发送指令"按钮，会弹出指令选择对话框：

#### 指令类型选择：
- **轻迅协议指令**：使用轻迅蓝牙通信协议的标准指令
- **通用指令**：使用通用的字符串或十六进制指令
- **自定义指令**：输入自定义指令

### 3. 轻迅协议指令
选择"轻迅协议指令"后，会显示以下选项：

#### 采集控制：
- **开启采集**：发送功能码 `0x0001` 开启数据采集
- **停止采集**：发送功能码 `0x0001` 停止数据采集

#### 设备信息：
- **查询设备信息**：发送功能码 `0x0000` 查询设备参数
- **查询电量**：发送功能码 `0x0002` 查询设备电量

#### 滤波控制：
- **工频滤波开关**：发送功能码 `0x000A` 控制工频滤波

### 4. 通用指令
选择"通用指令"后，会显示以下选项：
- **开始发送数据**：让设备开始发送数据流
- **停止发送数据**：让设备停止发送数据
- **开始ECG测量**：开始ECG信号测量
- **停止ECG测量**：停止ECG信号测量

#### 常用指令格式：
- **字符串指令**：`START_DATA`, `STOP`, `BEGIN`, `END`
- **十六进制指令**：`0x01`, `0x02`, `0x53 0x54 0x41 0x52 0x54`

### 5. 查看实时图表
发送指令成功后，应用会自动启动数据处理并立即开始绘制单导联ECG图表：
- **自动启动**：发送指令后自动启动数据处理，无需手动点击"启动程序"
- **实时显示**：单导联数据接收后立即更新图表，无需等待
- **单导联处理**：专门处理单导联ECG数据，主要显示主导联信号
- **ECG节律视图**：显示10秒的连续单导联信号
- **ECG波形视图**：显示2.5秒的放大单导联信号

### 6. 其他功能
- **陷波滤波**：开启/关闭50Hz陷波滤波器
- **清空数据**：清空所有图表数据
- **停止程序**：停止数据处理

## 轻迅协议指令详解

### 采集控制指令

#### 开启采集 (功能码: 0x0001)
```
数据包格式: [功能码(2字节)] [数据长度(2字节)] [采集开关(1字节)] [时间戳(8字节)] [CRC16(2字节)]
示例: 01 00 09 00 01 [时间戳8字节] [CRC16 2字节]
```

**时间戳选项：**
- **立即开启**：时间戳设为0
- **延迟开启**：时间戳设为未来时间（毫秒）
- **指定时间戳**：自定义时间戳

#### 停止采集 (功能码: 0x0001)
```
数据包格式: [功能码(2字节)] [数据长度(2字节)] [采集开关(1字节)] [时间戳(8字节)] [CRC16(2字节)]
示例: 01 00 09 00 00 [时间戳8字节] [CRC16 2字节]
```

### 设备信息指令

#### 查询设备信息 (功能码: 0x0000)
```
数据包格式: [功能码(2字节)] [数据长度(2字节)] [CRC16(2字节)]
示例: 00 00 00 00 [CRC16 2字节]
```

#### 查询电量 (功能码: 0x0002)
```
数据包格式: [功能码(2字节)] [数据长度(2字节)] [CRC16(2字节)]
示例: 02 00 00 00 [CRC16 2字节]
```

### 滤波控制指令

#### 工频滤波开关 (功能码: 0x000A)
```
数据包格式: [功能码(2字节)] [数据长度(2字节)] [开关状态(1字节)] [CRC16(2字节)]
开启示例: 0A 00 01 00 01 [CRC16 2字节]
关闭示例: 0A 00 01 00 00 [CRC16 2字节]
```

## 通用指令示例

### 开始数据流
```
START_DATA
START
0x01
```

### 停止数据流
```
STOP_DATA
STOP
0x02
```

### 开始ECG测量
```
START_ECG
ECG_START
0x03
```

### 停止ECG测量
```
STOP_ECG
ECG_STOP
0x04
```

## 注意事项
1. 确保蓝牙设备已正确连接
2. 根据您的设备协议选择合适的指令类型
3. 轻迅协议设备会自动计算CRC16校验，确保数据完整性
4. 如果指令发送失败，请检查设备是否支持该指令
5. 可以尝试不同的指令格式（字符串或十六进制）

## 调试信息
应用会在状态栏显示详细的调试信息，包括：
- 蓝牙连接状态
- 指令发送结果（包括轻迅协议数据包内容）
- 数据接收情况
- 图表更新状态

## 轻迅协议特性
- **自动CRC16校验**：所有指令包都包含CRC16-CCITT-FALSE校验
- **时间戳同步**：支持指定时间戳进行同步采集
- **工频滤波控制**：可动态开启/关闭工频滤波算法
- **设备信息查询**：支持查询设备状态和电量信息
- **自动数据处理**：发送指令后自动启动数据处理，无需手动操作
- **实时图表更新**：单导联数据接收后立即更新图表，提供最佳用户体验
- **单导联优化**：专门优化处理单导联ECG数据，不再处理12导联文件数据

## 测试功能
- **点击"启动程序"按钮**：立即生成测试数据并显示图表，用于验证图表显示功能
- **长按"启动程序"按钮**：生成更复杂的模拟ECG数据
- **蓝牙数据测试**：当接收到蓝牙数据但原生解析器无法解析时，会自动生成测试数据

### 测试数据说明
应用会生成模拟的单导联ECG波形，包含：
- P波、QRS复合波、T波等典型ECG特征
- 适当的噪声模拟真实信号
- 500个数据点用于充分显示波形
