17

Windows 8 公开了一个 API 来与蓝牙低功耗(智能)设备进行通信,但该 API 在以前的 Windows 版本中不可用,那么如何在 Windows 7 上与 BLE 加密狗进行通信?

我目前使用的 BLE 加密狗 (BLED112) 公开了一个虚拟串行端口,您可以通过它使用他们的自定义专有 API 发送命令,但如果我在我的软件中实现这一点,它将无法与其他制造商的加密狗一起使用。

那么有没有一种方法可以与制造商无关的 Windows 7 上的 BLE 设备进行通信?

4

4 回答 4

4

所以事实证明,有些人找到了解决方法。基本上,这个想法是使用 Windows BLE API(在 Windows 7 上不起作用),而是直接与加密狗对话。您可以使用 WinUSB(用户空间 USB 驱动程序)来实现。可以使用 Zadig 安装该驱动程序。

这是一个例子:

https://github.com/sandeepmistry/node-bluetooth-hci-socket#windows

它具有 C++ 代码,可让您发送 HCI 命令。还有一个关于如何将 HCI 用于更高级别 BLE 的 Node 库:

https://github.com/sandeepmistry/bleno

我不知道是否有任何非 JS 库可以做到这一点,但我认为无论如何将 Bleno 转换为 C++ 并不难。

于 2016-11-04T11:57:18.883 回答
2

BLE 是必需的吗?大多数 BLE 设备可能是双模式的,因此您可以在旧版本的 Windows 上回退到非 LE 模式。

关于专有 API,您看过https://32feet.codeplex.com/吗?

该文档建议大多数加密狗的驱动程序可以替换为 Microsoft 类驱动程序。但是,如果替换不可行,API 也可以与其他堆栈一起使用(根据堆栈的一些注意事项[即,需要额外的 DLL])。

切换到 MS 堆栈

https://32feet.codeplex.com/wikipage?title=Switching%20any%20dongle%20to%20the%20Microsoft%20stack&referringTitle=Documentation

一般文件

https://32feet.codeplex.com/documentation

于 2013-05-28T14:22:42.893 回答
1

据我所知,目前没有办法做到这一点。

  • Broadcom 的 WIDCOMM 蓝牙堆栈的 SDK 自 2009 年以来一直没有更新,并且不支持 BLE。
  • Microsoft 的堆栈仅支持 Windows 8 中的 BLE。

也许可以让开源BTstack工作,但他们的 BLE 实现只是“开始”,并且没有在 Windows 上构建它的说明。他们的 wiki 表明没有人尝试过。

如果有人以这种方式取得任何成功,那么有关如何做到这一点的完整说明会很棒!

于 2014-01-16T11:40:53.567 回答
0

实际上,如果您的 PC 中的 BT 芯片组(安装了 Windows 7)支持 BT 4.0(我的是 AR3012)并且您已经安装了正确的 BT 芯片组驱动程序,您可以采取一些解决方法来将您的 BLE(BT 低能耗又名智能)设备与您的 PC(我的设备是 Microsoft Designer 键盘)。我点击托盘中的 BT 图标并选择“添加设备”(键盘处于发现模式),然后点击发现的键盘图标进行配对并选择“输入密码”。然后在我的 android 手机(三星 Galaxy S5)上的蓝牙/可用设备菜单中,我点击发现的键盘进行配对 - 它向我显示了在键盘上输入的密码,但我已经在 PC 上输入了此代码,然后在我的键盘 - 瞧!它就像一个魅力。键盘驱动程序已安装,键盘现在可以正常工作。

于 2017-03-01T19:42:45.643 回答