Стек независимых c / c ++ Bluetooth API? - PullRequest
8 голосов
/ 08 мая 2011


Я хотел бы узнать, есть ли какой-нибудь C / C ++ Bluetooth API для Windows (XP, Vista, 7, x86 и x64), независимый от стека.

Моя цель - создать соединение и отправить/ получить некоторые данные, критичные по времени, через Bluetooth.

Мои исследования дали мне следующие возможности и недостатки для этой задачи:

  • Windows Sockets for BluetoothРаботает только с стеком Microsoft Bluetooth
  • Использование COM-порта (CreateFile / ReadFile / ...)Медленнее, чем опция сокета, и пользователь должен сначала подключиться к устройству.
  • Использовать зависящий от стека APIЭто потребует обнаружения используемого стека и создания функций чтения / записи для каждого стека.Очень много времени, и я не знаю, возможно ли вообще поддерживать все стеки
  • Написание драйвера KMDFЯ думал о написании функционального драйвера для непосредственного общения с драйвером bluetooth HCI, который должен быть независимым от стека.Это заняло бы очень много времени, потому что мне пришлось бы прочитать всю спецификацию bluetooth или есть API для команд HCI?

Я знаю, что есть также коммерческий sdk от btframework.com, которыйподдерживает большинство (или все) стеков Bluetooth, но мне нужна бесплатная программа.

Скажите, пожалуйста, есть ли другие варианты для этой задачи.
Если их нет, подскажите, какиекакие параметры вы предпочитаете и почему?
Можно ли использовать Windows Sockets и игнорировать другие стеки Bluetooth?

Спасибо за помощь:)

Ответы [ 2 ]

4 голосов
/ 09 мая 2011

Я полагаю, что одним из вариантов будет использование C ++ / CLI для взаимодействия с моей управляемой библиотекой Bluetooth 32feet.NET, которая поддерживает большинство стеков в Windows.http://32feet.codeplex.com/

3 голосов
/ 24 августа 2012

Я успешно использую эту библиотеку , она называется WCL, но она не бесплатна. При этом вы можете подключаться через SPP без необходимости создания виртуального COM-порта.

Хотя их документация не очень хорошая, они предоставляют хороший демонстрационный код, который вы можете попробовать.

Он поддерживает стеки Microsoft, Toshiba, Widcomm и Bluesoleil, и существует собственная реализация C ++ (а также .NET).

...