Bluetooth Attribute Protocol Spec 解读

什么是Attribute protocol

    简单来说,这个协议就是用来给Server和Client进行通信的协议。Server端保存有一个类似“属性数据库”的东西,包含了一系列的属性及其特性。而Client端可以通过ATT协议从Server端获取这些属性。再具体一些,Client可以查询(Discover)、读取(read)甚至配置(write)Server中保存的属性。通常是在配置之后,Server端可以实时的告知Client端属性值的变化。通知可以是无需Client应答的(notification),也可以是需要Client响应的(indication)。


Server端的Attribute

    server端保存了一系列的attribute,这些attribute由四个基本元素组成:

  • attribute handle
  • attribute type
  • attribute value
  • attribute permissions

    Attribute handle其实就是一个属性在server端的索引。它对每个属性来说都是唯一的,不可有重复的值,否则Client端无法准确定位到某一个属性。Handle的范围是 [0x0001, 0xFFFF)。

    Attribute type是属性的类型,ATT中使用一个(16/128bits)的UUID来表示。虽然概念是属于ATT协议,但ATT本身 并没有声明具体的UUID来作为某一个attribute type。这意味着,ATT只是提供了一个类似框架的东西,具体内容怎么填,还是由上层来定义。比如GATT(Generic Attribute Profile)就定义了几个基本的attribute type:Primary Service(UUID为0x2800)、Characteristic(UUID为0x2803)。

    Attribute value是一个属性的值,不过这里仅仅是ATT这一层的value,上层协议可以对其进行更具体的划分。还是以GATT为例,一个Characteristic的attribute value就由property、value handle和UUID三部分组成。

    

    最后一个元素attribute permissions,它描述了一个属性的访问权限,包括

  • read
  • write
  • encryption
  • authentication
  • authorization

    比较特殊的是,这些权限由上层定义,对于ATT来说却是不可见的,Client无法获取到Server中属性的permissions。</

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值