我还没有找到一个NuGet包,可以让我在Linux下运行的C#程序中执行蓝牙RFComm。
此外,我想向将使用蓝牙端口的API提供一个Stream对象。
Linux。蓝牙(使用Tmds.DBus访问D-Bus)仅支持BLE,InTheHand.Net不支持GNU/Linux。
谁能提出一个简单的策略来实现这个功能?要访问D-Bus,我可以使用Tmds.DBus,但如何创建Stream对象呢?
更新:我认为最好使用C++/Qt(或Python)程序来处理这一部分,并使用TCP套接字在C#程序和其他可以访问的程序之间进行通信。
更新2:我发现了这篇文章,我不知道我是否可以在C#程序上创建相同类型的套接字:https://people.csail.mit.edu/albert/bluez-intro/c404.html =>不,在编译客户端程序时,我需要安装这个Ubuntu包:libbluetooth-dev并将程序链接到libbluetooth。我可以尝试将C库导入到C#程序中。
1条答案
按热度按时间3phpmpom1#
一个简单的解决方案是使用虚拟串行设备与蓝牙设备进行通信。
我与你分享一个快速和肮脏的例子,如何在Ubuntu下运行的C#程序中使用蓝牙端口。
该程序必须使用sudo命令启动,因为SerialPort无法在没有root权限的情况下打开/dev/rfcomm 1(使用命令rfcommbind创建的虚拟串行端口),但我认为有一个简单的解决方案可以解决这个问题。