堆栈独立的c / c ++蓝牙api?

时间:2011-05-08 16:04:43

标签: c++ c windows bluetooth desktop


我想知道Windows(XP,Vista,7,x86和x64)是否有任何独立于堆栈的C / C ++蓝牙API。

我的目标是通过蓝牙创建连接并发送/接收一些时间关键数据。

我的研究给了我以下选项,这项任务有不利之处:

  • 用于蓝牙的Windows套接字
    仅适用于微软蓝牙堆栈
  • 使用COM端口(CreateFile / ReadFile / ...)
    比套接字选项慢,用户必须先连接到设备。
  • 使用依赖于堆栈的API这需要检测已使用的堆栈并为每个堆栈创建读/写函数。非常耗时,我不知道是否有可能支持所有堆栈
  • 编写KMDF驱动程序
    我考虑过编写一个函数驱动程序来直接与蓝牙HCI驱动程序通信,该驱动程序应该是独立于堆栈的。这将是非常耗时的,因为我必须阅读整个蓝牙规范,或者是否有用于HCI命令的API?

我知道btframework.com还有一个支持大多数(或所有)蓝牙堆栈的商业sdk,但我需要一个免费软件选项。

请告诉我这项任务是否有其他选择 如果没有,你能告诉我你更喜欢哪些选项以及为什么? 是否可以使用Windows套接字并忽略其他蓝牙堆栈?

感谢您的帮助:)

2 个答案:

答案 0 :(得分:4)

我想一个选择是使用C ++ / CLI与我的托管蓝牙库32feet.NET连接,后者支持Windows上的大多数堆栈。 http://32feet.codeplex.com/

答案 1 :(得分:3)

我已成功使用此library它被称为WCL,但它不是免费的。有了这个,您可以通过SPP连接,而无需创建虚拟COM端口。

虽然他们的文档不是很好,但它们提供了一些您可能想要尝试的优秀演示代码。

它支持Microsoft,Toshiba,Widcomm和Bluesoleil堆栈,并且有一个本机C ++实现(以及.NET实现)。