Card image
帮助和文档

八电极体脂秤(APP算法)

 PDF下载地址:八电极应用手册

 

修改记录

 

文档版本

作者

发布日期

修改说明

3.1.15

梁永新

2020/3/25

1、增加8电极体脂秤协议

3.1.16

Lyx

2020/3/27

1、修改八电极体脂秤里的重量协议

3.1.17

Lyx

2020/5/18

1、增加婴儿体脂两用秤协议

3.1.18

Lyx

2020/5/22

1、增加血糖仪协议

3.1.19

LYX

2020/6/24

1、八电极体脂秤里的阻抗长度,从2个byte改为4个byte

3.1.20

LYX

2020/7/1

1、添加颈椎按摩仪协议

3.1.21

LYX

2020/7/9

1、增加八电极体脂秤指令:MCU发送测试完成,APP需回复。



1 概述

本文档适用于BM系列模块(BM02/08/09/16/20/21/22……

使用UART透传,MCU可以通过BM模块与APP进行相互数据透传。

请扫描此二维码下载AiLink APP。

如使用AILink时,需严格按照协议透传产品介绍里面的流程进行操作。

 

下文中表明的MCU为与BM模块连接交互的芯片,BLE则为BM模块.

2 说明

2.1 BLESlaveAPPMaster交互的每包数据默认最大为20byteMCU端一次性发送超过20byte时,BLE会将数据进行分包发送给APP50byte则分为20+20+103次发送给APP

2.2 BM模块上电需要时间进行配置,当配置完成,进入就绪时,BM模块会主动给MCU返回一个BM模块状态信息。详情请查看“设置、获取BM块状态”。

3 工作模式

Ø BM模块支持两种工作模式,断电模式和不断电休眠模式,用户可以根据自身需求合

理选择工作模式。

用户可以在设计PCB的时候,预留两种方式的电路。详情请查看硬件规格书规格书。

3.1 模式一:断电模式。

Ø 在此模式下,BM模块完全断电,需要供电才能正常工作,这种模式有利于省电。

Ø 在此模式下,MCU可以根据BM模块的连接状态选择合适的时间断电关机,例如,在非蓝牙连接状态时,MCU工作完10s后断电关机,在蓝牙连接状态时,工作完30s后断电关机。获取BM模块的连接状态,可以根据蓝牙状态脚(BT-CS)进行判断,也可以通过串口读取模块状态。这种做法有利于用户能够顺利传输数据到APP上,而不会出现反复关机断连问题。

工作流程:

1、BM模块上电。

2、BM模块上电就绪后,BM会给MCU返回BM模块状态

3、MCU设置CID 

4、MCU设置模块其他内容。

5、MCU发送数据。

6、MCUBM断电关机。

 

 

3.2 模式二:长供电休眠模式。

Ø 此模式下,BM模块需要长供电,不会断电关机(串口已关闭,BM处于低功耗模式)。

Ø 工作流程:

1、BM模块上电。

2、BM模块上电就绪后,BM会给MCU返回BM状态

3、MCU设置CID 

4、MCU设置模块其他内容。

5、MCU发送数据。

6、MCU 发送睡眠指令(可以选择是否开启低频广播),使BM模块进入低功耗模式。

若开启了BM模块进入了低功耗模式并且开启了低频广播,当BM模块连上APP后,BM模块会发送模块状态信息到MCU,同时蓝牙状态脚会拉低,用以唤醒MCUMCU可以用串口唤醒或者蓝牙状态脚唤醒)。

 

7、MCU主动唤醒BM模块。当BM模块处于休眠状态时,若MCU需要发送数据到BM模块,需要先发一条唤醒指令BM模块。注:BM模块刚唤醒时,是无法正常接收数据的,所以BM收到第一组的唤醒指令时,BM是不会回复MCU状态的。MCU可以发两次唤醒指令。

 

 

Ø 工作流程参考如下:

 

 

 

 

 

 

 

 

 

 

 


 


4 蓝牙接口(默认)

4.1  蓝牙名称:AiLink_xxxx

注:xxxxMac地址后4个字符

4.2  UUID说明

BM模块有两个服务UUID,一个是模块固定的服务UUID,为FFE0,一个是用户可以自定义的服务UUID,默认为FEE0

易联物联网AiLink APP交互使用的服务UUIDFFE0

同时,两个UUID都可以作为普通的数据交互UUID

4.3 蓝牙连接服务列表1FFE0举例

4.3.1 服务UUID

0000FFE0-0000-1000-8000-00805F9B34FB

 

4.3.2 特征值UUID1

0000FFE1-0000-1000-8000-00805F9B34FB

属性read,write,write no response

功能 APP下发的数据会通过此UUID透传给MCU

 

4.3.3 特征值UUID2

0000FFE2-0000-1000-8000-00805F9B34FB

属性read,notify

功能 MCU发给BLE的数据由此UUID透传给APP

 

4.3.4 特征值UUID3

0000FFE3-0000-1000-8000-00805F9B34FB

属性read,write,write no response,notify

功能:APPBLE进行设置类指令UUIDwritenotify

 

4.4  广播数据

说明:广播数据有两类,用户只能选择其中的一类进行设置。

第一类广播:AiLink设置(默认)。使用我司AILInk APP接入的设置,需根据我司要求的格式进行设置。

第二类广播:用户自定义设置。不使用我司AiLink APP接入的设置,用户可以根据自身需求进行设置。若不设置则默认为我司设置。

 

4.4.1 第一类广播设置

AiLink设置广播数据内容包含(详情设置请查看设置读取CIDPIDVID):

1Company ID 。固定:496eInInet缩写,此处预留后续申请SIG company

2CID:产品类型(2bytes)(例如血压计为0x0001,额温枪为0x0002,祥查看协议透传产品介绍

3VID:厂商ID 2byte)  (由我司分配)

4PID:产品ID 2byte)  (由厂商分配)

