Bluetooth Low Energy API для Windows 7.0

Windows 8 предоставляет API для связи с Bluetooth-устройствами с низким энергопотреблением (Smart), но этот API недоступен в предыдущих версиях Windows, так как я могу взаимодействовать с ключом BLE в Windows 7?

Ключ BLE, который я сейчас использую (BLED112), предоставляет виртуальный последовательный порт, через который вы можете отправлять команды, используя их собственный проприетарный API, но если я реализую это в своем программном обеспечении, он не будет работать с ключами других производителей.

Так есть ли способ связи с устройствами BLE в Windows 7, который не зависит от производителя?

4 ответа

Вот и получается, что некоторые люди нашли обходной путь. По сути, идея состоит в том, чтобы не использовать Windows BLE API (который не работает в Windows 7), а вместо этого напрямую общаться с ключом. Вы можете сделать это с помощью WinUSB (драйвер USB в пользовательском пространстве). Этот драйвер может быть установлен с помощью Zadig.

Вот пример:

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

Он имеет код C++, позволяющий отправлять команды HCI. Существует также библиотека Node о том, как использовать HCI для BLE более высокого уровня:

https://github.com/sandeepmistry/bleno

Я не знаю, есть ли какие-нибудь не-JS библиотеки, которые делают то же самое, но я не думаю, что было бы трудно конвертировать Bleno в C++ в любом случае.

Является ли BLE требованием? Большинство устройств BLE, вероятно, будут работать в двух режимах, поэтому вы можете переключиться на режим без поддержки LE в старых версиях Windows.

Что касается проприетарных 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

Насколько я могу сказать, в настоящее время нет способа сделать это.

  • SDK для стека WIDCOMM Bluetooth от Broadcom не обновлялся с 2009 года и не поддерживает BLE.
  • Стек Microsoft поддерживает BLE только в Windows 8.

Возможно, вам удастся заставить работать BTstack с открытым исходным кодом, но их реализация BLE только "запущена", и нет никаких инструкций по его сборке в Windows. Их вики предполагают, что никто не пробовал.

Если у кого-то есть такой успех, полные инструкции о том, как это сделать, будут великолепны!

На самом деле, если на вашем ПК установлен чипсет BT (с установленной Windows 7), поддерживающий BT 4.0 (у меня AR3012), и вы установили надлежащие драйверы чипсета BT, вы можете сделать несколько обходных путей, чтобы соединить ваше устройство BLE (BT с низким энергопотреблением или Smart) с ваш компьютер (моим устройством была клавиатура Microsoft Designer). Я щелкнул значок BT в трее и выбрал "добавить устройство" (клавиатура была в режиме обнаружения), затем щелкнул значок обнаруженной клавиатуры, чтобы связать ее, и выбрал "ввести пароль". Затем на моем телефоне Android (Samsung Galaxy S5) в меню Bluetooth/ Доступные устройства я нажал на обнаруженную клавиатуру, чтобы связать ее - он показал мне пароль для ввода на клавиатуре, но я ввел этот код на ПК, а затем на моя клавиатура - вуаля! Это сработало как шарм. Драйверы клавиатуры установлены и клавиатура работает. Окно состояния устройства BT показывает отсутствие соединения BT (возможно, потому, что в системе нет счетчика BT LE), но все работает нормально.

Другие вопросы по тегам