diff --git a/蓝牙秤/PC【h09b META10】身高体脂秤应用说明-2(密码e202101).pdf.pdf b/蓝牙秤/PC【h09b META10】身高体脂秤应用说明-2(密码e202101).pdf.pdf deleted file mode 100644 index be7d41e..0000000 --- a/蓝牙秤/PC【h09b META10】身高体脂秤应用说明-2(密码e202101).pdf.pdf +++ /dev/null @@ -1,2161 +0,0 @@ - 版本:V1.0 -更新日期:2021 年 1 月 20 日 - - 1 - 文档版本 作者 发布日期 修改说明 - -1.0 LYX 2021/1/20 1、增加身高体脂秤秤协议 - 2、协议指令包头使用 A9 - 修改记录................................................................................................................................................................- 2 - -目录........................................................................................................................................................................ - 3 - -1 概述....................................................................................................................................................................- 5 - -2 说明....................................................................................................................................................................- 5 - -3 工作模式........................................................................................................................................................... - 5 - - - 3.1 模式一:断电模式。............................................................................................................................. - 5 - - 3.2 模式二:长供电休眠模式。.................................................................................................................- 6 - -4 蓝牙接口(默认) .......................................................................................................................................... - 8 - - 4.1 蓝牙名称:AiLink_xxxx........................................................................................................................- 8 - - 4.2 UUID 说明...............................................................................................................................................- 8 - - 4.3 蓝牙连接服务列表 1:FFE0 举例......................................................................................................- 8 - - 4.4 广播数据................................................................................................................................................- 8 - - - 4.4.1 第一类广播设置................................................................................................................................ - 9 - - 4.4.2 第二类广播设置.............................................................................................................................. - 10 - -5 BM 模块与 MCU 交互协议............................................................................................................................- 11 - - 5.1 设置(获取) 指令.............................................................................................................................- 11 - - 5.1.1 设置、获取广播名称(Type:01、02) ...................................................................................... - 13 - - 5.1.2 设置、读取第二类自定义广播数据(Type:03、04) .............................................................. - 15 - - 5.1.3 设置、获取广播间隔时间(Type:05、06) .............................................................................. - 16 - - 5.1.4 设置、获取连接间隔参数(Type:07、08) .............................................................................. - 17 - - 5.1.5 设置、获取发射功率(Type:09、0A) ...................................................................................... - 19 - - 5.1.6 设置、读取串口波特率(Type:0B、0C) .................................................................................. - 22 - - 5.1.7 读取 MAC 地址(Type:0D) ........................................................................................................ - 23 - - 5.1.8 读取 BM 模块软、硬件版本号(Type:0E) ............................................................................... - 24 - - 5.1.9 设置、读取 MCU 软硬件版本号(Type:0F、10) .................................................................... - 25 - - 5.1.10 设置、读取模块自动休眠时间(Type:17、18) .................................................................... - 26 - - 5.1.11 设置模块进入睡眠(Type:19) ................................................................................................ - 28 - - 5.1.12 设置模块唤醒(Type:1A) ........................................................................................................ - 29 - - 5.1.13 设置、读取系统当前时间(Type:1B、1C) ............................................................................ - 31 - - 5.1.14 设置、读取 CID、VID、PID(Type:1D、1E) .......................................................................... - 33 - - 5.1.15 设置模块重启(Type:21) ........................................................................................................ - 34 - - 5.1.16 设置恢复出厂设置(Type:22) ................................................................................................ - 35 - - 5.1.17 设置、获取 BM 模块状态(Type:25、26) ............................................................................. - 36 - - 5.1.18 MCU 上报 MCU 电池状态(Type:27、28) .............................................................................. - 37 - - 5.1.19 APP 查询 MCU 拥有的单位(Type:2C) .................................................................................... - 39 - - 5.1.20 MCU 上传设备基本信息(Type:35、36) ................................................................................ - 41 - - 5.1.21 APP 同步时间到 MCU(Type:37、38) ..................................................................................... - 42 - - 5.1.22 BM 模块自动唤醒设置、自动进入睡眠返回(Type:3A、3B) .............................................. - 43 - - 5.2 协议透传指令..................................................................................................................................... - 45 - - 5.3 数据透传..............................................................................................................................................- 45 - -6 协议透传产品介绍........................................................................................................................................ - 46 - - 6.1 身高体脂秤(贝雅秤) .................................................................................................................... - 46 - - - 6.1.1 交互流程.......................................................................................................................................... - 46 - - 6.1.2 APP 下发用户信息.............................................................................................................................- 47 - - 6.1.3 MCU 主动请求用户.......................................................................................................................... - 48 - - 6.1.4 APP/MCU 设置单位.......................................................................................................................... - 48 - - 6.1.5 APP 下发工作模式.............................................................................................................................- 49 - - 6.1.6 APP 读取声音设置.............................................................................................................................- 50 - - 6.1.7 APP/MCU 声音设置.......................................................................................................................... - 50 - - 6.1.8 身高体脂秤模式.............................................................................................................................. - 51 - - 6.1.9 MCU 发送测量完成.......................................................................................................................... - 57 - - 6.1.10 APP 回复测量完成...........................................................................................................................- 57 - - 6.1.11 标定模式........................................................................................................................................ - 57 - - 6.1.12 设备上发错误码............................................................................................................................ - 59 - -7 使用/测试指导...............................................................................................................................................- 60 - - 7.1 测试工具..............................................................................................................................................- 60 - - 7.2 测试步骤..............................................................................................................................................- 60 - -8 自定义说明..................................................................................................................................................... - 60 - -9 联系我们......................................................................................................................................................... - 60 - -10 附录................................................................................................................................................................- 60 - - 1 - - 本文档适用于H09B,META10身高体脂秤。 - - 下文中表明的 MCU 为与 BM 模块连接交互的芯片,BLE 则为 BM 模块. - -2 - - 2. 1 BLE (Slave) 与 APP (Master ) 交互的每包数据默认最大为 20byte ,当 MCU 端一次性发送 - 超过 20byte 时,BLE 会将数据进行分包发送给 APP ,需 50byte 则分为 20+20+ 10 ,分 3 次 - 发送给 APP。 - - 2.2 BM 模块上电需要时间进行配置,当配置完成,进入就绪时,BM 模块会主动给 MCU 返回一 - 个 BM 模块状态信息。详情请查看“设置、获取 BM 模块状态”。 - -3 - - BM 模块支持两种工作模式,断电模式和不断电休眠模式,用户可以根据自身需求合 - 理选择工作模式。 - 用户可以在设计 PCB 的时候,预留两种方式的电路。详情请查看硬件规格书规格书。 - - 在此模式下,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 、MCU 、BM 断电关机。 - 此模式下,BM 模块需要长供电,不会断电关机 (串口已关闭,BM 处于低功耗模式) 。 - 工作流程: - 1 、BM 模块上电。 - 2 、BM 模块上电就绪后,BM 会给 MCU 返回BM 模块状态。 - 3 、MCU 设置 CID 。 - 4 、MCU 设置模块其他内容。 - 5 、MCU 发送数据。 - 6 、MCU 发送睡眠指令 (可以选择是否开启低频广播) ,使 BM 模块进入低功耗模式。 - - 若开启了BM 模块进入了低功耗模式并且开启了低频广播,当 BM 模块连上 APP 后, - BM 模块会发送模块状态信息到 MCU ,同时蓝牙状态脚会拉低,用以唤醒 MCU (MCU - 可以用串口唤醒或者蓝牙状态脚唤醒) 。 - - 7 、MCU 主动唤醒 BM 模块。当 BM 模块处于休眠状态时,若 MCU 需要发送数据到 BM -模块,需要先发一条唤醒指令到 BM 模块。注:BM 模块刚唤醒时,是无法正常接收数据的, -所以 BM 收到第一组的唤醒指令时,BM 是不会回复 MCU 状态的。MCU 可以发两次唤醒指 -令。 - - 工作流程参考如下: - MCU 上 N BM Y - 电 - 断连 -BM 上电, -BM 发送就绪状态 状态 - - MCU 进 APP - -MCU 对 MCU 按 入激活状 - -BM 初始化 键工作 态 - -MCU 发 MCU 进 BM 模块 BM 唤醒 -指令让 入待机状 接连到 MCU - 态 APP -BM 进入 -睡眠模式 - 4 - - 注:xxxx 为 Mac 地址后 4 个字符 - - BM 模块有两个服务 UUID,一个是模块固定的服务 UUID,为 FFE0,一个是用户可 - 以自定义的服务 UUID ,默认为 FEE0。 - - 易联物联网的 AiLink APP 交互使用的服务 UUID 为 FFE0。 - 同时,两个 UUID 都可以作为普通的数据交互 UUID。 - - 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 - 功能:APP 与 BLE 进行设置类指令的 UUID ,有 write 和 notify - - 说明:广播数据有两类,用户只能选择其中的一类进行设置。 - 第一类广播:AiLink 设置 (默认) 。使用我司 AILInk APP 接入的设置,需根据我司要求的 -格式进行设置。 - - 第二类广播:用户自定义设置。不使用我司 AiLink APP 接入的设置,用户可以根据自身需求 -进行设置。若不设置则默认为我司设置。 - - 4.4. 1 第一类广播设置 - - AiLink 设置广播数据内容包含 (详情设置请查看设置读取 CID、PID、VID) : - - 1 、Company ID 。固定:496e (In ,Inet 缩写,此处预留后续申请 SIG company 号) - 2 、CID:产品类型 (2bytes ) (例如血压计为 0x0001 ,额温枪为 0x0002 ,祥查看协议透传产品介绍) - 3 、VID:厂商 ID (2byte ) (由我司分配) - 4 、PID:产品 ID (2byte ) (由厂商分配) - 5 、Mac 地址 (MAC 是固定的,大小端序可设置,默认小端序) - - 例如广播出来的自定义数据为: - - 6e49000100010001126134231102 - 6e49:为 In ,0001 是 CID ,表示产品类型,0001 是 VID ,表示厂商 ID ,0001 是 PID ,表示产品 ID。 - 126134231102 是 Mac 地址,因为是小端序,所以 Mac 地址是:02 :11 :23 :34 :61 :12 - - 蓝牙工具显示如下图: - 4.4.2 第二类广播设置 - -若使用此类广播自定义数据,则第一类的广播自定义数据不启动 (CID 、VID 、PID 等设置不 -启用) 。详情设置请查看第二类广播自定义设置。 - 5 BM MCU - -设置、读取 模块广播名称 -设置、读取 广播间隔时间 -设置、读取 连接间隔 -设置、读取串口波特率 -读取 MAC 地址 -读取 BM 模块硬件\软件版本号 -设置、读取 MCU 设备版本号 -设置、读取 模块无连接模式自动休眠时间。 -设置 模块进入睡眠模式 -设置 唤醒模块 -设置、读取 当前系统时间。 -设置、读取 CID 、VID 、PID -设置 模块重启 -设置 模块恢复出厂设置。 -设置、获取模块状态 -设置 MCU 的电池状态 -设置 读取 MCU 所支持的单位 -MCU 上传设备基本信息 -APP 同步时间到 MCU - Byte Value Description - -0 0xA6 包头 - Payload 长度 (最大 16byte ) -1 Payload - ( 1~n)校验和 -2 ~n 包尾 (注:n+2 不能超过 20) - -n+ 1 SUM (1~n ) - -n+2 0x6A - -包头和包尾是固定的,分别为 0xA6 ,和 0x6A。 -检验和是指 byte1 + byte2 + …+byte n 的和,取低位 1 byte。 -设置指令里,数据的 Byte 数不能超过 20 - 5. 1. 1 设置、获取广播名称 (Type:01 、02) - -设置蓝牙名称可以设置为固定字符作为蓝牙名称,例如设置为 swan ,所有的模块都会显示为 - -swan 。同时也可以设置为固定蓝牙名称+“_ ”+ Mac 地址的方式,这样子有利于每个模块的 - -名称都有差异。详细见如下指令说明: - -Byte Value Description - -0 0xA6 包头 -1 Len Payload 长度 (最大 16byte ) -2 0x01 Type: 设 置 蓝 牙 名 称 -3~n Name 名称 (需要对应 ASCII 表) -n+ 1 Num MAC 字符个数:名称后面跟随的 MAC 字符的个数 - 0 :代表没有,则是固定蓝牙名称。 - 1 :代表后面带有 mac 地址的 1 个字符,例如: Payload - Swan_x。 -n+2 Sum 2 :代表后面带有 mac 地址的 2 个字符,例如: -N+3 0x6A Swan_xx。 - 默认 Num=4;Num 最大为 12 - 注:Name 长度+“_ ”+Num 最大为 15 - ( 1~n)校验和 - 包尾 - -举例 : 蓝牙的 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 Value Description - Byte - 0xA6 包头 - 0 0x02 Payload 长度 - 1 0x01 Type: 回复设置蓝牙名称结果 - 2 结果值: - 3 - 0 :成功 (立即生效) - 1 :失败 Payload - 2 :不支持 -4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - -举例:设置成功 - 返回 A6 02 01 00 03 6A - - 设置失败 - 返回 A6 02 01 01 04 6A - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x01 Type: 获 取 蓝 牙 名 称 - ( 1~2)校验和 -2 0x02 包尾 Payload - Payload -3 0x03 - -4 0x6A - -BM Value Description - Byte - 0xA6 包头 - 0 Len Payload 长度 (最大 16 byte ) - 1 0x02 Type: 回复蓝牙名称 - 2 Name 蓝牙名称 (最长 15 byte ) - 3~n Sum ( 1~n)校验和 - n+1 0x6A 包尾 - n +2 - - 举例:蓝牙名称为 swan_BC - 发送查询指令 :A6 01 02 03 6A - BM 返回名称: A6 08 02 73 77 61 6E 5F 42 43 A7 6A - 5. 1.2 设置、读取第二类自定义广播数据 (Type:03 、04) - - 当用户想使用自定义广播数据时,不接入我司 AiLink APP 时,可使用此设置,不设置则默认 -为我司设置 (第一类广播设置) 。 - -Byte Value Description Payload - 0xA6 -0 Len 包头 -1 0x03 Payload 长度 (最大 16byte ) -2 Type:设置为第二类广播自定义数据 -3~n Sum 设置内容 - 0x6A 最长为 15byte -n+1 ( 1~n)校验和 -N+2 包尾 - -BM Value Description - - Byte 0xA6 包头 - 0x02 Payload 长度 - 0 0x03 Type: 回复设置为第二类广播自定义数据结果 - 1 结果值: - 2 - 3 0 :成功 - 1 :失败 - 2 :不支持 Payload - ( 1~3)校验和 -4 Sum 包尾 - -5 0x6A - - 举例: - - BM 的 Mac 地址为 11: 22 : 33 : 44 : 55 :66 . - 用户若要想设置广播自定义数据为“0x01 0x02 0x03 0x04 0x05” + “MAC 地址”。 - 步骤: - - 1 、用户先读取 BM 的 MAC 地址 - 发送读取 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 Payload 长度 - Type:获取第二类广播自定义数据 - 1 0x01 ( 1~2)校验和 - 包尾 - 2 0x04 Payload - Description Payload - 3 0x05 包头 - Payload 长度 (最大 16byte ) - 4 0x6A Type:返回第二类广播自定义数据 - 返回的内容 - Byte Value 最长为 15byte - 0xA6 ( 1~n)校验和 - 0 Len 包尾 - 1 0x04 - 2 - 3~n Sum - 0x6A - n+1 - N+2 - - 5. 1.3 设置、获取广播间隔时间 (Type:05 、06) - - Byte Value Description - - 0 0xA6 包头 - - 1 0x03 Payload 长度 - - 2 0x05 Type:设置广播间隔 (单位:ms 范围:20-2000 ;默 - 认 200) - 3 Payload - 广播间隔时间的高字节 - - 4 广播间隔时间的低字节 - - 5 Sum ( 1~4)校验和 - - 6 0x6A 包尾 - - 举 例 : 设 置 广 播 间 隔 为 : 10 0 0 ms - 发送:A6 03 05 03 E8 F3 6A - -BM - Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x02 Type: 回复设置蓝牙广播间隔结果 - 结果值: -2 0x05 - 0 :成功 -3 1 :失败 - 2 :不支持 -4 Sum ( 1~3)校验和 Payload - 包尾 Payload -5 0x6A Payload - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x01 Type: 获 取 蓝 牙 广 播 间 隔 - ( 1~2)校验和 -2 0x06 包尾 - -3 0x07 - -4 0x6A - -BM Value Description - Byte 0xA6 - 0x03 包头 - 0 0x06 Payload 长度 - 1 Type: 回复广播间隔时间 (单位:ms ) - 2 Sum 广播间隔时间的高字节 - 3 0x6A 广播间隔时间的低字节 - 4 ( 1~4)校验和 - 5 包尾 - 6 - -举例:广播间隔为 1000ms - 返回 A6 03 06 03 E8 F4 6A - -5. 1.4 设置、获取连接间隔参数 (Type:07 、08) - Byte Value Description - -0 0xA6 包头 - -1 Payload 长度 - -2 0x07 Type:设置连接间隔参数 (连接间隔时间,从设备延 - 时,连接超时时间) - -3 连接间隔时间的高字节 单位:ms;范围:20-2000; - 连接间隔时间的低字节 -4 默认值 40 Payload - -5 从设备延时 (Latency) (取值:0-4 ;默认值 0) - -6 连接超时的高字节 单 位 : ms; 范 围 : - 连接超时的低字节 1000~6000;默认值:6000 -7 ( 1~7)校验和 - -8 Sum - -9 0x6A 包尾 - -BM Value Description - Byte - 0xA6 包头 - 0 0x02 Payload 长度 - 1 0x07 Type: 回复设置蓝牙连接间隔结果 - 2 结果值: - 3 - 0 :成功 - 1 :失败 Payload - 2 :不支持 -4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - -Byte Value Description - 包头 -0 0xA6 - 1 0x01 Payload 长度 Payload - 2 0x08 Type: 获 取 蓝 牙 连 接 间 隔 - 3 0x09 ( 1~2)校验和 - 4 0x6A 包尾 - -BM Value Description - Byte 0xA6 - 0x08 包头 - 0 - 1 Sum Payload 长度 - 2 0x6A - Type:设置连接间隔参数 (连接间隔时间,从设备延 - 3 时,连接超时时间) - 4 - 5 连接间隔时间的高字节 单位:ms;范围:20-2000; - 6 连接间隔时间的低字节 - 7 默认值 40 Payload - 8 - 9 从设备延时 (Latency) (取值:0-4 ;默认值 0) - - 连接超时的高字节 单 位 : ms; 范 围 : - 连接超时的低字节 1000~6000;默认值:6000 - ( 1~7)校验和 - - 包尾 - -5. 1.5 设置、获取发射功率 (Type:09 、0A) - -Byte Value Description - 包头 -0 0xA6 - 1 0x02 Payload 长度 (最大 17byte ) - Type: 设 置 蓝 牙 发 射 功 率 -2 0x09 发射功率值 - 0 :-5dbm -3 dbm 1 :-4dbm - 2 :-3dbm -4 Sum 3 :-2dbm Payload - 4 :- 1dbm Payload -5 0x6A 5 :-0dbm - 6 :1dbm - 7 :2dbm - 8 :3dbm - 9 :4dbm - 10:5dbm - ( 1~3)校验和 - 包尾 - -BM Value Description - Byte - 0xA6 包头 - 0 0x02 Payload 长度 - 1 0x09 Type: 回复设置蓝牙发射功率结果 - 2 结果值: - 3 - 0 :成功 -4 Sum 1 :失败 - 2 :不支持 -5 0x6A ( 1~3)校验和 - 包尾 - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x01 Type: 获 取 蓝 牙 发 射 功 率 - ( 1~2)校验和 -2 0x0A Payload - -3 0x0B - 4 0x6A 包尾 - -BM Value Description - Byte 0xA6 - 0x02 包头 - 0 0x0A Payload 长度 - 1 dbm Type: 回复蓝牙发射功率 - 2 发射功率值 - 3 0 :-5dbm - 1 :-4dbm - 2 :-3dbm Payload - 3 :-2dbm -4 Sum 4 :- 1dbm - 5 :-0dbm -5 0x6A 6 :1dbm - 7 :2dbm - 8 :3dbm - 9 :4dbm - 10:5dbm - ( 1~3)校验和 - 包尾 - 5. 1.6 设置、读取串口波特率 (Type:0B 、0C) - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x02 Type: 设 置 串 口 波 特 率 - Value: -2 0x0B 0 :9600 (默认) - 1 :19200 -3 2 :38400 - 3 :57600 - 4 :115200 Payload - 5 :921600 -4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - -举例:设置串口波特率:9600 - 发送: A6 02 0B 00 0D 6A - -BM Value Description - Byte - 0xA6 包头 - 0 0x02 Payload 长度 - 1 0x0B Type:回复设置串口波特率结果 - 2 结果值: - 3 - 0:成功。 (以旧的波特率回复后再切换新的波特率) - 1 :失败 Payload - 2 :不支持 -4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - - : - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x01 Type: 获 取 串 口 波 特 率 - ( 1~2)校验和 -2 0x0C 包尾 Payload - -3 0x0D - -4 0x6A - BM : Description - Byte Value - 包头 - 0 0xA6 Payload 长度 - 1 0x02 Type: 回复串口波特率设置值 - 2 0x0C 串口波特率设置值 - 3 0 :9600 - 1 :19200 -4 Sum 2 :38400 Payload - 3 :57600 -5 0x6A 4 :115200 Payload - 5 :921600 Payload - ( 1~3)校验和 - 包尾 - -举例:若串口波特率为 9200 -返回: A6 02 0C 00 0E 6A - -5. 1.7 读取 MAC 地址 (Type:0D) - - Mac Value Description -Byte - 0xA6 包头 -0 0x01 Payload 长度 -1 0x0D Type:读取 MAC 地址值 -2 0x0E ( 1~2)校验和 -3 0x6A 包尾 -4 - -BM MAC - -Byte Value Description - -0 0xA6 包头 -1 0x07 Payload 长度 -2 0x0D Type: 回复 MAc 地址值 -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 模块软、硬件版本号 (Type:0E) - - BM Value Description Payload -Byte - 0xA6 包头 -0 0x01 Payload 长度 -1 0x0E Type:读取 BM 模块软硬件版本号 -2 0x0F ( 1~2)校验和 -3 0x6A 包尾 -4 - -BM Value Description - Byte 0xA6 - 包头 - 0 0x0E Payload 长度 - 1 Type: 回复 BM 模块软硬件版本号 - 2 - 3 产品型号。byte3 、byte4 为 ASCII 字符,byte5 - 4 为数字。 - 5 - 6 硬件版本号 H Payload - 7 软件版本号 S - 8 定制版本号 P - 9 年 实际年份=年+2000 - -10 例如:2019 年 - 年=2019-2000= 19 -11 - 月 1~ 12 -12 Sum 日 1~31 - 校验和 -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 软硬件版本号 (Type:0F 、10) - -MCU MCU - -建议:客户更新 MCU 软硬件版本号给 BM 模块,以便于 APP 区分统计。 - -数据格式与 BM 的软硬件版本号格式保持一致。 - - Byte Value Description - - 0 0xA6 包头 - Payload 长度 - 1 Type:MCU 设置 MCU 软硬件版本号 - MCU 类型: 由厂家自己定义,可以不定义 - 2 0x0F 硬件版本号 - 软件版本号 - 3 年 实际年份=年+2000 - - 4 例如:2019 年 - 年=2019-2000= 19 - 5 - 月 1~ 12 - 6 日 1~31 Payload - 校验和 Payload - 7 包尾 Payload - - 8 - - 9 Sum - - 10 0x6A - -BM Value Description - Byte - 0xA6 包头 - 0 0x02 Payload 长度 - 1 0x0F Type: 回复设置 MCU 软硬件版本号结果 - 2 结果值: - 3 - 0 :成功 - 4 Sum 1 :失败 - 2 :不支持 - 5 0x6A ( 1~3)校验和 - 包尾 - - MCU Value Description - Byte - 0xA6 包头 - 0 0x01 Payload 长度 - 1 0x10 Type:获取 MCU 软硬件版本号 - 2 0x11 ( 1~2)校验和 - 3 0x6A 包尾 - 4 - BM MCU - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 Type:返回MCU 软硬件版本号 - MCU 类型: 由厂家自己定义 -2 0x10 硬件版本号 - 软件版本号 -3 年 实际年份=年+2000 - -4 例如:2019 年 - 年=2019-2000= 19 -5 - 月 1~ 12 -6 日 1~31 Payload - 校验和 -7 包尾 - -8 - -9 Sum - -10 0x6A - -5. 1. 10 设置、读取模块自动休眠时间 (Type:17 、18) - - 可以设置模块无数据自动进入休眠模式 (低功耗模式,此时设备的 Tx要保持为高) ,但是 -要注意的是,当模块进入 (休眠模式时,MCU 在发数据前,需要提前发一组数据数据过来唤醒 -模块,模块才能正常开始接受数据。详可查看工作模式说明) - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 - -2 0x17 Type:设置无连接自动睡眠时间 - -3 自动睡眠标志位: - - 0 :不开启自动休眠 - - 1 :开启自动休眠,模块没有连接自动进入低功耗模式 - -4 自动睡眠时间的最高字节 单位 :s -5 -6 自动睡眠时间的次高字节 范围: Payload -7 自动睡眠时间的次低字节 5 ~ 0xffffffff/100 -8 自动睡眠时间的最低字节 (建议设为:60 s) - - 睡眠后是否立刻断开连接,是否开启低频广播: - - 0 :断开连接,停止广播。 - 1 :保持连接,开启广播。 - -9 2 :断开连接 ,开启广播 。 单位:ms ;范围: -10 3 :保持连接 ,停止广播 。 20~2000; (建议设 - 低频广播间隔时间的高字节 - 低频广播间隔时间的低字节 - 为 1000) ; - -11 Sum ( 1~ 10)校验和 - 包尾 -12 0x6A - -BM Value Description - Byte - 0xA6 包头 - 0 0x02 Payload 长度 - 1 0x17 Type: 回复设置自动睡眠时间结果 - 2 结果值: - 3 - 0 :成功 - 1 :失败 Payload - 2 :不支持 -4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - - Byte Value Description Payload - 0xA6 Payload - 0 0x01 包头 - 1 0x18 Payload 长度 - 2 0x19 Type:获取自动睡眠时间值 - 3 0x6A ( 1~2)校验和 - 4 包尾 - Value -BM 0xA6 Description - Byte Len - 0x18 包头 - 0 - 1 Payload 长度 - 2 - 3 Type:返回无连接时自动睡眠时间 - - 自动睡眠标志位: - - 0 :不开启自动休眠 - - 1 :开启自动休眠,模块没有连接 - -4 自动睡眠时间的最高字节 单位:s -5 -6 自动睡眠时间的次高字节 -7 - 自动睡眠时间的次低字节 - - 自动睡眠时间的最低字节 - 8 睡眠后是否开启低频广播: - 0 :不开启 -9 1 :开启 单位 :ms ;范围 - 低频广播间隔的高字节 20~2000 -10 低频广播间隔的低字节 - ( 1~9)校验和 -11 Sum 包尾 - -12 0x6A - -5. 1. 11 设置模块进入睡眠 (Type:19) - -当 BM 模块进入休眠后,支持串口唤醒(MCU 可以发任意数据唤醒模块,或者发送唤醒指令), - 支持蓝牙连接唤醒 (需要开启睡眠后带广播功能,详情看下面设置进入睡眠指令格式) 。 - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 Len Type: 设 置 进 入 睡 眠 - Value: -2 0x19 0x01 - -3 - -4 睡眠后是否断开连接,是否开启低频广播: - - 0 :断开连接,关闭广播。 Payload - 1 :保持连接,开启广播。 - - 2 :断开连接 ,开启广播 。 - 3 :保持连接 ,关闭广播 。 - -5 低频广播间隔时间的高字节 单位 :ms ;范围 -6 低频广播间隔时间的低字节 20~2000 ( 建 议 - 1000ms) - -7 Sum ( 1~6)校验和 - -8 0x6A 包尾 - -BM Value Description - Byte - 0xA6 包头 - 0 Len Payload 长度 - 1 0x19 Type: 回复设置进入睡眠的结果 - 2 结果值: - 3 - 0 :成功 (成功后 100ms 后进入睡眠) - 1 :失败 Payload - 2 :不支持 - 4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - -MCU 和 APP 都可以设置 BM 模块进入睡眠,BM 模块在回复 MCU/APP 时,同时向 APP/MCU - 发送 BM 当前状态“BM 返回模块状态”。 - -5. 1. 12 设置模块唤醒 (Type:1A) - - Byte Value Description Payload - 0xA6 Payload - 0 0x02 包头 - 1 0x1A Payload 长度 - 2 0x01 Type: 设 置 模 块 唤 醒 - 3 Value: - 0x1D - 4 0x6A 1 :唤醒模块 - 5 ( 1~3)校验和 - Value 包尾 -BM 0xA6 - Byte 0x02 Description - 0x1A - 0 包头 - 1 Payload 长度 - 2 Type: 回复设置模块唤醒结果 - 3 结果值: - -4 Sum 0 :成功 - 1 :失败 -5 0x6A 2 :不支持 - ( 1~3)校验和 - 包尾 - 5. 1. 13 设置、读取系统当前时间 (Type:1B 、1C) - -该时间为蓝牙模块的系统时间。 - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x07 Type: 设 置 系 统 当 前 时 间 - 0x00 :除能,关闭时间功能 (默认) -2 0x1B 0x01 :使能,开启时间功能 - 年:年份=年+2000 -3 月 (1~ 12) - 日 (1~31) -4 时 (0~23) - 分 (0~59) -5 秒 (0~59) Payload - 校验和 Payload -6 包尾 Payload - -7 - -8 - -9 - -10 Sum - -11 0x6A - -BM Value Description - Byte - 0xA6 包头 - 0 0x02 Payload 长度 - 1 0x1B Type: 回复设置系统时间结果 - 2 结果值: - 3 - 0 :成功 -4 Sum 1 :失败 - 2 :不支持 -5 0x6A ( 1~3)校验和 - 包尾 - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x01 Type: 获 取 系 统 当 前 时 间 - ( 1~2)校验和 -2 0x1C 包尾 - -3 - -4 0x6A - BM Value Description - Byte - 0xA6 包头 - 0 0x08 Payload 长度 - 1 0x1C Type: 返 回 系 统 当 前 时 间 - 2 系统时间有效位 - 3 0 :系统时间无效 - 1 :系统时间有效 -4 年:年份=年+2000 Payload - 月 (1~ 12) -5 日 (1~31) - 时 (0~23) -6 分 (0~59) - 秒 (0~59) -7 ( 1~9)校验和 - 0x6A -8 - -9 - -10 Sum - -11 包尾 - 5. 1. 14 设置、读取 CID 、VID 、PID (Type:1D 、1E) - - CID 为产品类型 ID,请按照协议透传产品类型设置 (必须设。详情查看协议透传指令产品介绍) - VID 为设备厂家 ID ,请联系我司分配 (选设) - PID 为产品型号 ID ,厂商自己分配,建议根据产品型号分配唯一值 (选设) -以上三个值默认为 0 ,不代表任何产品 (调试阶段先设置CID) - - ID - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 Type:设置 ID - 设置 ID 标志位 -2 0x1D Bit0 :0 :不设置 CID (CID 值清 0) 。 - Bit1:0 :不设置 VID (VID 值清 0) 。 -3 Bit2 :0 :不设置 PID (PID 值清 0) 。 - - CID:产品类型 ID 的高字节 1 :设置 CID - CID:产品类型 ID 的低字节 1:设置 VID - VID:厂商 ID 的高字节 1 :设置 PID - VID:厂商 ID 的低字节 -4 PID:产品 ID 的高字节 Payload - PID:产品 ID 的低字节 -5 ( 1~9)校验和 - 包尾 -6 - -7 - -8 - -9 - -10 Sum - -11 0x6A - -BM Value Description - Byte - 0xA6 包头 - 0 Len Payload 长度 - 1 0x1D Type: 回复设置 ID 结果 - 2 结果值: - 3 - 0 :成功 - 1 :失败 Payload - 2 :不支持 -4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - - ID - Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x01 Type:获取 ID 设置值 - ( 1~2)校验和 -2 0x1E 包尾 Payload - Payload -3 0x1F - -4 0x6A - -BM ID - -Byte Value Description - -0 0xA6 包头 - -1 Len Payload 长度 - -2 0x1E Type:返回 ID - -3 设置 ID 标志位 - Bit0 :0 :不设置 CID。 - Bit1 :0 :不设置 VID。 1 :设置 CID - Bit2 : 0 :不设置 PID。 1 :设置 VID - 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. 15 设置模块重启 (Type:21) - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x02 Type: 设 置 模 块 重 启 - Value: -2 0x21 - 0x01 -3 0x01 ( 1~3)校验和 Payload - 包尾 -4 Sum - -5 0x6A - BM Value Description - Byte - 0xA6 包头 - 0 Len Payload 长度 - 1 0x21 Type: 回复设置模块重启结果 - 2 结果值: - 3 - 0 :成功 (成功后,100ms 后模块重启) -4 Sum 1 :失败 Payload - 2 :不支持 Payload -5 0x6A ( 1~3)校验和 - 包尾 - -5. 1. 16 设置恢复出厂设置 (Type:22) - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x02 Type: 设 置 恢 复 出 厂 设 置 - Value: -2 0x22 - 0x01 -3 0x01 ( 1~3)校验和 - 包尾 -4 Sum - -5 0x6A - -BM Value Description - Byte - 0xA6 包头 - 0 0x02 Payload 长度 - 1 0x22 Type: 回复设置模块重启结果 - 2 结果值: - 3 - 0 :成功 (成功后,100ms 后恢复出厂设置) - 1 :失败 Payload - 2 :不支持 -4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - 5. 1. 17 设置、获取 BM 模块状态 (Type:25 、26) - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 Type: 设 置 蓝 牙 连 接 状 态 - 主动断开连接标志位 -2 0x25 1 :立刻断开连接 - 0 :不断开连接 -3 ( 1~3)校验和 Payload - 包尾 Payload - 4 Sum Payload - 5 0x6A Description Payload - -BM Value 包头 - Byte 0xA6 Payload 长度 - 0x02 Type: 回复设置蓝牙连接状态结果 - 0 0x25 结果值: - 1 - 2 0 :成功 - 3 1 :失败 - 2 :不支持 -4 Sum ( 1~3)校验和 - 包尾 -5 0x6A - - Byte Value Description - 0xA6 包头 - 0 Payload 长度 - 1 0x26 Type: 获 取 状 态 - 2 Sum ( 1~2)校验和 - 3 0x6A 包尾 - 4 - Value Description -BM 0xA6 包头 - Byte Payload 长度 - 0x26 Type: 返 回 模 块 状 态 - 0 连接状态: - 1 - 2 - 3 - 4 0 :无连接 - 1 :已连接 -5 Sum - 工作状态: -6 0x6A 0 :唤醒 - 1 :进入休眠 - 2 :模块准备就绪 - ( 1~4)校验和 - 包尾 - -5. 1. 18 MCU 上报 MCU 电池状态 (Type:27 、28) - -MCU Value Description - 0xA6 -Byte 包头 - 0x27 Payload 长度 -0 Type:设置 MCU 电池状态 -1 电池充电状态: -2 0 :没有充电 (默认) -3 1 :充电中 - 2 :充满电 - 4 Sum 3 :充电异常 Payload - 5 0x6A 电池电量百分比 (0— 100%) Payload - 6 ( 1~4)校验和 - MCU 包尾 -BM - Value Description - Byte - 包头 -0 0xA6 Payload 长度 - Type: 回复 MCU 设置电池结果 -1 0x02 结果值: - -2 0x27 0 :成功 (成功后会把电池电量上传到APP) - 1 :失败 -3 2 :不支持 - ( 1~3)校验和 -4 Sum 包尾 - -5 0x6A - MCU Value Description Payload - 0xA6 Payload -Byte 包头 - 0x28 Payload 长度 -0 Sum Type:获取 MCU 电池状态 -1 0x6A ( 1~2)校验和 -2 包尾 -3 -4 Description - -MCU Value 包头 - 0xA6 Payload 长度 -Byte Type:返回 MCU 电池状态 - 0x28 电池充电状态: -0 0 :没有充电 (默认) -1 1 :充电中 -2 2 :充满电 -3 3 :充电异常 - 电池电量百分比 (0— 100%) -4 MCU 没有数据上传时,默认为 0xFFFF - ( 1~4)校验和 -5 Sum 包尾 - -6 0x6A - 5. 1. 19 APP 查询 MCU 拥有的单位 (Type:2C) - - APP 端界面的单位显示是根据 MCU 端所拥有的单位来做处理的,所以当 APP 连接到 MCU - 时,会发送读取指令来获取 MCU 端所拥有的单位,所以 MCU 端收到该指令时,则务必返回 - 相应的单位数据 (不返回则使用系统默认值) 。 - - MCU APP - -APP MCU - -BM MCU - - Byte Value Description - - 0 0xA6 包头 - Payload 长度 - 1 Type:APP 读取 MCU 端单位 - Value - 2 0x2C 0x01 - 校验和 - 3 包尾 Payload - - 4 - - 5 0x6A - -MCU - - Bit15~Bit0 - - Bit=0 - - Bit=1 - - Bit0 :kg - - Bit1 :斤 - - Bit2 :lb:oz - - 01 Bit3 :oz - - 重量 Bit4 :st:lb - - Bit5 :g - - Bit6 :lb (纯 lb 显示) - - Bit7-bit15 保留 - - Bit0 :cm - - 02 长度 Bit1 :inch - - Bit2 :ft-in - - Bit3-bit15 保留 - - Bit0 : C - - 03 温度 Bit1 : F - - Bit2-bit15 保留 - - Bit0 :mmhg - - 04 血压 Bit1 :kPa - 05 轮胎胎压压力 Bit2-bit15 保留 - 血糖仪 Bit0 :Kpa - 06 Bit1 :Psi - Bit2 :Bar - Bit3-bit15 保留 - Bit0 :mmol/L - Bit1 :mg/dL - -BM A6 APP - * 20 byte - Value - Byte 0xA6 Description - 0x2C - 0 包头 - 1 Payload 长度 - 2 - 3 Type:MCU 回复单位 - 4 单位类型:例如:重量类型 =01 ,长度=02 ,温度=03 - 5 该单位支持类型高位: Bit15~Bit0 - 该单位支持类型低位: 每一个 Bit 代表一个单位 - - Bit=0 :不支持 - Bit=1 :支持 - 例如:重量支持 kg 和 oz - 则 byte4=0x00 ,byte5=0x09 - -6 单位类型: Bit15~Bit0 Payload -7 单位支持类型高位 每一个 Bit 代表一个单位 -8 单位支持类型低位 Bit=0 :不支持 - Bit=1 :支持 - -9 单位类型: -10 -11 单位支持类型高位 Bit15~Bit0 - 单位支持类型低位 每一个 Bit 代表一个单位 - Bit=0 :不支持 - Bit=1 :支持 - -12 校验和 - -13 0x6A 包尾 - -举例: - -APP 读取 MCU 单位,发送指令:A6 02 2C 01 2F 6A - 若 MCU 只拥有重量单位 kg 和斤,则返回:A6 04 2C 01 00 03 34 6A - 若 MCU 只拥有重量单位 kg 和长度单位 inch ,则返回:A6 07 2C 01 00 01 02 00 02 39 6A - 若 MCU 只拥有胎压单位 Kpa 、Psi 、Bar 和温度单位℃ 、℉和重量单位 kg 和 长度单位 cm, - 则返回:A6 0D 2C 05 00 07 03 00 03 01 00 01 02 00 01 50 6A - 若是 MCU 支持的类型太多,一组数据传不完,则可以分开多组来传,数据格式不变。 - 5. 1.20 MCU 上传设备基本信息 (Type:35 、36) - -此条指令主要用MCU 上传设备的一些基本的信息,用于 APP 端数据的同步,详情请查看对 - -应的协议透传产品介绍。 - -MCU - -Byte Value Description - -0 0xA6 包头 Payload -1 0x10 Payload 长度 -2 0x35 Type:MCU 上传设备的基本信息 -3 0x01 数据有效标志位 - 0x01 -4~ 17 Sum 数据 -18 0x6A ( 1~n)校验和 -19 包尾 - -BM - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x02 Type:BM 回复结果 - 结果值: -2 0x35 - 0 :成功 -3 1 :失败 - 2 :不支持 - ( 1~3)校验和 Payload - 包尾 -4 Sum - -5 0x6A - -Byte Value Description Payload -0 0xA6 包头 -1 0x02 Payload 长度 -2 0x36 Type:读取设备的基本信息指令 -3 - Sum Value -4 0x6A 0x01 -5 ( 1~3)校验和 - Value 包尾 -BM 0xA6 - Description -Byte 包头 -0 - 1 0x10 Payload 长度 Payload -2 0x36 Type:MCU 上传设备的基本信息 -3 0x01 数据有效标志位 - 0x01 -4~ 17 Sum 数据 -18 0x6A ( 1~n)校验和 -19 包尾 - -5. 1.21 APP 同步时间到 MCU (Type:37 、38) - - 对于某些设备,具有时间功能的,此时,可利用此指令进行数据的同步。 - - APP - -Byte Default Description - -0 0xA6 包头 - Payload 长度 (最大 15byte ) -1 - -2 0x37 Tpye: APP 同步时间 - 时间:7 个 byte -3~9 年 (当前年份-2000) - 月 - - 日 Payload - - 时 - - 分 - - 秒 - - 星期 (1~7 1=周一 ~ 7=周日) - -10 SUM (1~n) ( 1~n)校验和 - -11 0x6A 包尾 - - MCU - -Byte Value Description - -0 0xA6 包头 - Payload 长度 -1 0x02 Type:MCU 返回时间同步结果 - 结果值: -2 0x37 - 0 :成功 -3 Payload - 4 Sum 1 :失败 - 2 :不支持 -5 0x6A ( 1~3)校验和 - 包尾 - MCU - APP -Byte Value APP - Description -0 0xA6 包头 Payload - Payload 长度 -1 0x02 Type:MCU 请求 APP 下发时间 - -2 0x38 Value - 0x01 -3 - ( 1~3)校验和 -4 Sum 包尾 - -5 0x6A - - 5. 1.22 BM 模块自动唤醒设置、 自动进入睡眠返回 (Type:3A 、3B) - - 当 BM 模块处于休眠状态时,BM 模块连接、断连、收发数据时的唤醒设置。当 BM - - 模块处于唤醒状态时,不会触发唤醒设置机制。 - - 带 flash 的模块,该数据断电保存。 - - MCU - -Byte Default Description - -0 0xA6 包头 - Payload 长度 (最大 15byte ) -1 Type:BM 模块唤醒设置 - 连接唤醒: (BM 模块从断连状态切为连接状态时) -2 0x3A 0x00:APP 连接时,不唤醒 BM 模块和 MCU 。 - 0x01:APP 连接时,唤醒 BM 模块和 MCU 。(默认) -3 - 断连唤醒: (BM 模块从连接状态切为断连状态时) -4 0x00:APP 断连时,不唤醒 BM 模块和 MCU 。(默认) - 0x01:APP 断连时,唤醒 BM 模块和 MCU。 - Payload - 收数据唤醒: (BM 收到 APP 数据,同时需要把数据发到 MCU -5 时) - 0x00:收到 APP 数据时,不唤醒 BM 和 MCU - 0x01:收到 APP 数据时,唤醒 BM 和 MCU (默认) - 6 自动睡眠返回指令: - 0x00: 自动睡眠后,不返回睡眠指令。 -7 SUM (1~n) 0x01: 自动睡眠后,返回睡眠指令。 (默认) - -8 0x6A 包尾 - - BM Description - 包头 -Byte Value Payload 长度 - Type:MCU 返回设置结果 -0 0xA6 结果值: - -1 0x02 0 :成功 - 1 :失败 -2 0x3A 2 :不支持 - ( 1~3)校验和 -3 包尾 - - Payload - -4 Sum - -5 0x6A - 根据已定好的协议,做数据的传输。 - -Byte Default Description - -0 0xA7 包头 - 产品类型 CID -1~2 Payload 长度 (最大 15byte ) - Payload -3 - -n - -n+ 1 SUM (1~n) ( 1~n)校验和 - -n +2 0x7A 包尾 - -协议透传指令的识别: - - 包头和包尾是固定的:0xA7 ,0x7A。 - 校验和是指 byte1 + …+ byte n 的值,取低 8 位。 - -不符合设置指令与协议透传指令的数据一律采用数据透传,即收到什么数据就传什么数据。 - 6 - - 1 、介绍:该身高秤协议支持体脂模式、身高测量、标定模式。 - 2 、四电极体脂测量模式。 - - 6. 1. 1 交互流程 - - 1. BM 模块上电。 - 2. BM 模块返回状态信息。 - 3. MCU 上传自身支持的单位。 (必须设) - 4. MCU 设置蓝牙其他参数, (可根据自身需求设置) 。 - 5. APP连接,下发用户数据 (性别、年龄、身高) ,单位设置,工作模式。 - 6. APP 连接,读取设备的声音设置。 - 7. 设备启动,上传数据。 - 8. APP 设置单位。 - 9. MCU 休眠。 - 6. 1.2 APP 下发用户信息 - -APP 连接后,需要把当前用户信息下发到设备。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 -1~2 0x0026 Payload 长 度 - -3 Type:APP 下发用户信息 - -4 0x01 性别 - 0 :女性 -5 1 :男性 - 年龄 (岁) -6 身高 cm Payload - 保留位 0 Payload -7 校验和 - 包尾 -8 - -9 SUM - -10 0x9A - -MCU Default Description - 0xA9 - Byte 0x0026 包头 - 产品类型: - 0 0x02 Payload 长 度 - 1~2 Type: 返 回 收 到 用 户 数 据 结 果 - 3 0x00 : 成功 - 4 0x01 : 失败 - 5 0x02:不支持 - ( 1~5)校验和 -6 SUM (1~5) 包尾 - -7 0x9A - 6. 1.3 MCU - - MCU Default APP PS -APP - Description Payload - Byte - 包头 APP -0 0xA9 产品类型: - Payload 长 度 Payload -1~2 0x0026 Type:MCU 请求用户 - 0x01 -3 ( 1~5)校验和 - 包尾 -4 0x03 - -5 - -6 SUM (1~5) - -7 0x9A - - 6. 1.4 APP/MCU 设置单位 - -APP APP MCU - - Byte Default Description - 0 0xA9 - 1~2 0x0026 包头 - 3 产品类型: - 4 0x04 Payload 长 度 - 5 Type: 单 位 设 置 - 身长单位 -6 0 :cm - 1 :inch -7 SUM (1~6) 2 :ft-in - 体重单位 -8 0x9A 0 :kg - 1 :斤 - 2 :lb:oz - 3 :oz - 4 :st:lb - 5 :g - 6 :lb - - ( 1~6)校验和 - 包尾 - MCU/APP Default Description - 0xA9 - Byte 0x0026 包头 - 产品类型: - 0 0x05 Payload 长 度 - 1~2 Type: 设备返回单位设置结果 - 3 0x00 : 成功 Payload - 4 0x01 : 失败 Payload - 5 0x02: 不支持 Payload - ( 1~5)校验和 -6 SUM (1~5 ) 包尾 - -7 0x9A - - 6. 1.5 APP 下发工作模式 - -APP 连接后, 需要把当前工作模式下发到设备。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 -1~2 0x0026 Payload 长 度 - -3 Type: APP 下发工作模式 - -4 0x06 1: 身高体脂模式 ( 默认) - -5 3: 标定模式 2:体重⾝⾼模式(默认) - -6 保留位 00 - 校验和 -7 SUM 包尾 - -8 0x9A - -MCU Default Description - 0xA9 - Byte 0x0026 包头 - 产品类型: - 0 0x07 Payload 长 度 - 1~2 Type: 返回工作模式设置 - 3 0x00 : 成功 - 4 0x01 : 失败 - 5 0x02: 不支持 - ( 1~5)校验和 -6 SUM (1~5 ) 包尾 - -7 0x9A - 6. 1.6 APP 读取声音设置 - -APP 连接后,需要主动读取 MCU 端的声音设置 (即MCU 端优先级高) 。MCU 需以声音设置格 - -式回复。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 -1~2 0x0026 Payload 长 度 - -3 Type:APP 读取声音设置 - -4 0x08 0x01 Payload - 保留位 0 -5 校验和 - 包尾 -6 - -7 SUM - -8 0x9A - - 6. 1.7 APP/MCU 声音设置 - -在连接状态,手动设置声音状态时,需要以下面格式发送。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 -1~2 0x0026 Payload 长 度 - -3 Type: 声 音 设 置 - -4 0x09 1 :声音开 - 2 :声音关 -5 保留位 0 Payload - 校验和 Payload -6 包尾 - -7 SUM - -8 0x9A - -Byte Default Description - -0 0xA9 包头 - 产品类型: -1~2 0x0026 Payload 长 度 - -3 Type: 返 回 声 音 设 置 - -4 0x0A 0x00 : 成功 - -5 - 0x01 : 失败 - - 0x02:不支持 - -6 SUM (1~5) ( 1~5)校验和 - -7 0x9A 包尾 - - 6. 1.8 身高体脂秤模式 - 6.1.8.1 MCU - -Byte Default Description - -0 0xA9 包头 - -1~2 0x0026 产品类型 (CID) - Payload 长 度 -3 - -4 0x10 类型:称重 Payload - -5 Type: 测 量 状 态 - - 01:实时体重 - - 02:稳定体重 - -6 重量数据高位 注: 当单位是组合单位时 如 -7 -8 重量数据次高位 1ST : 5LB , 则 该 值 是 - 重量数据低位 1*14+5= 19 ,需将数值转为小 - 单位数值 ,同时在后面的单位 - - 声明里申明是 st:lb 单位。 - -9 数据标志: - Bit7~4:重量数据精度 (该数据标识的是次级单位里的 - 数据格式) - 0000:0 位小数 - 0001:1 位小数 - 0010:2 位小数 - 0011:3 位小数 - -10 Bit3~0 :当前单位: (标识整一组数据的单位类型) - 0000:kg - - 0001:斤 - 0100:st:lb - 0110:lb - - 保留为:00 - 11 SUM 校验和 (byte1~byte10) - 包尾 -12 0x9A - - 6.1.8.2 MCU - -Byte Default Description - -0 0xA9 包头 - 产品类型 (CID) -1~2 0x0026 Payload 长 度 - 类型:测试阻抗 -3 Type: 阻 抗 测 量 - 01:测阻抗中 -4 0x11 02:测阻抗失败 - 03:测阻抗成功,带上阻抗数据,并使用 APP 算法(APP 会根 -5 据 byte11 的算法标识进行计算) - 0 4:测阻抗成功,带上阻抗数据,并使用MCU 算法。 -6 05:测阻抗结束。 - 通道: - 0x00 双脚阻抗 Payload - - 8 - 0x01 双手阻抗 - 0x02 左手阻抗 0x03 右手阻抗 - 0x04 左脚阻抗 0x05 右脚阻抗 - 0x06 左全身阻抗 0x07 右全身阻抗 - 0x08 右手左脚阻抗 - 0x09 左手右脚阻抗 0x0A 躯干阻抗 - -7- 10 阻抗数据(大端序,精度 1Ω) -11 体脂算法 ID ,每个客户都有自己的算法 ID (1~255) - 若使用MCU 端算法,则该值为 0 。 -12 0 保留位 - 校验和 (byte1~byte12) -13 SUM 包尾 - -14 0x9A - 6.1.8.3 MCU - -无心率测试,则不需上发。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 (CID) -1~2 0x0026 Payload 长 度 - 类型:测试心率 -3 Type: 心 率 测 量 - 01:测心率中 -4 0x12 02:测心率成功,带上心率数据 - 03:测心率失败 -5 心率数据 (精度 1bpm) - 保留 - 校验和 Payload - 包尾 -6 - -7 0x00 - -8 SUM - -9 0x9A - 6.1.8.4 MCU - -无温度测试,则不需上发。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 (CID) -1~2 0x0026 Payload 长 度 - 类型:温度数据 -3 温度正负 - 0 :正温度 -4 0x13 1 :负温度 - 温度数据高字节 -5 温度数据低字节 - -6 数据标志: -7 -8 Bit7~4 :温度数据精度 - 0000:0 位小数 -9 0 0001:1 位小数 Payload - 0010:2 位小数 Payload -10 SUM 0011:3 位小数 - -11 0x9A Bit3~0 :当前单位: (标识整一组数据的单位类型) - 0000: ℃ - 0001: ℉ - 保留 - 校验和 - 包尾 - - 6.1.8.5 MCU - -无身高测试,则不需上发。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 -1~2 0x0026 Payload 长 度 - Type: 身 高 -3 - -4 0x14 - 5 身长数据的高字节 - -6 身长数据的低字节 - -7 数据标志:单位 - - 0 :cm - - 1 :inch - - 2 :ft-in - -8 数据标志:小数点 - - 0 :无小数点。 - - 1 :1 位小数点。 - - 2 :2 位小数点。 - - N:N 位小数点。 - -9 SUM (1~8) ( 1~8)校验和 - -10 0x9A 包尾 - 6.1.8.6 - -Byte Default Description Payload - 0xA9 Payload -0 0x0026 包头 -1~2 0x15 产品类型 -3 0x01 Payload 长 度 -4 Type: 体 脂 数 据 -5 SUM 数据部分 1 -6-7 0x9A 体脂率 (大端序,精度 0. 1%) -8-9 皮下脂肪 (大端序,精度 0. 1%) -10- 11 内脏脂肪 (大端序,精度 1) -12- 13 肌肉率 (大端序,精度 0. 1%) -14- 15 基础代谢率 (大端序,精度 1) -16 身体年龄 -17 保留位 0 -18 校验和 -19 包尾 - -Byte Default Description - -0 0xA9 包头 - -1~2 0x0026 产品类型 - -3 Payload 长 度 - -4 0x15 Type: 体 脂 数 据 - -5 0x02 数据部分 2 - -6-7 骨量 (大端序,精度 0. 1kg) - -8-9 水含量 (大端序,精度 0. 1%) - -10- 11 蛋白率 (大端序,精度 0. 1%) - -12- 13 BMI (大端序,精度 0. 1) - -14 心率数据 (精度 1bpm) - -15 肥胖等级 - -16- 17 保留位 0 - -18 SUM 校验和 - -19 0x9A 包尾 - -以上数据,若设备无对应的功能,则对应的数据位填 0xFF。 - 6. 1.9 MCU 发送测量完成 - -当 MCU 测量结束后,需要发送指令测量完成指令通知 APP。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 (CID) -1~2 0x0026 Payload 长 度 - Type: 测 量 完 成 -3 0x30 - 保留 -4 0x30 校验和 - 包尾 -5 0 Payload - Payload -6 SUM Payload - -7 0x9A - - 6. 1. 10 APP 回复测量完成 - -APP 收到 MCU 的测量完成指令后,需回复该指令。 - -Byte Default Description - -0 0xA9 包头 - 产品类型 (CID) -1~2 0x0026 Payload 长 度 - Type: APP 测量完成 -3 保留 - 校验和 -4 0x31 包尾 - -5 0 - -6 SUM - -7 0x9A - - 6. 1. 11 标定模式 - - 6.1.11.1 APP - -Byte Default Description - -0 0xA9 包头 - 产品类型 (CID) -1~2 0x0026 Payload 长 度 - 类型:APP 下发标定重量 -3 Type: 测 量 状 态 - -4 0x40 - -5 - 3 :重量标定 - -6 重量数据高位 注: 当单位是组合单位时 如 -7 -8 重量数据次高位 1ST : 5LB , 则 该 值 是 - 重量数据低位 1*14+5= 19 ,需将数值转为小 -9 单位数值 ,同时在后面的单位 - - 声明里申明是 st:lb 单位。 - - 数据标志: - Bit7~4:重量数据精度 (该数据标识的是次级单位里的 - - 数据格式) - - 0000:0 位小数 - - 0001:1 位小数 - 0010:2 位小数 - 0011:3 位小数 - -10 Bit3~0 :当前单位: (标识整一组数据的单位类型) - 0000:kg -11 SUM - 0001:斤 -12 0x9A 0100:st:lb - 0110:lb - 保留为:00 - - 校验和 (byte1~byte10) - - 包尾 - - 6.1.11.2 MCU - -APP 收到 MCU 的测量完成指令后,需回复该指令。 - -Byte Default Description - -0 0xA9 包头 - 产品类型: -1~2 0x0026 Payload 长 度 - Type: 返 回 标 定 结 果 -3 0x00 : 成功 - 0x01 : 失败 -4 0x41 0x02:不支持 - ( 1~5)校验和 -5 包尾 Payload - -6 SUM (1~5) - -7 0x9A - 6. 1. 12 设备上发错误码 - -Byte Default Description - -0 0xA9 包头 - 产品类型 (CID) -1~2 0x0026 Payload 长 度 - Tpye: 错 误 码 -3 错误内容: - 1 :超重 -4 0 xFF … - 校验和 -5 包尾 Payload - -6 SUM - -7 0x9A -