原文件:BAS_SPEC_V10.pdf 链 接:https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=245138 翻 译:guohp1128 # BAS (电池服务规格书) 文摘: 电池服务呈现出设备内电池的状态。 ## 1 简介 电池服务呈现出设备中单个电池或一组电池的电池电量。 ### 1.1 符合性 如果一个设备声称符合此服务,所有指定为该服务的强制性功能都将以指定的方式(流程强制)得到支持。同时也适用于指定支持的所有可选和有条件要求的功能。所有强制功能,以及指定支持的可选功能和有条件要求的功能,都需要作为蓝牙认证计划的一部分进行验证。 ### 1.2 服务依赖 此服务不依赖于其他基于GATT的服务。 ### 1.3 与发布的蓝牙规范兼容性 此服务兼容所有包括通用属性协议(GATT)的蓝牙核心规范【1】主机。 ### 1.4 GATT子规程的要求 在GATT所有要求的范围之外,添加了GATT子规程的要求,如表1.1显示。 | GATT子规程 | 要求 | | ----------------------------------------------------------- | ---- | | 读特性描述符 | M | | 通知 | C1 | | 写特性描述符 | C1 | | C1:如果电池电量特性的属性支持通知,则强制要求,否则不包含此项。 | | 表1.1:GATT子规程要求 ### 1.5 传输依赖 该服务可以通过LE和BR/EDR传输进行操作。 ### 1.6 错误代码 此服务没有定义被使用于ATT的任何应用程序错误代码。 ### 1.7 字节传输顺序 此服务使用的所有特性以最小8bit字节在最前的方式传输(即小端模式),【2】中的特性定义规定了最小8bit字节。 ## 2 服务声明 该服务的UUID通过《电池服务》被设置。《电池服务》分配的UUID值在【2】中定义。 ## 3 服务特性 | 特性 | 参考 | 强制性/可选性(M/O) | | -------- | ---- | -------------------- | | 电池电量 | 3.1 | M | 表3.1:服务特性 在表3.1中,特性是强制性抑或是可选性,其被实施应按照表3.2中的属性执行: | | 广播 | 读 | 无应答写 | 写 | 通知 | 指示 | 有标签写 | 可靠写 | 可写的辅助设备 | | -------- | ---- | ---- | -------- | ---- | ---- | ---- | -------- | ------ | -------------- | | 电池电量 | × | M | × | × | O | × | × | × | × | 表3.2:特性的属性 属性要求标志是"M"意味着强制性,标志是"O"意味着可选性,标志位"×"意味着没有此属性要求。 该服务定义这些特性为不安全要求。 ### 3.1 电池电量 #### 3.1.1 特性行为 电池电量特性的读取使用GATT读取特性值子程序,并且返回当前电池电量的百分比,百分比从0%到100%;0%代表电池被充分放电,100%代表电池被充满电。 对于大部分设备来说,电池电量值不会频繁变化;因此,建议不要在高频率轮询该特征值。例如,如果电池的预期寿命是几年,不建议每周读取电池电量超过一次。 这个特性可以配置为通知使用GATT写特性描述符的子规程,在客户端特性配置描述符上配置。当配置为通知时,可以在连接中通知此特性;查看4.1.1章节。 客户端特性配置描述符的值是持续的对于未连接的绑定设备。 #### 3.1.2 特性描述符 ##### 3.1.2.1 特性表示格式 当设备有多个电池服务实例时,每个电池电量特性应包括一个特性表示格式描述符,描述符包含一个名称空间/描述值,该值对于电池服务的实例是唯一的。 这个描述符应该是可读的。 此描述符应使用GATT读特性描述符子规程来读取。 ##### 3.1.2.2 客服端特性配置描述符 如果此特性的特征属性允许通知,然后客户端特性配置描述符应包括在该特性中;否则,不应包括此描述符。 如果包括,这个描述符应该是可读和可写的。 该描述符可以使用GATT读取特性描述符子规程来读取。 该描述符可以使用GATT写特性描述符子规程来写。 ## 4 服务行为 #### 4.1.1 通知行为 如果客户端在电池电量特性上配置了通知,断开连接时不发送此特性的通知。如果在连接时发送了通知,则电池服务不能再次启动一个连接。 重新连接后,在服务端与绑定的客户端断开连接期间电池电量特性的值发生了变化,服务端将发送一个通知。 如果客户端在电池电量特性上配置了通知并且在连接中电池电量特性值发生改变,应通知该特性。 ## 5 SDP互操作性 如果该服务通过BR/EDR呈现,则该服务应具有以下SDP记录: | 项目 | 定义 | 类型 | 值 | 状态 | | ------------------- | ------------ | ------ | ---------------- | ---- | | 服务类ID列表 | | | | M | | 服务类 #0 | | UUID | 《电池服务》 | M | | 协议描述符列表 | | | | M | | 协议 #0 | | UUID | L2CAP | M | | 参数 #0 for 协议 #0 | PSM | Uint16 | PSM = ATT | M | | 协议 #1 | | UUID | ATT | M | | 参数 #0 for 协议 #1 | GATT启动句柄 | Uint16 | | M | | 参数 #1 for 协议 #1 | GATT停止句柄 | Uint16 | | M | | BrowseGroupList | | | PublicBrowseRoot | M | 表5.1:SDP记录 ## 6 缩略语表 | 缩略语 | Meaning | 含义 | | ------ | ------------------------------------------ | ---------------------- | | AD | Advertising Data | 广播数据 | | BR/EDR | Basic Rate / Enhanced Data Rate | 基本速率/增强数据速率 | | GATT | Generic Attribute Profile | 通用属性协议 | | LE | Low Energy | 低功耗 | | UUID | Universally Unique Identifier | 通用唯一识别码 | | L2CAP | Logical Link Control and Adaption Protocol | 逻辑链路控制和适配协议 | | PSM | Protocol Service Multiplex | 协议服务多路复用 | | ATT | Attribute Protocol | 属性协议 | | SDP | Service Discovery Protocol | 服务搜索协议 | ## 7 参考文献 【1】Bluetooth v4.0 Core Specification 【2】Characteristic and Descriptor descriptions are accessible via the Bluetooth SIG Assigned Numbers.