跳到主要内容

蓝牙智能眼镜数据通信协议

SMART BLUETOOTH LE GLASS PROFILE

版本历史

版本时间作者描述
1.020231010胡伟初始化文档

作者

姓名邮箱公司
胡伟wei.hu@bi-ci.com上海大不自多信息科技有限公司

版权告知

本文档版权属于上海大不自多信息科技有限公司。

1. 概述

智能硬件蓝牙通信协议(以下简称本协议)用于规范化第三方硬件与行者/XOSS APP之间进行蓝牙数据传输和命令控制。我们定义传输服务以及三个数据传输通道,智能设备通过实现必须的服务和通道来与行者APP进行数据通信与传输。

1.1 描述依赖

基于蓝牙Generic Attribute Profile (GATT) 定义。

1.2 蓝牙规范和兼容性要求

本规范要求蓝牙版本4.0以及以上,支持低功耗蓝牙(BLE)。

1.3 专业术语

  1. Bluetooth Glass Device:蓝牙设备,后面简称BG Device
  2. Bluetooth Glass Profile:蓝牙配置,简称BG Profile
  3. Bluetooth Glass Service:蓝牙服务,蓝牙层服务,简称BGS
  4. Device Information Service:蓝牙标准设备信息服务,简称DIS

2 配置

2.1 规则

本规范定义了2个角色:BG Device,Collector。

  • BG Device 眼镜设备

  • Collector(APP or 码表):用户接受设备信息和控制设备

3 Bluetooth Glass设备要求

BG设备必须包含且仅包含一个Bluetooth Glass Service (简称BLS)

BG设备必须包含标准蓝牙的Device Information Service(简称DIS)

BG设备必须包含标准蓝牙的Battery Service (简称BS)

BG设备可选包含OTA Service (简称OTA)

3.1 Bluetooth Glass Service要求

3.1.1 低功耗传输要求

本节中描述Bluetooth Glass设备定义的Bluetooth Glass服务必须通过低功耗蓝牙传输(Low Energy)。

3.1.1.1 服务UUIDs 广播

Bluetooth Glass设备广播时,必须在广播信息中带有Bluetooth Glass Service的uuid信息,以增强用户使用体验,方便用户在发现时识别设备类型。

3.1.1.2 设备名称广播

为了增强用户体验,设备名称必须在广播时提供。

3.2 广播服务数据

本节定义了BL设备的广播信息内容,允许客户端通过广播信息确定设备类型。自 定义广播数据如下表:

广播数据字段类型大小要求
Service Data AD TypeUINT81M
BGS UUID(short)UINT162M
FlagsUINT81M

在广播信息中提供蓝牙标准的眼镜穿戴设备16bits Appearance Value=0x01C0

3.3 字节顺序Byte Ordering

本文档中当特征值或者描述值有多个字节组成时,定义如下:

LSBLeast Significant Bit(最低有效位)
LSOLeast Significant Octet(最低有效字节)
MSBMost Significant Bit(最高有效位)
MSOMost Significant Octet(最高有效字节)

3.4 DIS要求

参考蓝牙官方标准协议,DIS服务UUID为0x180A,本设备需要的特征服务表定义如下:

特征UUID支持描述
Manufacturer Name String0x2A29M设备制造商的名称,写设备制造商为外界所熟识的名称
Model Number String0x2A24M由设备制造商定义,建议写为某个产品的型号
Serial Number String0x2A25M由制造商定义的产品编号,为每个产品赋一唯一的编号,可以按实际应用定义自己产品SN的格式。
Hardware Revision0x2A27M产品的硬件编号,建议使用三位数以点相隔,分别表示主版本号,副版本号,发行编号
Firmware Revision0x2A26M固件软件版本号,建议使用三位数以点相隔,分别表示主版本号,副版本号,发行编号
Software Revision0x2A27O应用软件版本号,建议使用三位数以点相隔,分别表示主版本号,副版本号,发行编号(偶数发行,奇数调试)
System ID0x2A23O包含OUI( Oranizationally Unique Identifier)和一个由制造商为该产品编排的唯一编号
PnP ID0x2A50O包含由国标组织颁给制造商的编号,制造商定义的产品ID,由制造商定义的产品版本信息

