gpt4 book ai didi

bluetooth - Windows 10 物联网蓝牙 LE

转载 作者:行者123 更新时间:2023-12-03 07:01:43 27 4
gpt4 key购买 nike

我在重新连接 BLE 设备时遇到问题。

Senario 有效 - BLE 设备未配对 - Pi 启动并启动我的应用程序,找到 BLE 设备,配对并连接,接收数据 - 启动 Pi 并启动我的应用程序,它不会配对,因为它已经配对,它连接良好并接收数据。

Senario 不起作用 - BLE设备未配对或未配对,都没有关系 - 如果我的 BLE 设备由于断电或超出范围而断开连接,然后通电或回到范围内,Pi 将重新连接并抛出:mscorlib.ni.dll 中的“System.Exception”指定的登录 session 没有用户 session key 。 (HRESULT 异常:0x80070572)

如果我尝试重新启动 Pi,当我尝试执行时会抛出相同的消息:await _readCharacteristic.WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify);

唯一有效的是,如果我每次断开连接时都取消设备配对。

这与此人遇到的问题相同:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b98d77f2-bf5e-45fc-9495-1c444b54450e/uwpreconnecting-to-a-ble-csac-device-causes-exception?forum=wpdevelop

也许这里有人遇到过同样的问题并解决了它?

谢谢

最佳答案

您收到的这个特定错误的原因几乎可以肯定是 BLE 设备本身没有存储在配对过程中协商的绑定(bind)信息。为了重新使用现有的 BLE 配对,设备必须保留与其合作伙伴的绑定(bind)以用于 future 的通信 session 。

开发人员有时可以在(非 Windows)PC 或手机应用程序中解决此设备缺陷,方法是让 PC 或移动应用删除之前与已保留的设备的任何配对,并在每次看到蓝牙时协商新的配对。设备。这是可能的,因为许多蓝牙设备具有静态 PIN,无需交互即可进行配对,并且保持开放配对模式。因此,该应用程序会在每次通信时创建一个新的设备配对。 Mac BLE API 也不需要用户交互来进行配对和取消配对。

但该解决方案在 Windows BLE API 下不可行,因为与常规蓝牙不同,低功耗蓝牙 API 需要在配对和取消配对“仪式”期间进行用户交互。用户必须同意每次配对,并且必须同意每次取消配对。从 UX 的角度来看,这使得该解决方案在 Windows 上无法启动。我的猜测是 BLE 设备制造商没有存储绑定(bind)。

我们在开发自己的 BLE 驱动程序来与自己的 BLE 板通信时遇到了这种情况;我们必须重新制作运行 BLE 设备的固件,因为虽然它可以通过上述方法在 Mac OS 和 Android 下工作,但 Microsoft UWP 上可用的 BLE API 需要用户在配对仪式期间进行交互。无论如何,这似乎是正确的做事方式。

关于bluetooth - Windows 10 物联网蓝牙 LE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34686888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com