我正在尝试通过蓝牙在PC(Linux 32位)和硬件设备之间建立串行连接。
我已经用cutecom测试了这个系统。它有效。Baud 115200、/dev/rfcomm0
等。。。
现在我正试图用Mono创建一个客户端软件,以便能够实现通信协议。我已经测试了SerialPort
对象:
SerialPort mySerial;
mySerial = new SerialPort("/dev/rfcomm0", 115200);
mySerial.Open();
mySerial.ReadTimeout = 1000;
它不起作用。我已经在/dev/ttyACM0
上通过有线串行连接测试了该系统,它工作正常。所以我不认为是这样。
我尝试过使用FileStream
和StreamReader
,但抛出了一个Exception.IO: WIN32 IO returned 997
。
如何使用Mono C#与蓝牙设备进行串行连接?
与bluez 5相比,dbus是与bluez交互的首选方法。这里有一系列关于这个主题的帖子,基本上包括连接到dbus并执行以下操作。
- 注册配对代理
- 配对设备
- 注册串行/rfcomm配置文件
- 向要连接的设备发出信号,并在配置文件对象上等待连接
- 从返回的文件描述符对象打开流
一旦你有了流,你就可以对流执行所有常见的读/写操作,就像你把它作为串行端口打开一样