Windows 8公开了一个API以与蓝牙低功耗(智能)设备进行通信,但此API在以前版本的Windows中不可用,因此如何在Windows 7上与BLE加密狗进行通信?
我目前正在使用的BLE加密狗(BLED112)公开了一个虚拟串口,您可以使用他们的自定义专有API发送命令,但是如果我在我的软件中实现它,它将无法使用加密狗来自其他制造商。
那么有没有办法在Windows 7上与制造商无关的BLE设备进行通信?
答案 0 :(得分:3)
事实证明,有些人找到了解决方法。基本上,我们的想法是不使用Windows BLE API(在Windows 7上不起作用),而是直接与加密狗交谈。您可以使用WinUSB(用户空间USB驱动程序)来实现。可以使用Zadig安装该驱动程序。
以下是一个例子:
https://github.com/sandeepmistry/node-bluetooth-hci-socket#windows
它具有C ++代码,可让您发送HCI命令。还有一个Node库,介绍如何将HCI用于更高级别的BLE:
https://github.com/sandeepmistry/bleno
我不知道是否有任何非JS库都这样做,但我认为在任何情况下都不会很难将Bleno转换为C ++。
答案 1 :(得分:1)
BLE是否是必需品? 大多数BLE设备可能是双模式的,因此您可以在旧版Windows上回退到非LE模式。
关于专有API,您看过https://32feet.codeplex.com/吗?
文档建议大多数加密狗的驱动程序可以替换为Microsoft类驱动程序。但是,如果替换不可行,API也可以与其他堆栈一起使用(根据堆栈有一些注意事项[即需要额外的DLL])。
切换到MS堆栈
一般文件
答案 2 :(得分:0)
据我所知,目前无法做到这一点。
你可能能够让开源BTstack正常工作,但是他们的BLE实现只是“已经启动”,并且没有在Windows上构建它的说明。他们的wiki表明没有人尝试过。
如果有人以这种方式取得任何成功,那么完整的说明将会很棒!
答案 3 :(得分:0)
实际上,如果您PC中的BT芯片组(安装了Windows 7)具有BT 4.0功能(我的是AR3012)并且您已经安装了正确的BT芯片组驱动程序,那么您可以采取一些解决方法来配对您的BLE(BT低能量即智能)用你的电脑设备(我的设备是微软设计师键盘)。我已点击托盘中的BT图标并选择"添加设备" (键盘处于发现模式),然后单击发现的键盘图标进行配对并选择"输入密码"。然后在我的Android手机(三星Galaxy S5)的蓝牙/可用设备菜单中,我点击发现的键盘进行配对 - 它显示了我输入键盘的密码,但我已输入此代码PC然后在我的键盘上 - 瞧!它有点像魅力。已安装键盘驱动程序,键盘正在运行。 BT设备状态窗口显示没有BT连接(可能是因为系统中没有出现BT LE Enumerator),但一切正常。