bluetooth - 如何阅读特征描述符

标签 bluetooth dart bluetooth-lowenergy

我正在与BLE服务器进行交互,并且第一个尝试是查看服务0x1818-特征0x2A65的响应,并根据此链接找出支持哪些循环电源功能

https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.cycling_power_feature.xml

我得到的是这个

[134,3,1,0]

我已经阅读了大约30次文档,但仍然无法弄清楚如何将其转换为有用的东西。

如何解析该响应并将其映射到功能,以确定BLE服务/服务器支持什么?

最佳答案

您发送的链接说“循环功率特征”字段是32位的,并且以LSB优先。因此,应将您的4个字节转换为二进制(首先从MSB开始):

  • 'd0→'b0000_0000
  • 'd1→'b0000_0001
  • 'd3→'b0000_0011
  • 'd134→'b1000_0110

  • 在一起你得到(位31..0):'b00000000_00000001_00000011_10000110

    在链接中,遍历每个位字段的含义,然后查看它是True还是False。例如:
  • 位0,值:0→“支持踏板功率平衡”为False
  • 位1,值:1→“支持的累计扭矩”为真

  • 等等。

    关于bluetooth - 如何阅读特征描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54385695/

    相关文章:

    android - 如何以编程方式清除 Android 中的蓝牙名称缓存?

    iOS 蓝牙 peripheralManagerDidUpdateState 从未调用过

    Flutter - 使用 Provider 包、FireStore 身份验证查找停用的小部件的祖先是不安全的

    c - Linux 上的低功耗蓝牙 : Implement a GATT-Client

    java - 无需配对即可连接到 BLE 信标

    ios - 是否可以在 iOS 中使用 RFCOMM?

    unit-testing - 用mockito模拟的方法(带有可选参数)在单元测试中返回null。 Dart flutter

    flutter - FakeAsync 和 quiver.testing.async 有什么区别?

    android - 标准和自定义 GATT 特性

    bluetooth-lowenergy - 支持 Android 5 BLE 外设模式的芯片组/设备