5.2. 0x9A 控制下位机灯光常量或闪烁
This commit is contained in:
2025-08-24 16:52:49 +08:00
parent 3be2dd40d2
commit 2de0698fee

View File

@ -130,7 +130,7 @@ HEX: 5A 01 FF 40 00 64 00 00 00 93 9E FF 3F 93 9E FF 3F 93 9E FF 3F 7F 4B 00 00
#### 5.1. 0x80~0x9f: 向头戴设备发送数据或指令
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
| ------ | ---------------------- | -------------- | -------------- | ---------------------------------------------------- |
| ------ | ------------------------ | -------------- | -------------- | ---------------------------------------------------- |
| 0x80 | 一个表示正常的编码 | 0 | \\ | 直接被头戴设备丢弃 |
| 0x81 | 接收的信息出错 | 1 | uint8_t | 提示接收出现问题,不一定被处理 |
| 0x8D | 控制MCU软重启 | 0 | \\ | 控制MCU软重启 |
@ -140,7 +140,7 @@ HEX: 5A 01 FF 40 00 64 00 00 00 93 9E FF 3F 93 9E FF 3F 93 9E FF 3F 7F 4B 00 00
| 0x91 | 告知设备ID | 1 | uint8_t | 告知设备ID |
| 0x98 | 控制开启下位机功能 | 1 | uint16_t | 开启 FFT LPF HPF NOTCH 等功能 |
| 0x99 | 控制关闭下位机功能 | 1 | uint16_t | 关闭 FFT LPF HPF NOTCH 等功能 |
| 0x9A | 控制下位机灯光 | 1 | uint8_t | 控制LED灯 可用于寻找设备 |
| 0x9A | 控制下位机灯光常量或闪烁 | 3 | uint8_t | 控制LED灯可用于寻找设备 |
| 0x9B | 控制播放音频与音量 | 2 | uint8_t | |
| 0x9C | 修改下位机心率拟合系数 | 9 | int32_t | 微调心率计算结果 |
| 0x9D | 告知治疗阶段与疾病类型 | 2 | uint8_t | 告知治疗阶段与疾病类型 |
@ -276,28 +276,54 @@ HEX: 5A 00 00 99 00 02 00 00 00 data1_L data1_H crc16_L crc16_H A5
| data1 | 要关闭的功能 | uint16_t | 参考5.2. 0x98对应表格 | 对应位置1则代表关闭 |
| crc16 | crc16校验值 | uint16_t | | |
#### 5.2. 0x9A 控制下位机灯光
#### 5.2. 0x9A 控制下位机灯光常量或闪烁
数据帧示例:
``` HEX
HEX: 5A 00 00 9A 00 01 00 00 00 data1 crc16_L crc16_H A5
HEX: 5A 00 00 9A 00 03 00 00 00 color keeptime gap crc16_L crc16_H A5
```
控制下位机灯光常量或闪烁
可以指定本次亮灯的时长
但是不保证一定亮灯达到指定的时长
下位机的LED灯会被新的亮灯事件内部生成或外部控制覆盖
LED闪烁时LED灯固定亮0.5s
每次亮起的时间间隔为传入的`gap`
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
| -------- | ------------ | -------- | ------ | ------------------------------ |
| data1 | 要关闭的功能 | uint8_t | 见下表 | 对应位 置1代表开启 置0代表关闭 |
| crc16 | crc16校验值 | uint16_t | | |
| -------- | ---------------- | -------- | --------- | --------------------------- |
| color | 控制灯光颜色 | uint8_t | 见下表 | 见下表 |
| keeptime | 灯光动作保持时间 | uint8_t | 0x00~0xFF | 这个动作最长持续时间单位s |
| gap | 每次闪烁间隔 | uint8_t | 0x00 | 常亮模式 |
| gap | 每次闪烁间隔 | uint8_t | 0x01~0xFF | 每次闪烁的间隔时间单位s |
| crc16 | crc16校验值 | uint16_t | \ | |
**data1参数值对应功能描述:**
**color参数值对应功能描述:**
| bit Num | 对应功能 | 参数值对应功能描述 |
| --------- | -------- | ------------------ |
| MSB ==> 7 | 暂无 | |
| 3~6 | 暂无 | |
| 2 | RED | 红灯 |
| 1 | GREEN | 绿灯 |
| LSB ==> 0 | BLUE | 蓝灯 |
| color 参数值 | 对应color |
| ------------ | -------------------------- |
| 0x07 | RED + GREEN + BLUE = WHITE |
| 0x06 | RED + GREEN = CYAN |
| 0x05 | RED + BLUE = YELLOW |
| 0x04 | RED |
| 0x03 | GREEN + BLUE = MAGENTA |
| 0x02 | GREEN |
| 0x01 | BLUE |
| 0x00 | BLACK |
##### 5.2. 0x9A 参数配置示例
1. * 设置灯光全部熄灭:
`HEX: 5A 00 00 9A 00 03 00 00 00 00 00 00 7C 5D A5`
2. * 设置蓝灯常亮10s
`HEX: 5A 00 00 9A 00 03 00 00 00 01 0A 00 1C 0A A5`
3. * 设置白灯常亮10s
`HEX: 5A 00 00 9A 00 03 00 00 00 07 0A 00 1D EA A5`
4. * 设置蓝灯闪烁20s 闪烁间隔为2s
`HEX: 5A 00 00 9A 00 03 00 00 00 01 14 02 7D 82 A5`
#### 5.2. 0x9B 控制播放音频
@ -385,16 +411,16 @@ HEX: 5A 00 00 9C 00 24 00 00 00 data1_LL data1_LH data1_HL data1_HH (data2_ * 4)
}
```
##### 参数配置示例
##### 5.2. 0x9C 参数配置示例
1. * 对BPM低于300的值不进行矫正
九个参数分别为
`300 1000000 0 0 0 0 0 0 0`
`HEX: 5A 00 00 9C 00 24 00 00 00 2C 01 00 00 40 42 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 71 A8 A5`
2. * 对所有BPM低于300的值进行校准, 使用公式 **outBPM(校正后BPM) = 0.95 * BPM(矫正前BMP) + 2**
九个参数分别为
`300 950000 2000000 0 0 0 0 0 0`
`HEX: 5A 00 00 9C 00 24 00 00 00 2C 01 00 00 f07e0e00 80841e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 490e A5`
3. * 对所有BPM低于300的值进行校准, 使用公式 **outBPM(校正后BPM) = 1.099 * BPM(矫正前BMP) - 1.945**
九个参数分别为
`300 1099000 -1945000 0 0 0 0 0 0`
@ -476,24 +502,24 @@ HEX: 5A 00 00 9D 00 02 00 00 00 TreatmentPhase DiseaseTypes crc16_L crc16_H A5
#### 6.1. 0x40~0x5f: 脑电数据的上传
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
| ------ | ---------------------------------------------------- | -------------- | -------------- | ---------------------------------------- |
| 0x40 | 发送脑电信号采集到的原始值 | N | int32_t | |
| 0x41 | 发送 脑电信号采集到的值 换算为电压值的**系数的倒数** | 1 | int32_t | 真实电压 = 原始值 * (1 / 系数的倒数) |
| ------ | -------------------------------------------------------- | -------------- | -------------- | ---------------------------------------- |
| 0x40 | 发送脑电信号采集到的电压值 的 100倍 | N | int32_t | 接收到的数据缩小100倍后单位为uV |
| 0x41 | ~~发送 脑电信号采集到的值 换算为电压值的**系数的倒数**~~ | 1 | int32_t | ~~真实电压 = 原始值 * (1 / 系数的倒数)~~ |
| 0x42 | 分解出的5种脑波的值 | 5 | int32_t | 顺序DeltaThetaAlphaBetaGamma。 |
#### 6.1. 0x60~0x7f心率数据的上传
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
| ------ | ---------------------- | -------------- | -------------- | ---- |
| 0x60 | 计算得出的每分钟心率值 | 1 | int16_t | |
| ------ | ----------------------------------------------------- | -------------- | -------------- | ---- |
| 0x60 | 计算得出的每分钟心率值计算得出的每分钟心率值 的 100倍 | 1 | int16_t | |
| 0x61 | 心率波形 | N | int32_t | |
#### 6.1. 0x80~0x9f肌电数据的上传
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
| ------ | ---------------------------------------------------- | -------------- | -------------- | --------------------------------------------------------------------- |
| 0x80 | 发送肌电信号采集到的原始值 | N | int32_t | |
| 0x81 | 发送 肌电信号采集到的值 换算为电压值的**系数的倒数** | 1 | int32_t | 真实电压 = 原始值 * (1 / 系数的倒数); 此系数与0x41功能码的系数应一致; |
| ------ | -------------------------------------------------------- | -------------- | -------------- | ------------------------------------------------------------------------- |
| 0x80 | 发送肌电信号采集到的电压值 的 100倍 | N | int32_t | 接收到的数据缩小100倍后单位为uV |
| 0x81 | ~~发送 肌电信号采集到的值 换算为电压值的**系数的倒数**~~ | 1 | int32_t | ~~真实电压 = 原始值 * (1 / 系数的倒数); 此系数与0x41功能码的系数应一致;~~ |
### 6.2 功能码详解
@ -637,7 +663,7 @@ HEX: 5A 01 ID 42 00 14 00 00 00 AA_LL AA_LH AA_HL AA_HH BB_LL BB_LH BB_HL BB_HH
| AA BB CC DD EE | 顺序对应DeltaThetaAlphaBetaGamma。 | 5 * int32_t | | |
| crc16 | crc16校验值 | uint16_t | | |
#### 6.3. 0x60 发送 计算得出的每分钟心率值
#### 6.3. 0x60 发送 计算得出的每分钟心率值 的 100倍
数据帧示例:
@ -645,13 +671,13 @@ HEX: 5A 01 ID 42 00 14 00 00 00 AA_LL AA_LH AA_HL AA_HH BB_LL BB_LH BB_HL BB_HH
HEX: 5A 01 ID 60 00 02 00 00 00 AA_L AA_H crc16_L crc16_H A5
```
表示设备电池电量
定时主动发送此功能码
为保留两位小数,上传前下位机将数值放大了一百倍
上位机接收后需要缩小100倍
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
| -------- | ---------------------- | -------- | ------ | ------------------ |
| -------- | ------------------------------- | -------- | ------ | ------------------ |
| ID | 设备ID | uint8_t | | |
| AA | 计算得出的每分钟心率值 | uint16_t | | |
| AA | 计算得出的每分钟心率值 的 100倍 | uint16_t | | |
| crc16 | crc16校验值 | uint16_t | | |
#### 6.3. 0x61 发送 心率波形