5Mac地址(MAC是固定的,大小端序设置,默认小端序)

例如广播出来的自定义数据为:

6e49000100010001126134231102

6e49:为In0001CID,表示产品类型,0001VID,表示厂商ID0001PID,表示产品ID

126134231102Mac地址,因为是小端序,所以Mac地址是:02 11 23 34 61 12

 

蓝牙工具显示如下图:

 

 

 

4.4.2 第二类广播设置

若使用此类广播自定义数据,则第一类的广播自定义数据不启动(CIDVIDPID等设置不启用)。详情设置请查看第二类广播自定义设置

 


5 BM模块与MCU交互协议

5.1  设置(获取指令

l 设置类指令(以下指令不透传)

l 设置读取 模块广播名称 

l 设置、读取第二类自定义广播数据

l 设置读取 广播间隔时间

l 设置读取 连接间隔

l 设置、读取串口波特率

l 读取  MAC地址

l 读取  BM模块硬件软件版本号

l 设置读取 MCU设备版本号

l 设置读取 模块主从模式

l 设置读取 模块无连接模式自动休眠时间。

l 设置  模块进入睡眠模式

l 设置  唤醒模块

l 设置读取 当前系统时间。

l 设置读取CIDVID PID

l 设置  模块重启

l 设置  模块恢复出厂设置。

l 设置、获取模块状态

l 设置  MCU的电池状态

l 设置  读取MCU所支持的单位

l 设置、取消使能绑定

l MCU端设置蓝牙锁的开锁类型

l MCU上传设备基本信息

l APP同步时间到MCU

 

l master模式下设置、获取扫描的白名单

l master模式下设置、获取扫描识别的蓝牙名称

l master模式下设置、获取扫描状态(待完成

l master模式下BM返回扫描到的广播厂商自定义数据

 

 


设置类指令格式规范(不透传):

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2 ~n

 

Payload

n+1

SUM1~n

(1~n)校验和

n+2

0x6A

包尾(注:n+2不能超过20

包头和包尾是固定的分别为0xA6,和0x6A

检验和是指byte1 + byte2 + +byte n 的和,取低位1 byte

设置指令里,数据的Byte数不能超过20

 

 

 

 

 

 


5.1.1  设置、获取广播名称(Type0102

设置蓝牙名称:

l 设置蓝牙名称可以设置为固定字符作为蓝牙名称,例如设置为swan,所有的模块都会显示为swan。同时也可以设置为固定蓝牙名称+_+ Mac 地址的方式,这样子有利于每个模块的名称都有差异。详细见如下指令说明:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度(最大16byte

2

0x01

Type:设置蓝牙名称

Payload

3 ~ n

Name

名称(需要对应ASCII表)

n+1

Num

MAC字符个数:名称后面跟随的MAC字符的个数

0:代表没有,则是固定蓝牙名称。

1:代表后面带有mac地址的1个字符,例如:

Swan_x

2:代表后面带有mac地址的2个字符,例如:

Swan_xx

默认 Num=4Num最大为12

注:Name长度+_+Num 最大为15

n + 2

Sum

(1~n)校验和

N+3

0x6A

包尾

 

举例 蓝牙的MAC地址为 12 : 34 : 56 : 78 : 9A : BC

Ø 如果设置蓝牙名称为swan, 且不带MAC地址时,那么发送A6 06 01 73 77 61 6E 00 C0 6A ,则蓝牙名称为swan

Ø 如果设置蓝牙名称为swan,且带MAC地址2个字符,那么发送A6 06 01 73 77 61 6E 02 C2 6A ,则蓝牙名称为swan_BC

Ø 如果设置蓝牙名称为swan,且带MAC地址4个字符,那么发送A6 06 01 73 77 61 6E 04 C4 6A  ,则蓝牙名称为swan_9ABC

Ø 整个蓝牙名称长度最长为15个字符

 

 

 

 

 

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x01

Type:回复设置蓝牙名称结果

Payload

3

 

结果值:

0:成功(立即生效)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

      

     举例:设置成功

           返回 A6  02  01  00  03  6A

          

           设置失败

   返回 A6  02  01  01  04  6A

 

 

 

获取蓝牙名称:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x02

Type:获取蓝牙名称

Payload

3

0x03

(1~2)校验和

4

0x6A

包尾

 

BM返回蓝牙名称:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度(最大16 byte

2

0x02

Type:回复蓝牙名称

Payload

3 ~ n

Name

蓝牙名称(最长15 byte

n + 1

Sum

(1~n)校验和

n +2

0x6A

包尾

 

Ø 举例:蓝牙名称为swan_BC

Ø 发送查询指令 A6  01  02  03  6A

Ø BM返回名称: A6  08  02  73  77  61  6E  5F  42  43  A7  6A

      

5.1.2  设置、读取第二类自定义广播数据(Type0304

Ø 当用户想使用自定义广播数据时,不接入我司AiLink APP时,可使用此设置,不设置则默认为我司设置(第一类广播设置)。

设置广播自定义数据:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度(最大16byte

2

0x03

Type:设置为第二类广播自定义数据

Payload

3 ~ n

 

设置内容

最长为15byte

n + 1

Sum

(1~n)校验和

N+2

0x6A

包尾

 

BM返回设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x03

Type:回复设置为第二类广播自定义数据结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

Ø 举例:

BMMac 地址为 11: 22 : 33 : 44 : 55 :66 .

用户若要想设置广播自定义数据为0x01 0x02 0x03 0x04 0x05+  MAC 地址”。

步骤:

1、用户先读取BMMAC地址

   发送读取MAC地址的指令,获取MAC地址 :11 22 33 44 55 66

2、MCU再发送设置广播自定义数据。

A6  0C  03  01  02  03  04  05  11  22  33  44  55  66  83  6A

 

 

 

 

 

 

 

获取第二类广播自定义数据:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x04

Type:获取第二类广播自定义数据

Payload

3

0x05

(1~2)校验和

4

0x6A

包尾

 

返回第二类广播自定义数据:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度(最大16byte

2

0x04

Type:返回第二类广播自定义数据

Payload

3 ~ n

 

返回的内容

最长为15byte

n + 1

Sum

(1~n)校验和

N+2

0x6A

包尾

 

5.1.3  设置、获取广播间隔时间(Type0506

设置广播间隔:

Byte

Value

Description

0

0xA6

包头

1

0x03

Payload长度

2

0x05

Type:设置广播间隔(单位:ms 范围:20-2000 ;默认200

Payload

3

 

广播间隔时间的高字节

4

 

广播间隔时间的低字节

5

Sum

(1~4)校验和

6

0x6A

包尾

 

Ø 举例:设置广播间隔为:1000ms

发送:A6  03  05  03  E8  F3  6A

 

 

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x05

Type:回复设置蓝牙广播间隔结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

获取广播间隔时间:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x06

Type:获取蓝牙广播间隔

Payload

3

0x07

(1~2)校验和

4

0x6A

包尾

 

 

BM返回广播间隔:

Byte

Value

Description

0

0xA6

包头

1

0x03

Payload长度

2

0x06

Type:回复广播间隔时间(单位:ms

Payload

3

 

广播间隔时间的高字节

4

 

广播间隔时间的低字节

5

Sum

(1~4)校验和

6

0x6A

包尾

 

Ø 举例:广播间隔为 1000ms

返回 A6  03  06  03  E8  F4  6A

 

 

 

 

5.1.4  设置、获取连接间隔参数(Type0708

  设置连接间隔参数:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x07

Type:设置连接间隔参数(连接间隔时间,从设备延时,连接超时时间)

Payload

3

 

连接间隔时间的高字节

单位:ms;范围:20-2000;默认值40

4

 

连接间隔时间的低字节

5

 

从设备延时(Latency)(取值:0-4;默认值0

6

 

连接超时的高字节

单位:ms; 范围:1000~6000;默认值:6000

7

 

连接超时的低字节

8

Sum

(1~7)校验和

9

0x6A

包尾

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x07

Type:回复设置蓝牙连接间隔结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

 

 

 

 

 

 

 

 

获取连接间隔时间:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x08

Type:获取蓝牙连接间隔

Payload

3

0x09

(1~2)校验和

4

0x6A

包尾

 

BM返回连接间隔:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x08

Type:设置连接间隔参数(连接间隔时间,从设备延时,连接超时时间)

Payload

3

 

连接间隔时间的高字节

单位:ms;范围:20-2000;默认值40

4

 

连接间隔时间的低字节

5

 

从设备延时(Latency)(取值:0-4;默认值0

6

 

连接超时的高字节

单位:ms; 范围:1000~6000;默认值:6000

7

 

连接超时的低字节

8

Sum

(1~7)校验和

9

0x6A

包尾

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.1.5  设置、获取发射功率(Type090A

设置蓝牙发射功率:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度(最大17byte

2

0x09

Type:设置蓝牙发射功率

Payload

3

dbm

发射功率值

0-5dbm

1-4dbm

2-3dbm

3-2dbm

4-1dbm

5-0dbm

61dbm

72dbm

83dbm

94dbm

105dbm

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x09

Type:回复设置蓝牙发射功率结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

 

获取蓝牙发射功率:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x0A

Type:获取蓝牙发射功率

Payload

3

0x0B

(1~2)校验和

4

0x6A

包尾

 

BM返回发射功率值:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0A

Type:回复蓝牙发射功率

Payload

3

dbm

发射功率值

0-5dbm

1-4dbm

2-3dbm

3-2dbm

4-1dbm

5-0dbm

61dbm

72dbm

83dbm

94dbm

105dbm

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

 

 

 

 

 

 

 


5.1.6  设置、读取串口波特率(Type0B0C

设置串口波特率:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0B

Type:设置串口波特率

Payload

3

 

Value

09600 (默认)

119200

238400   

357600

4115200  

5921600

4

Sum

(1~3)校验和

5

0x6A

包尾

 

Ø 举例:设置串口波特率:9600

发送: A6  02  0B  00  0D  6A

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0B

Type:回复设置串口波特率结果

Payload

3

 

结果值:

0:成功。(以旧的波特率回复后再切换新的波特率)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

获取串口波特率

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x0C

Type:获取串口波特率

Payload

3

0x0D

(1~2)校验和

4

0x6A

包尾

BM返回串口波特率值

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0C

Type:回复串口波特率设置值

Payload

3

 

串口波特率设置值

09600     

119200

238400   

357600

4115200   

5921600

4

Sum

(1~3)校验和

5

0x6A

包尾

 

Ø 举例:若串口波特率为 9200

返回: A6  02  0C  00  0E  6A

5.1.7  读取MAC地址(Type0D

读取Mac地址值:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x0D

Type:读取MAC地址值

Payload

3

0x0E

(1~2)校验和

4

0x6A

包尾

 

BM返回MAC地址值:

Byte

Value

Description

0

0xA6

包头

1

0x07

Payload长度

2

0x0D

Type:回复MAc地址值

Payload

3 ~ 8

 

Mac地址值(6byte、小端序)

9

Sum

(1~8)校验和

10

0x6A

包尾

举例:MAC 地址为11 22  33  44  55  66

返回:A6  07  0D  66  55  44  33  22  11  79  6A

5.1.8  读取BM模块软、硬件版本号(Type0E

读取BM模块软硬件版本号:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x0E

Type:读取BM模块软硬件版本号

Payload

3

0x0F

(1~2)校验和

4

0x6A

包尾

 

BM返回软硬件版本号:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x0E

Type:回复BM模块软硬件版本号

Payload

3

 

产品型号。byte3 byte4 ASCII字符,byte5为数字。

4

 

5

 

6

 

硬件版本号 H

7

 

软件版本号S

8

 

定制版本号 P

9

 

年  实际年份=+2000

例如:2019年  

=2019-2000=19

10

 

1~12

11

 

1~31

12

Sum

校验和

13

0x6A

包尾

 

Ø 举例:如软硬件版本号为 BM16H1S1.0P0_20190507

解析:BM16为产品型号,对应实际实际数据为0x42  0x4D  0x10

H1为硬件版本号 1,对应实际数据为 0x01

S1.0 为软件版本号 1.0 ,对应实际数据为:0x0A(带1位小数点)

P0 为定制版本号,对应实际数据为 0

年:2019-2000=19,对应实际数据 0x13

       则返回: A6  0A  0E  42  4D  10  01  0A  00  13  05  07  E1  6A

 

 

 

 


5.1.9  设置、读取MCU软硬件版本号(Type0F10

MCU设置MCU软硬件版本号:

Ø 建议:客户更新MCU软硬件版本号给BM模块,以便于APP区分统计。

Ø 数据格式与BM的软硬件版本号格式保持一致。

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x0F

TypeMCU设置MCU软硬件版本号

Payload

3

 

MCU类型:由厂家自己定义,可以不定义

4

 

硬件版本号

5

 

软件版本号

6

 

年  实际年份=+2000

例如:2019年  

=2019-2000=19

7

 

1~12

8

 

1~31

9

Sum

校验和

10

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x0F

Type:回复设置MCU软硬件版本号结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾 

 

获取MCU软硬件版本号:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x10

Type:获取MCU软硬件版本号

Payload

3

0x11

(1~2)校验和

4

0x6A

包尾

 

BM返回MCU软硬件版本号:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x10

Type:返回MCU软硬件版本号

Payload

3

 

MCU类型:由厂家自己定义

4

 

硬件版本号

5

 

软件版本号

6

 

年  实际年份=+2000

例如:2019年  

=2019-2000=19

7

 

1~12

8

 

1~31

9

Sum

校验和

10

0x6A

包尾

 

5.1.10  设置、读取模块的主从模式(Type1516

设置主从模式:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x15

Type:设置主从模式

Payload

3

 

Value

  0:从机模式(默认)

1:主机模式

4

 

(1~3)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x15

Type:回复设置主从模式结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

获取主从模式设置:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x16

Type:获取主从模式

Payload

3

0x17

(1~2)校验和

4

0x6A

包尾

 

 

 

 

 

 

 

 

BM返回主从模式设置:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x16

Type:回复主从模式

Payload

3

 

设置值:

  0:从机模式

1:主机模式

4

Sum

(1~3)校验和

5

0x6A

包尾

 

5.1.11  设置、读取模块自动休眠时间(Type1718

可以设置模块无数据自动进入休眠模式(低功耗模式,此时设备的Tx要保持为高),但是要注意的是,当模块进入(休眠模式时,MCU在发数据前,需要提前发一组数据数据过来唤醒模块,模块才能正常开始接受数据。详可查看工作模式说明

设置自动睡眠时间:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x17

Type:设置无连接自动睡眠时间

Payload

3

 

自动睡眠标志位:

0:不开启自动休眠

1:开启自动休眠,模块没有连接自动进入低功耗模式

4

 

自动睡眠时间的最高字节

单位 :s

范围:

5 ~ 0xffffffff/100

(建议设为:60s

5

 

自动睡眠时间的次高字节

6

 

自动睡眠时间的次低字节

7

 

自动睡眠时间的最低字节

8

 

睡眠后是否立刻断开连接,是否开启低频广播:

0:断开连接,停止广播。

1:保持连接,开启广播。

2:断开连接 ,开启广播 。

3:保持连接 ,停止广播 。

9

 

低频广播间隔时间的高字节

单位:ms ;范围:20~2000;(建议设为1000);

10

 

低频广播间隔时间的低字节

11

Sum

(1~10)校验和

12

0x6A

包尾

 

 

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x17

Type:回复设置自动睡眠时间结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

获取自动睡眠时间:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x18

Type:获取自动睡眠时间值

Payload

3

0x19

(1~2)校验和

4

0x6A

包尾

 

BM返回自动睡眠时间值:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x18

Type:返回无连接时自动睡眠时间

Payload

3

 

自动睡眠标志位:

0:不开启自动休眠

1:开启自动休眠,模块没有连接

4

 

自动睡眠时间的最高字节

单位:s

5

 

自动睡眠时间的次高字节

6

 

自动睡眠时间的次低字节

7

 

自动睡眠时间的最低字节

8

 

睡眠后是否开启低频广播:

0:不开启

1:开启

9

 

低频广播间隔的高字节

单位 :ms ;范围 20~2000

10

 

低频广播间隔的低字节

11

Sum

(1~9)校验和

12

0x6A

包尾

 

5.1.12  设置模块进入睡眠(Type19

Ø BM模块进入休眠后,支持串口唤醒(MCU可以发任意数据唤醒模块,或者发送唤醒指令),支持蓝牙连接唤醒(需要开启睡眠后带广播功能,详情看下面设置进入睡眠指令格式)。

设置睡眠唤醒:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x19

Type:设置进入睡眠

Payload

3

 

Value

0x01

 

4

 

睡眠后是否断开连接,是否开启低频广播:

0:断开连接,关闭广播。

1:保持连接,开启广播。

2:断开连接 ,开启广播 。

3:保持连接 ,关闭广播 。

5

 

低频广播间隔时间的高字节

单位 :ms ;范围 20~2000(建议1000ms

6

 

低频广播间隔时间的低字节

7

Sum

(1~6)校验和

8

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x19

Type:回复设置进入睡眠的结果

Payload

3

 

结果值:

0:成功(成功后100ms后进入睡眠)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

Ø MCUAPP都可以设置BM模块进入睡眠,BM模块在回复MCU/APP时,同时向APP/MCU发送BM当前状态“BM返回块状态

 

 

 

 

 

 

 

5.1.13  设置模块唤醒(Type1A

 设置模块唤醒:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x1A

Type:设置模块唤醒

Payload

3

0x01

Value

  1:唤醒模块

4

0x1D

(1~3)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x1A

Type:回复设置模块唤醒结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

 

 

 

 

 

 

 

 

 

 


5.1.14  设置、读取系统当前时间(Type1B1C

该时间为蓝牙模块的系统时间。

  设置系统当前时间:

Byte

Value

Description

0

0xA6

包头

1

0x07

Payload长度

2

0x1B

Type:设置系统当前时间

Payload

3

 

0x00 :除能,关闭时间功能(默认)

0x01 :使能,开启时间功能

4

 

年:年份=+2000

5

 

月(1~12

6

 

日(1~31

7

 

时(0~23

8

 

分(0~59

9

 

秒(0~59

10

Sum

校验和

11

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x1B

Type:回复设置系统时间结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

获取系统当前时间:

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x1C

Type:获取系统当前时间

Payload

3

 

(1~2)校验和

4

0x6A

包尾

 

 

BM返回系统当前时间:

Byte

Value

Description

0

0xA6

包头

1

0x08

Payload长度

2

0x1C

Type:返回系统当前时间

Payload

3

 

系统时间有效位

0:系统时间无效

1:系统时间有效

4

 

年:年份=+2000

5

 

月(1~12

6

 

日(1~31

7

 

时(0~23

8

 

分(0~59

9

 

秒(0~59

10

Sum

(1~9)校验和

11

包尾

0x6A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


5.1.15  设置、读取CIDVIDPIDType1D1E

Ø  CID为产品类型ID,请按照协议透传产品类型设置(必须设。详情查看协议透传指令产品介绍

Ø  VID 为设备厂家ID,请联系我司分配(选设)

Ø  PID 为产品型号ID,厂商自己分配,建议根据产品型号分配唯一值(选设)

Ø 以上三个值默认为0,不代表任何产品(调试阶段先设置CID

 

设置ID

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x1D

Type:设置ID

Payload

3

 

设置ID标志位

Bit00 :不设置 CIDCID值清0)。 1:设置CID

Bit10 :不设置VIDVID值清0)。  1:设置 VID

Bit20 :不设置 PIDPID值清0)。  1:设置PID

4

 

CID:产品类型ID的高字节

5

 

CID:产品类型ID的低字节

6

 

VID:厂商ID的高字节

7

 

VID:厂商ID的低字节

8

 

PID:产品ID的高字节

9

 

PID:产品ID的低字节

10

Sum

(1~9)校验和

11

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x1D

Type:回复设置ID结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

获取ID

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x1E

Type:获取ID设置值

Payload

3

0x1F

(1~2)校验和

4

0x6A

包尾

 

BM返回ID值:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x1E

Type:返回ID

Payload

3

 

设置ID标志位

Bit0 0 :不设置 CID。  1:设置CID

Bit1 0 :不设置VID。  1:设置 VID

Bit20 :不设置 PID。  1:设置PID

4

 

CID:产品类型ID的高字节

5

 

CID:产品类型ID的低字节

6

 

VID:厂商ID的高字节

7

 

VID:厂商ID的低字节

8

 

PID:产品ID的高字节

9

 

PID:产品ID的低字节

10

Sum

(1~9)校验和

11

0x6A

包尾

 

 

 

5.1.16  设置模块重启(Type21

 设置重启模块:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x21

Type:设置模块重启

Payload

3

0x01

Value

  0x01

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

Len

Payload长度

2

0x21

Type:回复设置模块重启结果

Payload

3

 

结果值:

0:成功(成功后,100ms后模块重启)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

5.1.17  设置恢复出厂设置(Type22

 设置恢复出厂设置:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x22

Type:设置恢复出厂设置

Payload

3

0x01

Value

  0x01

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x22

Type:回复设置模块重启结果

Payload

3

 

结果值:

0:成功(成功后,100ms后恢复出厂设置)

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

5.1.18  设置、获取BM模块状态(Type2526

设置蓝牙连接状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x25

Type:设置蓝牙连接状态

Payload

3

 

主动断开连接标志位

1:立刻断开连接

0:不断开连接

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x25

Type:回复设置蓝牙连接状态结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

获取模块状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x26

Type:获取状态

Payload

3

Sum

(1~2)校验和

4

0x6A

包尾

 

BM返回模块状态:

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x26

Type:返回模块状态

Payload

3

 

连接状态

0:无连接

1:已连接

 

4

 

工作状态

0:唤醒

1:进入休眠

2:模块准备就绪

5

Sum

(1~4)校验和

6

0x6A

包尾

 

5.1.19  MCU上报MCU电池状态Type2728

上报MCU电池状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x27

Type:设置MCU电池状态

Payload

3

 

电池充电状态:

0:没有充电(默认)

1:充电中

2:充满电

3:充电异常

4

 

电池电量百分比 (0100%

5

Sum

(1~4)校验和

6

0x6A

包尾

BM回复MCU上报结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x27

Type:回复MCU设置电池结果

Payload

3

 

结果值:

0:成功(成功后会把电池电量上传到APP

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 

 

 

查询MCU电池状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x28

Type:获取MCU电池状态

Payload

3

Sum

(1~2)校验和

4

0x6A

包尾

 

 

返回MCU电池状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x28

Type:返回MCU电池状态

Payload

3

 

电池充电状态:

0:没有充电(默认)

1:充电中

2:充满电

3:充电异常

4

 

电池电量百分比 (0100%

MCU没有数据上传时,默认为0xFFFF

5

Sum

(1~4)校验和

6

0x6A

包尾


5.1.20  APP查询MCU拥有的单位(Type2C

Ø APP端界面的单位显示是根据MCU端所拥有的单位来做处理的,所以当APP连接到MCU时,会发送读取指令来获取MCU端所拥有的单位,所以MCU端收到该指令时,则务必返回相应的单位数据(不返回则使用系统默认值)。

 

Ø MCU端需要开机后直接主动上传单位到APP

 

APP查询MCU端单位指令:

BM模块直接将此指令传给MCU

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2C

TypeAPP读取MCU端单位

Payload

3

 

Value

0x01 

4

 

校验和

5

0x6A

包尾

 

MCU端返回所拥有的单位指令:

单位类型

类型编号

类型

支持类型(Bit15~Bit0

Bit=0 不支持

Bit=1 支持

01

重量

Bit0kg

Bit1

Bit2lboz

Bit3oz

Bit4stlb

Bit5g

Bit6lb (纯lb显示)

Bit7-bit15 保留

02

长度

Bit0cm

Bit1inch

Bit2ft-in

Bit3-bit15 保留

03

温度

Bit0  C

Bit1 : F

Bit2-bit15 保留

04

血压

Bit0mmhg

Bit1kPa

Bit2-bit15 保留

05

轮胎胎压压力

Bit0Kpa

Bit1Psi

Bit2Bar

Bit3-bit15 保留

06

血糖仪

Bit0mmol/L

Bit1mg/dL

 

BM模块通过A6指令协议传给APP

数据格式*(每组数据长度不能多于20byte

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2C

TypeMCU回复单位

Payload

3

 

单位类型:例如:重量类型 =01,长度=02,温度=03

4

 

单位支持类型高位:

Bit15~Bit0

每一个Bit代表一个单位

Bit=0:不支持

Bit=1:支持

例如:重量支持kgoz

byte4=0x00 byte5=0x09

5

 

单位支持类型低位:

6

 

单位类型:

7

 

单位支持类型高位

Bit15~Bit0

每一个Bit代表一个单位

Bit=0:不支持

Bit=1:支持

8

 

单位支持类型低位

9

 

单位类型:

10

 

单位支持类型高位

Bit15~Bit0

每一个Bit代表一个单位

Bit=0:不支持

Bit=1:支持

11

 

单位支持类型低位

12

 

校验和

13

0x6A

包尾

 

 

Ø 举例:

APP读取MCU单位,发送指令:A6  02  2C  01  2F  6A

l MCU只拥有重量单位kg和斤,则返回:A6 04 2C 01 00 03 34 6A

l MCU只拥有重量单位kg和长度单位inch,则返回:A6 07 2C 01 00 01 02 00 02 39 6A

l MCU只拥有胎压单位KpaPsiBar和温度单位℃、℉和重量单位kg 和 长度单位cm

则返回:A6 0D 2C 05 00 07 03 00 03 01 00 01 02 00 01 50 6A

n 若是MCU支持的类型太多,一组数据传不完,则可以分开多组来传,数据格式不变。


5.1.21  设置使能绑定、取消使能绑定(Type32

此条指令主要用以AILink APP连接协议透传产品,例如蓝牙锁,MCU开发端可以根据协议透传产品里的工作流程查看此指令的使用。(流程里无用到则说明该产品类型不需调到此指令)

MCU设置指令

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2

0x32

TypeMCU设置BM使能、取消绑定

Payload

3

 

Value

0:取消绑定

1:使能绑定

4

Sum

(1~n)校验和

5

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x32

TypeBM回复设置绑定结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

5.1.22  MCU设置蓝牙锁开锁类型(Type3334

此条指令主要用以AILink APP的蓝牙锁设备,MCU端需要主动设置蓝牙锁的开锁类型。

MCU设置指令

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2

0x33

TypeMCU上传MCU支持的蓝牙锁开锁类型

Payload

3

 

MCU使用的绑定类型 :

MCU可以根据自身的需求选择不同的绑定方式与APP进行绑定。

1:绑定码绑定方式(需要用户输入APP界面上的绑定码)

2:两次按功能键确认方式(需要用户按两次功能键)

3:一次按功能键确认方式(需要用户按一次功能键

4 ~5

 

设备支持的开锁类型:(MCU需要声明自身所支持的开锁类型,以方便APP界面的同步)

 

Bit =1 支持,Bit=0 不支持

Byte4 ~ byte5

Byte4_Bit 0:按键密码(界面)

Byte4_Bit 1:指纹密码

Byte4_Bit 2IC

Byte4_Bit 3:蓝牙遥控器

.......

6

Sum

(1~n)校验和

7

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x33

TypeBM回复接收蓝牙锁支持类型结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

APP读取开锁类型指令

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x34

Type:锁的A6指令

Payload

3

 

Value

0x01APP读取蓝牙锁开锁类型

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM回复给APP的开锁类型

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2

0x34

Type:锁的A6指令

Payload

3

 

Value

0x01BM上传MCU支持的蓝牙锁开锁类型

4

 

MCU使用的绑定类型 :

MCU可以根据自身的需求选择不同的绑定方式与APP进行绑定。

1:绑定码绑定方式(需要用户输入APP界面上的绑定码)

2:两次按功能键确认方式(需要用户按两次功能键)

3:一次按功能键确认方式(需要用户按一次功能键

5~6

 

设备支持的开锁类型:(MCU需要声明自身所支持的开锁类型,以方便APP界面的同步)

 

Bit =1 支持,Bit=0 不支持

Byte5~ byte6

Byte5_Bit 0:按键密码(界面)

Byte5_Bit 1:指纹密码

Byte5_Bit 2IC

Byte5_Bit 3:蓝牙遥控器

.......

7

Sum

(1~n)校验和

8

0x6A

包尾

 

 

5.1.23  MCU上传设备基本信息(Type3536

此条指令主要用MCU上传设备的一些基本的信息,用于APP端数据的同步,详情请查看对应的协议透传产品介绍。

MCU设置设备基本信息指令

Byte

Value

Description

0

0xA6

包头

1

0x10

Payload 长度

2

0x35

TypeMCU上传设备的基本信息

Payload

3

0x01

数据有效标志位

0x01

4~17

 

数据

18

Sum

(1~n)校验和

19

0x6A

包尾

 

BM回复设置结果:

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x35

TypeBM回复结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

读取设备基本信息指令

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x36

Type:读取设备的基本信息指令

Payload

3

 

Value

0x01

4

Sum

(1~3)校验和

5

0x6A

包尾

 

BM返回设备基本信息指令

Byte

Value

Description

0

0xA6

包头

1

0x10

Payload 长度

2

0x36

TypeMCU上传设备的基本信息

Payload

3

0x01

数据有效标志位

0x01

4~17

 

数据

18

Sum

(1~n)校验和

19

0x6A

包尾

 

 

 

 

 

 

 

5.1.24  APP同步时间到MCUType3738

对于某些设备,具有时间功能的,此时,可利用此指令进行数据的同步。

l APP下发时间。

Byte

Default

Description

0

0xA6

包头

1

 

Payload长度(最大15byte

2

0x37

TpyeAPP同步时间

Payload

3~9

 

时间:7byte

年(当前年份-2000

星期(1~7  1=周一 ~  7=周日)

10

SUM1~n

(1~n)校验和

11

0x6A

包尾

 

l MCU返回同步时间结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x37

TypeMCU返回时间同步结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

l MCU 请求时间

设备有时间功能,且在与APP连接状态时,可以请求时间更新,APP收到该请求,会下发时间同步。

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x38

TypeMCU请求APP下发时间

Payload

3

 

Value

0x01

4

Sum

(1~3)校验和

5

0x6A

包尾

 

 


master模式特有指令(master端固件也支持上面的普通指令

5.1.25 设置、获取扫描的白名单(Type292A

 

设置白名单

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x29

Type:设置UUIDMAC

Payload

3

 

设置设置类型

bit00:清除UUID  1:设置UUID

bit10:清除MAC   1:设置MAC

4

 

UUID 高字节

5

 

UUID 低字节

6~11

 

MAC地址6个字节,小端序

12

Sum

(1~11)校验和

13

0x6A

包尾

BM回复设置结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x29

Type:回复设置结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

查询白名单

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2A

Type:查询白名单

Payload

3

Sum

(1~2)校验和

4

0x6A

包尾

 

 

 

返回白名单

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2A

Type:返回白名单UUIDMAC

Payload

3

 

设置设置类型

bit00:清除UUID  1:设置UUID

bit10:清除MAC   1:设置MAC

4

 

UUID 高字节

5

 

UUID 低字节

6~11

 

MAC地址6个字节,小端序

12

Sum

(1~11)校验和

13

0x6A

包尾

 

 

 

 

 

 

 

5.1.26 设置、获取扫描识别的蓝牙名称(Type2D2E

 

设置主机扫描识别的蓝牙名称

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度(最大16byte

2

0x2D

Type:设置识别的蓝牙名称

Payload

3~n

 

蓝牙名称(最大15byte

n+1

 

校验和

n+2

0x6A

包尾

举例

设置识别蓝牙名称SFST02A6 07 2D 53 46 53 54 30 32 D6 6A

清除识别蓝牙名称:A6 02 2D 00 2F 6A

 

 

 

BM回复设置结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x2D

Type:回复设置结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

6

0x6A

包尾

 

 

 

 

获取主机扫描识别的蓝牙名称

Byte

Value

Description

0

0xA6

包头

1

0x01

Payload长度

2

0x2E

Type:获取识别的蓝牙名称

Payload

3

0x2F

(1~2)校验和

4

0x6A

包尾

 

 

 

返回主机扫描识别的蓝牙名称

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2E

Type:返回识别的蓝牙名称

Payload

3~n

 

蓝牙名称

n+1

 

校验和

n+2

0x6A

包尾

举例:

返回识别的蓝牙名称SFST02A6 07 2E 53 46 53 54 30 32 D7 6A

返回无识别的蓝牙名称:A6 01 2E 2F 6A

 

5.1.27 设置、获取扫描状态(Type2F

设置、获取主机扫描状态

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x2F

Type:设置、获取扫描状态

Payload

3

 

1打开扫描,只需返回mac地址和RSSI值(暂不支持

2:打开扫描,需返回mac地址、RSSI、厂商自定义数据(默认该状态

3关闭扫描(暂不支持

4:获取扫描状态

4

 

校验和

5

0x6A

包尾

BM回复设置结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x2F

Type:回复设置结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

3扫描

4打开扫描

5连接成功(断开后会自动进入扫描

4

Sum

(1~3)校验和

6

0x6A

包尾

 

 


5.1.28 BM返回扫描到的数据(Type30

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x30

Type:返回扫描到的数据

Payload

3~8

 

该设备的mac地址,小端序

9

 

RSSI值(如50-50dbm的意思

10~n

 

厂商自定义数据(当不需返回该数据时无该数据

n+1

 

校验和

n+2

0x6A

包尾

此指令比较特殊,返回的总数据长度可以超过20byte

举例:

A6 19 30 BB FF B9 EC B4 01 32 AC 00 C6 5A 5A 01 00 7B 26 0B 0B BB FF B9 EC B4 01 81 6A

mac地址:BB FF B9 EC B4 01(小端序

信号强度:-50dbm

厂商自定义数据为:AC 00 C6 5A 5A 01 00 7B 26 0B 0B BB FF B9 EC B4 01

5.1.29 设置BM连接从设备(Type38

设置白名单

Byte

Value

Description

0

0xA6

包头

1

 

Payload长度

2

0x38

Type:设置BM连接

Payload

3~8

 

MAC地址6个字节,小端序

9

Sum

(1~8)校验和

10

0x6A

包尾

BM回复设置结果

Byte

Value

Description

0

0xA6

包头

1

0x02

Payload长度

2

0x38

Type:回复设置结果

Payload

3

 

结果值:

0:成功

1:失败

2:不支持

4

Sum

(1~3)校验和

5

0x6A

包尾

 

5.2   协议透传指令

根据已定好的协议,做数据的传输。

传输格式:

Byte

Default

Description

0

0xA7

包头

1~2

 

产品类型CID

3

 

Payload长度(最大15byte

n

 

Payload

 

n+1

SUM1~n

(1~n)校验和

n +2

0x7A

包尾

 

协议透传指令的识别:

包头和包尾是固定的:0xA70x7A

校验和是指byte1 ++ byte n 的值,取低8位。

 

5.3   数据透传

不符合设置指令与协议透传指令的数据一律采用数据透传,即收到什么数据就传什么数据。

 

 

 


6  协议透传产品介绍

产品编号

产品名称

产品类型(CID

1

血压

0001

2

温枪

0002

3

体温计

0003

4

婴儿秤

0004

5

身高仪

0005

6

光学验光仪控制器

000C

7

胎压转接板

000D

8

体重/体脂秤

000E

9

蓝牙门锁

000B

10

箱包锁

000F

11

八电极体脂秤

0013

 

 

 

 


6.1  八电极体脂秤

6.1.1  交互流程

以下流程步骤,缺一不可。

 

  1. BM模块上电。

  2. BM模块返回状态信息

  3. MCU设置CID

  4. MCU上传自身支持的单位。

  5. MCU设置蓝牙其他参数,(可根据自身需求设置)。

  6. APP查询MCU所拥有的单位

  7. 设备启动,上传数据。

  8. 设备测量完毕,上报测量完毕指令。

  9. APP设置单位

  10. MCU休眠。


6.1.2  MCU上报称重状态

 

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

 

Payload长度

4

 

类型:称重

01

Payload

5

 

Type:测量状态

01实时体重

02稳定体重

6

 

重量数据高位

注:当单位是组合单位时 如1ST5LB ,则该值是1*14+5=19 ,需将数值转为小单位数值 ,同时在后面的单位声明里申明是 st:lb 单位。

7

 

重量数据次高位

8

 

重量数据低位

9

 

数据标志:

Bit7~4:重量数据精度该数据标识的是次级单位里的数据格式

00000位小数

00011位小数

00102位小数

00113位小数

 

Bit3~0当前单位:标识整一组数据的单位类型

0000kg

0001

0100st:lb

0110lb

10

 

保留为:00

11

SUM

校验和byte1~byte12

12

0x7A

包尾

 

6.1.3  MCU上报阻抗数据

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

 

Payload长度

4

 

类型:测试阻抗

02

Payload

5

 

Type:阻抗测量

01阻抗中

02阻抗失败

03阻抗成功,带上阻抗数据,使用APP算法(APP 会根据byte7的算法标识进行计算)

04:测阻抗结束。

6

 

通道:

0x00 双脚阻抗 0x01 双手阻抗

0x02 左手阻抗 0x03 右手阻抗

0x04 阻抗 0x05 阻抗

0x06 左全身阻抗 0x07 右全身阻抗

0x08 右手左阻抗

0x09 左手右阻抗 0x0A 躯干阻抗

 

7-10

 

阻抗数据(大端序,精度1Ω)

11

 

体脂算法ID,每个客户都有自己的算法ID1~255

12

0

保留位

13

SUM

校验和byte1~byte12

14

0x7A

包尾

 

 

 

 

 

 

6.1.4 
 MCU上报心率数据

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

 

Payload长度

4

 

类型:测试心率

03

Payload

5

 

Type:心率测量

01心率中

02心率成功,带上心率数据

03心率失败

6

 

心率数据(精度1bpm

7

0x00

保留

8

SUM

校验和

9

0x7A

包尾

 


6.1.5  MCU发送温度数据

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

 

Payload长度

4

 

类型:温度数据

04

Payload

5

 

温度正负

0 :正温度

1 :负温度

6

 

温度数据高字节

7

 

温度数据低字节

8

 

数据标志:

Bit7~4温度数据精度

00000位小数

00011位小数

00102位小数

00113位小数

 

Bit3~0:当前单位:标识整一组数据的单位类型

0000

0001

9

0

保留

10

SUM

校验和

11

0x7A

包尾

 


6.1.6  MCU发送测量完成

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

 

Payload长度

4

0x0F

Type:测量完成

0x0F

Payload

5

0

保留

6

SUM

校验和

7

0x7A

包尾

 

6.1.7 APP回复测量完成

APP收到MCU的测量完成指令后,需回复该指令。

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

Payload长度

4

0x84

TypeAPP测量完成

0x84

Payload

5

0

保留

6

SUM

校验和

7

0x7A

包尾


6.1.8  APP下发操作指令

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

Payload长度

4

0x81

Typeapp下发操作指令

0x81

Payload

5

操作:

0x01 : 校准

0x02 : 温度单位切换

0x03 : 重量单位切换

6

当操作是0x02

0:摄氏度℃

1:华氏度℉

当操作是0x03

0kg

1

4st:lb

6lb

7

保留 0x00

8

SUM

校验和

9

0x7A

包尾

MCU回复操作结果:

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

Payload长度

4

0x82

TypeMCU回复操作结果

0x82

Payload

5

操作:

0x01 : 校准

0x02 : 温度单位切换

0x03:重量单位切换

6

操作结果:

0:操作成功

1:操作失败

2:正在操作中

7

保留 0x00

8

SUM

校验和

9

0x7A

包尾

6.1.9  设备上发错误码

数据格式:

Byte

Default

Description

0

0xA7

包头

1~2

0x0013

产品类型CID

3

Payload长度

4

0xFF

Tpye错误码

Payload

5

错误内容:

1:超重

6

SUM

校验和

7

0x7A

包尾






Copyright © 2020 深圳市易连物联网有限公司 All rights reserved.  

粤ICP备20028711号