3.5 BS要求

参考蓝牙官方标准协议,BS服务UUID为0x2A1B,本设备需要的特征服务表定义如下:

特征UUID支持描述
Battery Level0x2A19M电池电量 0~100
Battery Level Status0x2A24O电池电量状态定义,包括是否充电中

4. 蓝牙服务和特征

BGS 是设备的主要属性和功能,设备支持的服务和特征如下表:

Profile需求章节支持
Service 发现4.1必需
BGS 服务发现4.1必需
DIS 服务发现4.1必需
特性发现4.2必需
BGS 服务特征发现4.2.1必需
DIS 服务特征发现4.2.2必需

4.1 服务发现

使用低功耗蓝牙传输时,Collector应该在遍历发现主服务,并比对出相应的uuid的服务。

Bluetooth Glass Service UUID:0xADB401C0-B1C6-11ED-AFA1-0242AC120002

Bluetooth Glass Service UUID(Short):01C0

4.2 特征发现

4.2.1 Bluetooth Glass 特征发现

Bluetooth Glass Characteristics包含以下特性

Characteristics支持属性描述
Bluetooth Glass FeatureMRead支持的特性
Bluetooth Glass Machine StatusMRead, Notify当前状态,支持读和通知模式
Bluetooth Glass Control PointOWrite, Indicate控制和设置设备,支持写和写响应

4.2.2 DIS特征发现

参考蓝牙官方标准协议

4.2.3 BS特征发现

参考蓝牙官方标准协议

4.3 Bluetooth Glass Features特征

特征UUID:0xADB40001-B1C6-11ED-AFA1-0242AC120001

Bluetooth Glass Feature特征用于描述本设备支持的特性。定义结构如下:

FeatureGlass TypeGlass ModeReserved
字段类型UINT16UINT16
大小2 octets2 octets
字节顺序LSO...MSOLSO...MSO
单位NoneNone

4.3.1 设备类型特性支持(Glass Type Feature)定义

当Glass Type Feature 字段中的某个位设置为 1 (True) 时,服务支持关联的功能。 如果服务不支持相关功能,则相关功能位应设置为 0(false),设备Type支持配置表:

Bit定义
0Single0 - Not Support 1 - Support
1Double0
2Reserved0
3Reserved0
4Reserved0
5Reserved0
6Reserved0
7Reserved0
8~15Reserved0

4.3.2 设备模式特性支持(Glass Mode Feature)定义

当Glass Mode Feature 字段中的某个位设置为 1 (True) 时,服务支持关联的功能。 如果服务不支持相关功能,则相关功能位应设置为 0(false),设备支持模式表如下:

Bit描述
0设备OFF0 - Not Support 1 - Support
1投影模式0 - Not Support 1 - Support
2自定义模式0 - Not Support 1 - Support
3~15保留0

4.4 Bluetooth Glass Machine Status特征

Bluetooth Glass Machine Status特征用于描述本设备目前的设备状态。

特征UUID:0xADB40002-B1C6-11ED-AFA1-0242AC120002,定义结构如下:

Byte描述大小默认值单位
0Flags1 octet
1Glass type 表 3-41 octet
2Glass Mode Status 表 4-91 octet

Flags field

Flag bitValue = 0Value = 1
0Glass type field not presentGlass type field present
1Glass mode field not presentGlass mode field present
2~7Resevred

4.4.1 Light type

设备类型参考表

4.4.2 设备模式当前状态

1字节表示,每个已链接设备模式状态描述如下表:

定义
0设备关闭
1投影
2自定义
3~63保留

4.5 Bluetooth Glass Control Point 特征

