代码之家  ›  专栏  ›  技术社区  ›  Travis Griggs

混淆了特征/描述符寻址和uuid吗

  •  0
  • Travis Griggs  · 技术社区  · 6 年前

    我一直认为,对于一个可扩展外围设备上的每个特征/服务/描述符,都有一个唯一的UUID。我认为UUID不仅描述了它提供的内容,而且还为它提供了一个独特的句柄。基本上,我认为传输层使用它来标识外围和中心之间的特定实例。

    setCharacteristicNotification API,则必须在规范化的UUID处请求特定描述符的特征( 00002902-0000-1000-8000-00805f9b34fb ),然后将该描述符的值设置为允许适当的通知/指示。

    我不明白的是,这意味着对于我的设备所具有的每一个应报告的特征,它都有一个与特定UUID关联的描述符。如果我有5个应报告的特征,我将有5个不同的描述符,但都具有相同的UUID。那么,当Android设备写入其中一个描述符时,它使用什么地址来指定外观相似的描述符呢?所有这些都是在引擎盖下神奇地处理的吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Emil    6 年前

    UUID刚刚 描写

    (G)ATT db构建在称为属性的元组列表(handle、uuid、value)上。句柄是在传输层用于标识属性的16位唯一标识符。

    关贸总协定标准描述了一种对价值进行分组的方法。首先,将特征声明、特征值和一组描述符分组为一个特征。然后将服务定义和多个特征组合到一个服务中。

    您可以按uuid查找客户机特征配置描述符,并将其分组到您感兴趣的特征,然后向其写入0x0001。在内部,Android的GATT客户端查找句柄并发送一个写请求。您的应用程序无法访问句柄;只能访问高级特征对象。