当前位置: 首页 > 知识库问答 >
问题:

Garmin BLE心率监护仪--无法通过蓝牙获取人力资源管理数据,我遗漏了什么?

赫连瑾瑜
2023-03-14

使用无品牌蓝牙/ANT心率监视器,我可以使用gatttools轻松获取HRM数据:

<MAC address>> connect
Attempting to connect to <MAC address>
Connection successful
<MAC address>> primary
(...)
<MAC address>> char-desc 0x000c 0x0011
(...)
<MAC address>> char-write-req 0x000f 0100
Characteristic value was written successfully
Notification handle = 0x000e value: 16 34 e4 04 
Notification handle = 0x000e value: 16 34 a5 04 
Notification handle = 0x000e value: 16 33 ea 04 
Notification handle = 0x000e value: 16 33 de 04

有了这个,我发送到句柄0x000f,这是00002902-0000-1000-8000-00805f9b34fb,这是我需要发送请求的地方(doc for 0x2902),我从另一个句柄(doc for 0x2a37)得到响应。

我已经对我们发送的0100有效负载有点困惑了。0x2902的规范说我们应该发送16位,而0x01000b100000000。这会导致0b还是0b1000000000000000?为什么我们发送0x0100而不是0x8000(即1与150)?

无论如何,<代码>01,<代码>010,<代码>0100,<代码>01000都会工作,但任何其他数字都会失败。既然4个十六进制字符是16位,那么它不应该已经用5个数字失败了吗?无论如何,<代码>01 工作(通知打开,指示关闭?)<代码>02不会导致更新(通知关闭,指示打开?)<代码>03起作用(通知打开,指示打开?)。我的理解正确吗?

我现在带上我的Garmin心率监护仪(这是一个Garmin HRM双功能监护仪)。我可以通过蓝牙很好地连接到它,我可以找到用于HRM交互的正确句柄(对应于UUID的句柄),但当我像以前一样使用gatttool向句柄发送char write req时,它会说值已写入,但什么也没有发生。我尝试了许多价值观,但什么都没有发生。

我错过了什么吗?在调用人力资源管理句柄之前,是否需要采取任何额外的步骤?谢谢你。

共有1个答案

侯英达
2023-03-14

您发送的0100在Little Endian中仅为0001。因为BlueZ在写入值时使用的是Little Endian,所以最后一个字节排在第一位。例如,如果要写入01 02 03,则必须将其写入030201。这就是01、010、0100和01000都可以工作的原因,因为在所有这些情况下,您都在编写01。关于02启用指示,您也是正确的,03将同时启用通知和指示。

至于启用通知和读取人力资源管理数据,请确保在启用通知之前佩戴人力资源管理双通道。原因是除非HRM Dual检测到实际的心率数据,否则它将无法工作。您可以通过Android/iOS设备上的nRF Connect应用程序连接并尝试读取人力资源管理数据来测试这一点。

 类似资料:
  • 我无法理解BLE心率特性的返回数据(service,Characteristic)。 根据规范,将有6或7字节的数据(当base64解码时),我完全理解在这种情况下如何处理它。 但有时它不会返回6或7个字节,而是8个字节,更罕见的是4个字节,我不知道为什么会有更多/更少的字节,以及添加的字节是什么意思,或者哪些字节被遗漏了。 我可以跳过所有没有6或7字节的情况,但我想完全理解这一点。 我确信bas

  • 将android Studio更新到3.1后,我的项目未编译。与Gradle同步时显示错误。 javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException: PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到

  • 主要内容:  人力资源面试自我评价 篇1,  人力资源面试自我评价 篇2,  人力资源面试自我评价 篇3,  人力资源面试自我评价 篇4,  人力资源面试自我评价 篇5,  人力资源面试自我评价 篇6,  人力资源面试自我评价 篇7,  人力资源面试自我评价 篇8,  人力资源面试自我评价 篇9,  人力资源面试自我评价 篇10人力资源面试自我评价(通用10篇)   在学习、工作或生活中,我们经常会被要求写一份自我评价,自我评价是自我意识的一种体现形式。那么你有了解过自我评价吗?以下是小编为大家

  • 我已经使用netbeans(8.0.2)中的持久性单元向导创建了数据源。但在glassfish上运行项目时,它找不到我的数据源。 例外情况 我正在使用EclipseLink JPA 2.1

  • 我的蓝牙耳机与我的Android 5.1.1设备结合时出现声音问题。因此,我需要调试蓝牙连接。我已经使用获得了一些日志,但我担心这些日志可能包含有关我的机密数据。 我应该对使用哪些参数,以便日志仅包含相关的蓝牙和耳机数据?

  • 我有下一个问题: 但是尝试这个会发送给我这个错误: Usuario no creado错误:javax.Persistence.persistenceException:Exception[EclipseLink-7060](Eclipse Persistence Services-2.5.v20140319-9AD6ABD):org.Eclipse.Persistence.exceptions.