特征UUID:0xADB40003-B1C6-11ED-AFA1-0242AC120003,在Bluetooth Light Control Point 特征通道中,向本通道写入命令,命令的格式定义如下表:

     LSO           MSO
Op CodeParameter
OrderLSO...MSO
TypeUINT8Variable
Size1 octet0~18 octets

4.5.1 Operate Code 操作定义

4.5.1 Operate Code 操作定义

控制命令操作符号表

Op Code支持定义参数描述
0x00MRequest ControlN/A请求对设备的控制,响应码为0x80
0x01MResetN/A请求重置设备的控制,响应码为0x80
0x02OSet Glass TypeGlass Type:设置类型
0x03OSet Glass ModeGlass Mode:设置模式
0x04~0x09O保留
0x0AOSet Workout Data最长MTU—2字节最长MTU—2字节 运动数据
0x0BOSet Navigation最长MTU—2字节最长MTU—2字节 导航数据
0x0C~0X7FN保留
0x80M响应代码表 4-12标记对Control Point的请求响应
0x81~0xDFN保留
0xDFO请求设备进入DFU状态N/A设备进入DFU状态,即断开,无返回值
0xF0~0xFFN保留

表 4-11

MTU 是硬件设备和APP之间握手的单次最大包大小。

4.5.2 Response Code 操作定义

在Bluetooth Light Control Point 特征通道中响应数据格式如下:

Reponse CodeOp Code=0x80Request Op CodeResult CodeResponse Parameter
OrderLSO...MSO
TypeUINT8UINT8UINT8
Size1 octet1 octet1 octet0~17 octets

表 4-12

4.5.3 Reslut Code 定义

Result Code定义Request Op CodeResponse Parameter
0x00ReservedN/AN/A
0x01成功表 4-11N/A
0x02不支持Op Code表 4-11N/A
0x03非法参数表 4-11N/A
0x04失败表 4-11N/A
0x05没有权限表 4-11N/A
0x06~FFReservedN/AN/A

表 4-13

4.5.4 Workout Data 定义

WorkoutData 约束为1个字节数据类型和2个字节值类型:

Workout Data TypeData Value
Order
TypeUINT8
Size1 octet1~4 octets

Workout data type 定义如下:

Title定义Data Type
0Type运动类型枚举UINT8
1Sub Type子类型UINT8
2Workout State状态UINT80, 记录中,1,暂停中
3CaloriesUINT16
4Moving TimeUINT32
5Total TimeUINT32
6Paused TimeUINT32
7DistanceUINT32单位米,scale: 100
8SpeedUINT16单位米/秒,scale: 1000
9Avg Moving SpeedUINT16
10Avg SpeedUINT16
11Max SpeedUINT16
12PaceUINT8
13Avg PaceUINT8
14Max PaceUINT8
15ElevationUINT16单位米
16GradeUINT8%,scale: 100
17Elevation GainUINT32单位米,scale: 100
18Elevation LossUINT32单位米,scale: 100
19Avg GradeUINT8%,scale: 100
20VAMUINT16单位米,scale: 100
21HeartrateUINT8
22Max HRUINT8
23AVG HRUINT8
24% MAX HRUINT8
25% LTHRUINT8
26CadenceUINT8
27Max CadenceUINT8
28Avg CadenceUINT8
29PowerUINT16watts
30Avg PowerUINT16
31Max PowerUINT16
323s Avg PowerUINT16
3310s Avg PowerUINT16
3430s Avg PowerUINT16
35% FTPUINT8%,scale: 100
36NPUINT8
public enum WorkoutType:UInt {
case Generic = 0
case Walk = 1
case Running = 2
case Cycling = 3
case Hiking = 4
case Swimming = 5
case Skiing = 6
case Travel = 7
case Trainer = 8
case IndoorCycling = 11
case Virtual = 12
}

4.5.5 Navi Data 定义

TODO

5. 链接流程

5.1 首次链接流程