btframework 如何通过加密进行配对和绑定(蓝牙 LE 菜鸟问题)

问题描述 投票:0回答:2

我在尝试使用 btframework (www.btframework.com) 配对和绑定蓝牙 LE 设备时遇到问题,特别是 Nonin Wristox 3150 BLE

设备文档说明...

3150 BLE 使用 Just Works 带粘合支持的配对方法。成功配对后,收集器应启动绑定,3150 BLE 将保存与收集器关联的长期绑定密钥。 3150 BLE 需要 要绑定收集器以加密连接。粘合完成后,收集器应 加密连接。

我正在努力弄清楚我应该做什么来建立联系。实际上,我已经成功连接过一次,这就是我完成所有开发的方式,但是当我再次尝试时,我所做的似乎不起作用。使用 BTFramework 演示应用程序,他们的“GattClient” - 我可以发现我的设备没有问题,但是当我单击“连接”时,它连接到设备并显示 0 错误代码(表示成功),但设备一秒钟后断开连接。我猜这是因为我还没有完成上面所有的配对。

所以我使用他们的“蓝牙管理器”来尝试配对。我将 MITM 设置为“ProtectionRequiredBonding”,将 IOCap 设置为“DisplayOnly”,将 BLE Protection 设置为“Encryption”,然后单击“Pair”。

这实际上有效过一次 - 我被配对,然后我能够使用 GattClient 进行连接并获取服务、特征并查看特征变化。

但是我无法重复这个练习。当我使用 Windows 删除设备时,我回到了之前可以连接但被设备断开连接的状态,我再次尝试了上述操作。不过现在似乎不起作用了。当我现在尝试连接时,通常会收到错误 0x005105C(未找到设备)。在Windows设置设备页面中,状态似乎在“已连接”和“已配对”之间随机变化,有时设备本身就开始报告连接错误。 (该设备不太清楚导致错误的原因)。但它总是报告配对本身成功

还有这个:

如果加密过程失败,则收集器或 3150 BLE 可能已删除其绑定密钥。发生这种情况时,3150 BLE 将删除其绑定密钥(如果存在)。建议收集器也删除其绑定密钥(如果存在)。

这是我需要做的事情吗? btframework 是如何做到这一点的?

c# .net bluetooth bluetooth-lowenergy
2个回答
0
投票

出现这种情况是因为您的设备具有随机 MAC,每次连接时都会发生变化。断开连接。

所以正确的顺序是:

  1. 发现设备。
  2. 与它配对。
  3. 连接。
  4. 做你需要做的事。
  5. 断开连接。
  6. 取消配对(通过您的代码,而不是通过 Windows 设备管理器。)
  7. 如果需要再次连接,请转到步骤 1,以便使用新的 MAC 找到设备。

如果您有任何疑问,通过电子邮件联系我们可以更快地得到答复([电子邮件受保护])。


0
投票

为了跟进这个问题,结果发现这是我的设备特有的一个怪癖。它仅允许在装入电池后的前 2 分钟内进行配对。如果我取出电池并重新装上,我就可以与设备配对。

© www.soinside.com 2019 - 2024. All rights reserved.