非托管的c++ BT/LE在RP/Win和结对编程,可能的
Unmanaged C++ BT/LE on RP/Win and pairing programmatically, possible?
我有一个非托管的c++应用程序,我想移植到Windows树莓派。它最初是在嵌入式平台上开发的,但使用伪hal来隔离10-15%的平台特定代码是为了具有高度可移植性。所以它很容易移植到/运行在windows桌面以及零变化,常见的~85%。它目前是为了支持ANT+传感器而编写的,尽管我们希望添加(或可能用ANT取代)BT/LE支持。也就是说,从网上大量的文档和例子来看,不重写是否可行并不十分清楚。如果是这样的话,我们可能会选择linux。总之,三个问题-
(1)这有可能吗?
(2)如果是这样,最好的方法是什么(即我应该考虑哪些API,以及我应该如何包装它们以供非托管使用)?
(3)是否有一种方法可以编程地将RP与我们的目标传感器配对,即扫描可用的传感器并通过预定义的类型和可能的ID配对(如果是这样的话,我应该看什么API)?
我讨厌问这样开放式的问题,但从我在网上看到的例子来看,这并不清楚,因为所有东西都是面向UWP的,我对这些都不太熟悉。只是希望得到可行性的肯定/否定,如果是的话,找到正确的方向。谢谢你的建议,chris
我想我会为其他走同样道路的人跟进这一点…这是我最终发现的-
有可能……吗?是的,有可能。我能够让它工作,虽然由于缺乏文档/例子,我想出的可能不是最佳解决方案。从我所做的有限测试来看,它确实看起来很可靠。
2)如果是,最好的方法是……再一次,我不确定这是最好的方法,但简短的回答是,要使它工作,你需要通过COM使用WRL。扫描和配对所需的所有接口都在" Windows .devices.enumeration.h"中找到,您将需要使用以下命名空间- ABI::Windows::Foundation;微软:WRL;微软::WRL::包装;ABI::::设备::枚举。因为你需要的许多对象/接口根本就没有文档(例如:"IDeviceInformationStatics2"),您需要使用QueryInterface来查找可用的内容。
3)是否有一种方法来编程配对…是的,如上所述,这是可能的。我花了几个星期的时间来挑选它并使其工作,但在网上看到各种相关的例子并将其拼凑在一起似乎是可行的。我担心的一件事是在没有UI的情况下传递BLE pin码。这也可以工作,虽然没有真正记录(见"AcceptWithPin")....
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 模板元编程:如何将参数包组合成新的参数包
- Qt Q串行端口未编程设备未关闭
- 模板元编程 - 尝试实现维度分析
- 我是编程新手
- C++编程从外部文本文件定义数组大小
- 了解算法的性能差异(如果以不同的编程语言实现)
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 如何找出应用程序崩溃的原因 - Win 10 LTSB
- 使用命名空间正确编程
- C++编程:运算符重载中的引用如何工作?
- Arduino 模块化编程与全局和设置
- C++ 运算符修改/元编程策略,用于不那么冗长的语法
- 在没有管理员权限的情况下,在 c++ 中以编程方式将程序添加到启动
- 如何以编程方式将音频从任何录制设备路由到任何播放设备
- 试图修复一个错误,该错误不会让我开始编程其余部分
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- 非托管的c++ BT/LE在RP/Win和结对编程,可能的