2025-07-15 15:57:16 +08:00
|
|
|
|
# NTK_NFY_Communication_Protocol
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 一.概述
|
|
|
|
|
|
|
|
|
|
NTK_NFY_Communication_Protocol © 2025 by JiangXiNaoTiaoKong is licensed under CC BY-NC-ND 4.0.
|
|
|
|
|
To view a copy of this license, visit [https://creativecommons.org/licenses/by-nc-nd/4.0/](https://creativecommons.org/licenses/by-nc-nd/4.0/)
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 二.目录
|
|
|
|
|
|
|
|
|
|
一.概述
|
|
|
|
|
二.目录
|
|
|
|
|
三.修改记录
|
|
|
|
|
四.基本数据格式
|
|
|
|
|
五.头戴设备功能码表
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 三.修改记录
|
|
|
|
|
|
|
|
|
|
* V0.2:2025.0530.0909 江鑫辉
|
|
|
|
|
1.数据格式增加设备ID
|
|
|
|
|
2.增加头戴设备部分功能码
|
|
|
|
|
* V0.3: 2025.0715.1556 江鑫辉
|
|
|
|
|
1.改写 markdown 格式
|
|
|
|
|
2.增加头戴设备部分功能码
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 四.基本数据格式
|
|
|
|
|
|
|
|
|
|
通信数据采用HEX编码,采用主从应答方式进行通信,头戴设备、平板、电视大屏为主端(客户端),电脑端软件为从端(服务器)响应客户端的服务请求。
|
|
|
|
|
|
|
|
|
|
### 4.1 数据包结构总览
|
|
|
|
|
|
|
|
|
|
| 起始位置 | 结束位置 | 名称/描述 | 类型 | 长度(字节) | 是否固定值 | 大小端 |
|
|
|
|
|
| --------- | --------------- | ----------- | -------------------- | ------------ | ---------- | -------- |
|
|
|
|
|
| 0 | 1 | 帧头 | uint8_t | 1 | 0x5A | \\ |
|
|
|
|
|
| 1 | 2 | 类型 | uint8_t | 1 | \\ | \\ |
|
|
|
|
|
| 2 | 3 | 设备ID | uint8_t | 1 | \\ | \\ |
|
|
|
|
|
| 3 | 4 | 功能码 | uint8_t | 1 | \\ | \\ |
|
|
|
|
|
| 4 | 6 | 数据长度 | uint16_t | 2 | \\ | 大端模式 |
|
|
|
|
|
| 6 | 8 | 保留位 | \\ | 3 | \\ | \\ |
|
|
|
|
|
| 8 | CRC_H = ( 8+N ) | 数据 | (非固定 常用int32_t) | N | \\ | 小段模式 |
|
|
|
|
|
| CRC_H | CRC_H + 2 | CRC16校验和 | uint16_t | 1 | \\ | 小段模式 |
|
|
|
|
|
| CRC_H + 2 | CRC_H + 3 | 帧尾 | uint8_t | 1 | 0xA5 | \\ |
|
|
|
|
|
|
|
|
|
|
### 4.2 数据包各结构描述
|
|
|
|
|
|
|
|
|
|
#### 帧头
|
|
|
|
|
|
|
|
|
|
固定0x5A
|
|
|
|
|
|
|
|
|
|
#### 类型
|
|
|
|
|
|
|
|
|
|
类型00表示电脑端,01表示头戴设备,02表示平板,03表示电视大屏
|
|
|
|
|
|
|
|
|
|
#### 设备ID
|
|
|
|
|
|
|
|
|
|
当类型为01头戴设备时,用于区分设备。当头戴设备不知道设备ID时,使用0xff临时设备ID。
|
|
|
|
|
当类型为其他时无意义。
|
|
|
|
|
|
|
|
|
|
#### 功能码
|
|
|
|
|
|
|
|
|
|
功能码对应本条数据的类型,需要根据功能码来解析数据段。
|
|
|
|
|
|
|
|
|
|
#### 数据长度
|
|
|
|
|
|
|
|
|
|
数据长度字段的内容表示数据段的字节数量,大端模式。
|
|
|
|
|
|
|
|
|
|
#### 数据
|
|
|
|
|
|
|
|
|
|
数据段内容,具体格式根据功能码来定义,小端模式。
|
|
|
|
|
|
|
|
|
|
#### CRC校验和
|
|
|
|
|
|
|
|
|
|
从头开始到校验码前所有字节生成的CRC16,小端模式。
|
|
|
|
|
|
|
|
|
|
#### 帧尾
|
|
|
|
|
|
|
|
|
|
固定0xA5
|
|
|
|
|
|
|
|
|
|
### 4.3 数据包示例
|
|
|
|
|
|
|
|
|
|
``` HEX
|
|
|
|
|
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 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 CE 1F A5
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
1. 帧头: 5A
|
|
|
|
|
2. 类型: 01
|
|
|
|
|
3. 设备ID: FF
|
|
|
|
|
4. 功能码: 40
|
|
|
|
|
对应脑电数据,int32_t类型
|
|
|
|
|
5. 数据长度: 00 64
|
2025-07-16 09:55:30 +08:00
|
|
|
|
大端模式,N = ( 0x00 << 8 | 0x64 ) == 0x0064 == 100
|
2025-07-15 15:57:16 +08:00
|
|
|
|
根据int32_t类型反推数据点个数: 100 / 4 = 25
|
|
|
|
|
6. 保留位:00 00 00
|
|
|
|
|
7. 数据段:
|
|
|
|
|
`93 9E FF 3F 93 9E FF 3F 93 9E FF 3F 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00 7F 4B 00 00`
|
|
|
|
|
取前16个字节为例
|
|
|
|
|
`93 9E FF 3F 93 9E FF 3F 93 9E FF 3F 7F 4B 00 00`
|
|
|
|
|
每4字节对应一个数据点
|
|
|
|
|
`93 9E FF 3F`
|
|
|
|
|
`93 9E FF 3F`
|
|
|
|
|
`93 9E FF 3F`
|
|
|
|
|
`7F 4B 00 00`
|
|
|
|
|
小端模式
|
|
|
|
|
Point1 = 0x3FFF9E93
|
|
|
|
|
Point2 = 0x3FFF9E93
|
|
|
|
|
Point3 = 0x3FFF9E93
|
|
|
|
|
Point4 = 0x00004B7F
|
|
|
|
|
8. CRC16校验: CE 1F
|
|
|
|
|
9. 数据段尾: 0xA5
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 五.电脑端功能码表
|
|
|
|
|
|
|
|
|
|
当连接建立后,电脑端向外发送数据时的功能码对应的功能
|
|
|
|
|
|
|
|
|
|
### 5.1 总览
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 5.1. 0x80~0x9f: 向头戴设备发送数据或指令
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
|
|
|
|
|
| ------ | ------------------ | -------------- | -------------- | ---------------------------------------------------- |
|
|
|
|
|
| 0x80 | 一个表示正常的编码 | 0 | \\ | 直接被头戴设备丢弃 |
|
|
|
|
|
| 0x81 | 接收的信息出错 | 1 | uint8_t | 提示接收出现问题,不一定被处理 |
|
|
|
|
|
| 0x90 | 启动配对流程 | 0 | \\ | 头戴设备接收此指令后清除设备ID等信息,并重新尝试配对 |
|
|
|
|
|
| 0x91 | 告知设备ID | 1 | uint8_t | 告知设备ID |
|
|
|
|
|
|
|
|
|
|
### 5.2 功能码详解
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 5.2. 0x80 一个表示正常的编码
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
|
|
|
|
HEX: 5A 00 00 80 00 00 00 00 00 crc16_L crc16_H A5
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
表示正常
|
|
|
|
|
暂时无用
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ----------- | -------- | ------ | ------------------ |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 5.2. 0x81 一个表示异常的编码
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
|
|
|
|
HEX: 5A 00 00 81 00 01 00 00 00 data1 crc16_L crc16_H A5
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
表示异常
|
|
|
|
|
仅起到提示作用
|
|
|
|
|
头戴设备收到此指令后,不一定会进行数据处理
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ------------ | -------- | ------ | -------------------------------------- |
|
|
|
|
|
| data1 | 表示异常类型 | uint8_t | 0x00 | 未定义的错误 |
|
|
|
|
|
| data1 | 表示异常类型 | uint8_t | 0x01 | 校验出错 |
|
|
|
|
|
| data1 | 表示异常类型 | uint8_t | 0x02 | 数值异常(检测出上传的参数超过阈值等) |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 5.2. 0x90 启动配对流程
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
|
|
|
|
HEX: 5A 00 00 90 00 00 00 00 00 crc16_L crc16_H A5
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
电脑端主动发起配对流程
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ----------- | -------- | ------ | ------------------ |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 5.2. 0x91 告知设备ID
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
|
|
|
|
HEX: 5A 00 00 91 00 01 00 00 00 data1 crc16_L crc16_H A5
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ------------ | -------- | ----------------------- | ------------------ |
|
|
|
|
|
| data1 | 表示异常类型 | uint8_t | 0x00~0x20(共32个编号) | 成功分配的设备ID号 |
|
|
|
|
|
| data1 | 表示异常类型 | uint8_t | 0xff | 设备未获得设备ID号 |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | xx | \\ |
|
|
|
|
|
|
|
|
|
|
## 六.头戴设备功能码表
|
|
|
|
|
|
|
|
|
|
当连接建立后,电脑端向外发送数据时的功能码对应的功能
|
|
|
|
|
|
|
|
|
|
### 6.1 总览
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 6.1. 0x00~0x1f: 设备基本信息相关
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
|
|
|
|
|
| ------ | ---------------- | -------------- | -------------- | ---- |
|
|
|
|
|
| 0x00 | 设备工作状态 | 1 | uint8_t | |
|
|
|
|
|
| 0x01 | 设备WIFI信号强度 | 1 | uint8_t | |
|
|
|
|
|
| 0x02 | 设备电池电量 | 1 | uint8_t | |
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 6.1. 0x20~0x3f: 与电脑端交互
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
|
|
|
|
|
| ------ | ------------------------------- | -------------- | -------------- | ---------------- |
|
|
|
|
|
| 0x20 | 发送MAC地址与IP地址,申请设备ID | 10 | uint8_t | |
|
|
|
|
|
| 0x21 | 配对成功 | 0 | | 拿到设备ID后发送 |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 6.1. 0x40~0x5f: 脑电数据的上传
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
|
|
|
|
|
| ------ | ---------------------------------------------------- | -------------- | -------------- | ---------------------------------------- |
|
|
|
|
|
| 0x40 | 发送脑电信号采集到的原始值 | N | int32_t | |
|
|
|
|
|
| 0x41 | 发送 脑电信号采集到的值 换算为电压值的**系数的倒数** | 1 | int32_t | 真实电压 = 原始值 * (1 / 系数的倒数) |
|
|
|
|
|
| 0x42 | 分解出的5种脑波的值 | 5 | int32_t | 顺序:Delta,Theta,Alpha,Beta,Gamma。 |
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 6.1. 0x60~0x7f:心率数据的上传
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
|
|
|
|
|
| ------ | ---------------------- | -------------- | -------------- | ---- |
|
|
|
|
|
| 0x60 | 计算得出的每分钟心率值 | 1 | int16_t | |
|
|
|
|
|
| 0x61 | 心率波形 | N | int32_t | |
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 6.1. 0x80~0x9f:肌电数据的上传
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
| 功能码 | 功能名称 | 数据段数据个数 | 每个数据的类型 | 备注 |
|
|
|
|
|
| ------ | ---------------------------------------------------- | -------------- | -------------- | --------------------------------------------------------------------- |
|
|
|
|
|
| 0x80 | 发送肌电信号采集到的原始值 | N | int32_t | |
|
|
|
|
|
| 0x81 | 发送 肌电信号采集到的值 换算为电压值的**系数的倒数** | 1 | int32_t | 真实电压 = 原始值 * (1 / 系数的倒数); 此系数与0x41功能码的系数应一致; |
|
|
|
|
|
|
|
|
|
|
### 6.2 功能码详解
|
|
|
|
|
|
|
|
|
|
#### 6.2. 0x00 设备工作状态
|
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
2025-07-16 09:55:30 +08:00
|
|
|
|
HEX: 5A 01 ID 00 00 01 00 00 00 data1 crc16_L crc16_H A5
|
2025-07-15 15:57:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
表示设备工作状态
|
|
|
|
|
仅起到提示作用
|
|
|
|
|
一般不会发送此指令
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ------------ | -------- | ------ | ------------------ |
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| ID | 设备ID | uint8_t | | |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
| data1 | 表示异常类型 | uint8_t | 0x00 | 正常运行 |
|
|
|
|
|
| data1 | 表示异常类型 | uint8_t | other | 其他异常 |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
|
|
|
|
#### 6.2. 0x01 设备WIFI信号强度
|
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
2025-07-16 09:55:30 +08:00
|
|
|
|
HEX: 5A 01 ID 01 00 01 00 00 00 data1 crc16_L crc16_H A5
|
2025-07-15 15:57:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
表示设备WIFI信号强度
|
|
|
|
|
不会主动发送此功能码
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ------------ | -------- | ------ | ------------------ |
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| ID | 设备ID | uint8_t | | |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
| data1 | WIFI信号强度 | int8_t | | 单位dBm |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
|
|
|
|
#### 6.2. 0x02 设备电池电量
|
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
2025-07-16 09:55:30 +08:00
|
|
|
|
HEX: 5A 01 ID 02 00 02 00 00 00 data1_L data1_H crc16_L crc16_H A5
|
2025-07-15 15:57:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
表示设备电池电量
|
|
|
|
|
定时主动发送此功能码
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ------------ | -------- | ------ | ------------------ |
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| ID | 设备ID | uint8_t | | |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
| data1 | 设备电池电量 | int16_t | | 单位mV |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
|
|
|
|
#### 6.2. 0x20 发送MAC地址,申请设备ID
|
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
2025-07-16 09:55:30 +08:00
|
|
|
|
HEX: 5A 01 ID 20 00 0A 00 00 00 MAC_AA MAC_BB MAC_CC MAC_DD MAC_EE MAC_FF IP_AA IP_BB IP_CC IP_DD crc16_L crc16_H A5
|
2025-07-15 15:57:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
发送MAC地址,申请设备ID
|
|
|
|
|
启动时发送 接收到上位机重新配对指令后发送
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| ----------------------------------------- | ------------- | ----------- | ------ | ------------------------------- |
|
|
|
|
|
| ID | 设备ID | uint8_t | | |
|
|
|
|
|
| MAC_AA MAC_BB MAC_CC MAC_DD MAC_EE MAC_FF | 设备的MAC地址 | 6 * uint8_t | | |
|
|
|
|
|
| IP_AA IP_BB IP_CC IP_DD | 设备的IP地址 | 4 * uint8_t | | 0xIP_AA.0xIP_BB.0xIP_CC.0xIP_DD |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
#### 6.2. 0x21 配对成功
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
2025-07-16 09:55:30 +08:00
|
|
|
|
HEX: 5A 01 ID 21 00 00 00 00 00 crc16_L crc16_H A5
|
2025-07-15 15:57:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
2025-07-16 09:55:30 +08:00
|
|
|
|
拿到设备的IP地址后,响应配对成功
|
2025-07-15 15:57:16 +08:00
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ----------- | -------- | ------ | ------------------ |
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| ID | 设备ID | uint8_t | | |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
|
|
|
|
#### 6.2. 0x40 发送脑电信号采集到的原始值
|
|
|
|
|
|
|
|
|
|
参考 4.3 节
|
|
|
|
|
|
|
|
|
|
#### 6.3. 0x41 发送 脑电信号采集到的值 换算为电压值的系数的倒数
|
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
2025-07-16 09:55:30 +08:00
|
|
|
|
HEX: 5A 01 ID 41 00 04 00 00 00 data1_LL data1_LH data1_HL data1_HH crc16_L crc16_H A5
|
2025-07-15 15:57:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
发送
|
|
|
|
|
实际值 = 脑电信号采集到的原始值 * (1/data1)
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ------------------------------------------ | -------- | ------ | ------------------ |
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| ID | 设备ID | uint8_t | | |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
| data1 | 脑电信号采集到的值换算为电压值的系数的倒数 | int32_t | | |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
|
|
|
|
#### 6.3. 0x44 发送分解出的5种脑波的值
|
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
2025-07-16 09:55:30 +08:00
|
|
|
|
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 CC_LL CC_LH CC_HL CC_HH DD_LL DD_LH DD_HL DD_HH EE_LL EE_LH EE_HL EE_HH crc16_L crc16_H A5
|
2025-07-15 15:57:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
发送分解出的5种脑波的值
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------------- | -------------------------------------------- | ----------- | ------ | ------------------ |
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| ID | 设备ID | uint8_t | | |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
| AA BB CC DD EE | 顺序对应:Delta,Theta,Alpha,Beta,Gamma。 | 5 * int32_t | | |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
|
|
|
|
#### 6.3. 0x60 发送 计算得出的每分钟心率值
|
|
|
|
|
|
|
|
|
|
数据帧示例:
|
|
|
|
|
|
|
|
|
|
``` HEX
|
2025-07-16 09:55:30 +08:00
|
|
|
|
HEX: 5A 01 ID 60 00 02 00 00 00 AA_L AA_H crc16_L crc16_H A5
|
2025-07-15 15:57:16 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
表示设备电池电量
|
|
|
|
|
定时主动发送此功能码
|
|
|
|
|
|
|
|
|
|
| 参数名称 | 参数描述 | 参数类型 | 参数值 | 参数值对应功能描述 |
|
|
|
|
|
| -------- | ---------------------- | -------- | ------ | ------------------ |
|
2025-07-16 09:55:30 +08:00
|
|
|
|
| ID | 设备ID | uint8_t | | |
|
2025-07-15 15:57:16 +08:00
|
|
|
|
| AA | 计算得出的每分钟心率值 | uint16_t | | |
|
|
|
|
|
| crc16 | crc16校验值 | uint16_t | | |
|
|
|
|
|
|
|
|
|
|
#### 6.3. 0x61 发送 心率波形
|
|
|
|
|
|
|
|
|
|
参考 4.3 节 , 仅功能码不同
|
|
|
|
|
|
|
|
|
|
#### 6.3. 0x80 发送 肌电信号采集到的原始值
|
|
|
|
|
|
|
|
|
|
参考 4.3 节 , 仅功能码不同
|
|
|
|
|
|
|
|
|
|
#### 6.3. 0x81 发送 肌电信号采集到的原始值 换算为电压值的系数的倒数
|
|
|
|
|
|
|
|
|
|
参考 6.3. 0x41 发送 脑电信号采集到的值 换算为电压值的系数的倒数,仅功能码不同。
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 七.头戴设备与医生端通信各场景通信流程
|
|
|
|
|
|
|
|
|
|
### 7.1
|
|
|
|
|
|
|
|
|
|
--TODO
|