attNum 第⼀个作⽤是表⽰当前 Attribute Table 中有效 Attribute 数⽬,即 Attribute Handle 的最⼤值,该数⽬ 只在 Attribute Table 数组的第 0 项⽆效 Attribute 中使⽤:
时间: 2024-04-26 18:24:27 浏览: 108
你好,这是一个关于 BLE(蓝牙低功耗)协议中 Attribute Table 的问题,attNum 表示当前 Attribute Table 中有效 Attribute 的数量,其最大值即为 Attribute Handle 的最大值。这个数量通常存储在 Attribute Table 数组的第 0 项无效 Attribute 中。这个数值在 BLE 设备的启动过程中会被初始化,用于标识该设备支持的 Attribute 数量。
相关问题
在 BLE ⾥,Attribute Handle 值从 0x0001 开始,往后加⼀递增,⽽数组的下标从 0 开始,在 Attribute Table ⾥ 加上上⾯这个虚拟的 Attribute,正好使得后⾯每个 Attribute 在数据⾥的下标号等于其 Attribute Handle 的值。 当定义好了 Attribute Table 后,数 Attribute 在当前 Attribute Table 数组中的下标号,就能知道该 Attribute 当 前的 Attribute Handle 值。
没错,在 BLE 中,Attribute Handle 值从 0x0001 开始,依次往后递增。在 Attribute Table 中,每个 Attribute 的下标从 0 开始,而不是从 1 开始。为了方便起见,在 Attribute Table 数组的第 0 项中添加了一个无效的 Attribute,使第一个有效的 Attribute 的下标为 1,即对应 Attribute Handle 为 0x0001。这样定义 Attribute Table 后,每个 Attribute 在该数组中的下标即为其 Attribute Handle 值减 1。因此,通过 Attribute 在 Attribute Table 中的下标号,就能计算出该 Attribute 的 Attribute Handle 值。
) Attribute Handle
Attribute Handle(属性句柄)是指 BLE 设备在其 Attribute Table 中为每个 Attribute 分配的唯一标识符,它用来标识 Attribute 在 Attribute Table 中的位置和索引。Attribute Handle 是一个 16 位的整数,它在 BLE 设备启动时被分配,并在设备的整个生命周期中保持不变。在 BLE 设备之间的数据交互和通信中,Attribute Handle 被用来标识和访问 Attribute,Client 可以通过 Attribute Handle 来读取、写入、订阅和取消订阅 Attribute 的值和属性。Attribute Handle 可以看作是一个 Attribute 在 Attribute Table 中的地址,它使得 Client 可以快速、准确地访问 BLE 设备的属性和功能。在 BLE 应用程序中,开发者需要熟悉 Attribute Handle 的概念和使用方法,以便实现 BLE 设备之间的数据交互和通信。
阅读全文