2

我对蓝牙编程很陌生,因此如果这个问题看起来很幼稚,我深表歉意。

也就是说,我的一个潜在客户有一个定制的硬件设备,可以通过蓝牙将数据传输到 Windows PC。PC软件通过打开一个虚拟COM端口连接到设备,并从中读取数据;然后它会实时可视化这些数据。

他们想做的是将其中三个设备(或者更确切地说,连接到不同传感器的三个非常相似的设备)同时连接到 PC。他们希望重写软件以聚合来自所有三个来源的数据,并实时可视化所有数据;这意味着每个生成数据的设备与屏幕上出现的数据之间的延迟最多可能在几十毫秒的数量级。

我的问题是双重的。

1)。这可以做到吗?有没有办法让 PC 上的软件同时连接到三个支持蓝牙的虚拟 COM 端口?(我猜答案是“是”,但可以肯定的是)。

2)。这样做的最佳平台是什么?原始软件是用 C++/MFC 编写的,但我个人更喜欢更现代的软件,可以访问更简单的图形和 GUI API。

4

1 回答 1

1

您可以使用我的库32feet.NET 参见例如文档

首先不要使用虚拟COM端口,它们难以设置,使用不透明,并且难以维护。只需使用我们的BluetoothClient.Connect操作(或者BluetoothListener如果设备连接到 PC)。然后您将拥有三个 Socket,实际上是NetworkStreams,您可以从所有三个中读取,无论是异步还是同步。参见例如通用蓝牙数据连接

您的设备将使用串行端口配置文件,因此请使用 UUID/Guid BluetoothService.SerialPort。这三个设备需要的是每个设备的设备地址。通过发现获取它们(请参阅文档),或者设备地址可能写在设备的标签或电路板上,您可以将它们定义为代码中的常量。例如

static readonly BluetoothAddress DeviceAddr1
    = BluetoothAddress.Parse("002233445566");

至于延迟应该没问题,我认为其他方法会更慢。.NET 是现代的,并且带有用于 UI 的 WinForms、WPF 和 Silverlight 选项。

于 2012-05-04T08:58:38.543 回答