RP / Win上的非托管C ++ BT / LE和编程配对,可能吗?

时间:2016-06-28 22:14:57

标签: c++ windows bluetooth-lowenergy unmanaged iot

我有一个非托管的c ++应用程序,我希望移植到Windows Raspberry Pi。它最初是在嵌入式平台上开发的,但使用伪HAL编写为高度可移植,以隔离10-15%的平台特定代码。所以它很容易移植到Windows桌面上/在Windows桌面上运行,并且对于常见的〜85%没有任何变化。它目前是为支持ANT +传感器而编写的,尽管我们希望添加(或可能替代ANT)BT / LE支持。通过在网上查看大量的文档和示例说,如果没有重写,它甚至可能是不可能的。如果是这样,虽然我们可能会针对linux而不是。无论如何,三个问题 -

(1)甚至可能吗?

(2)如果是这样,最佳方法是什么(即我应该查看哪些API,以及如何将它们包装起来以供非托管使用)?

(3)有没有办法以动态的方式将RP与我们的目标传感器进行编程配对,即扫描可用的传感器并按预定义的类型和可能的ID进行配对(如果是这样,那么我应该使用哪些API?看看)?

我讨厌提出这样的开放性问题,但我从在线查看的例子中并不清楚,因为一切都是面向UWP的,而且我并不熟悉任何问题。这一点。只是想在可行性上得到肯定/否定,如果是这样,那么就是正确的方向。感谢任何输入,克里斯

1 个答案:

答案 0 :(得分:0)

想象一下,对于那些沿着同样道路走下去的人来说,我会跟进这个......这里是我最终找到的 -

1)它是否可能......是的,它是可能的。我能够让它工作,但由于缺乏文档/示例,我提出的可能不是最佳解决方案。从我做过的有限测试来看,它确实看起来很稳固。

2)如果是这样,最好的方法是什么?再次,不确定这是最好的方法,但非常简短的答案是,确保它需要通过COM使用WRL。扫描和配对所需的所有接口都可以在" windows.devices.enumeration.h"中找到。并且您将要使用以下命名空间 - ABI :: Windows :: Foundation;微软:: WRL;微软:: WRL ::包装器; ABI:视窗:设备::枚举。由于您需要的许多对象/接口根本没有记录(例如,#34; IDeviceInformationStatics2"),您需要使用QueryInterface来找出可用的内容。 。

3)有没有办法以编程方式配对...是的,如上所述它是可能的。我花了几个星期的时间来完成所有工作并让它正常工作,但是在线查看各种相关示例并将它拼凑在一起它似乎有效。我关心的一件事是在没有UI的情况下在需要的地方传递BLE密码。这也有效,但没有真正记录(参见" AcceptWithPin")....