7

我正在尝试通过蓝牙在 PC(Linux 32 位)和硬件设备之间建立串行连接。

我已经使用cutecom 测试了系统。有用。波特率 115200/dev/rfcomm0等...

现在我正在尝试使用 Mono 创建一个客户端软件,以便能够实现通信协议。我已经测试了SerialPort对象:

    SerialPort mySerial;
    mySerial = new SerialPort("/dev/rfcomm0", 115200);
    mySerial.Open();
    mySerial.ReadTimeout = 1000;

它不起作用。我已经通过有线串行连接在 上测试了系统/dev/ttyACM0,它工作正常。所以我不认为这是方法。

我尝试使用FileStreamStreamReader抛出Exception.IO: WIN32 IO returned 997.

如何使用带有 Mono C# 的蓝牙设备进行串行连接?

4

1 回答 1

0

从 bluez 5 开始,dbus 是与 bluez 和 interop 交互的首选方法。这里有一系列关于这个主题的帖子,基本上它涉及连接到 dbus 并执行以下操作。

  • 注册配对代理
  • 配对设备
  • 注册串行 / rfcomm 配置文件
  • 向您要连接的设备发出信号并在您的配置文件对象上等待连接
  • 从返回的文件描述符对象打开一个流。

一旦你有了流,你就可以对流执行所有常见的读/写操作,就像你将它作为串行端口打开一样。

于 2016-01-29T14:09:50.777 回答