Java RXTX - 通过串行通信检测正确的设备

Java RXTX - Detecting the right device through serial communication

让我直奔问题

比方说,我有一个 Arduino Uno (COM4) 和 Arduino Mega (COM5),两者都通过串行端口与我的 OS 通信。我怎样才能检测到 COM4 真的是一个 Arduino Uno,这样我就不会错误地将我的程序连接到 COM5 端口?连接串口的过程是我的程序在运行时完成的

我在网上看到的代码 here in another SO question 以及我之前对该代码的实验,它只列出了所有串行端口,而没有显示那个设备是什么(所以程序不不知道那个设备到底是什么,可以是 Arduino Uno 或 Arduino Mega 或其他东西。

所以我的问题是,我怎样才能达到这个目的?跨平台是首选,但如果无法实现,请在 Windows 中回答如何实现(因为我目前正在为使用 Windows OS 的计算机开发此程序)

您可以要求设备在连接后立即识别自己。为此,您希望在设备固件中支持设备识别。

在arduino sketch的loop方法定义中添加如下逻辑:

int inputData = Serial->read();
if (inputData == IDENTIFICATION_REQUEST) {
  // respond with information that identify the device
}

然后可以查看程序连接到哪个设备发送IDENTIFICATION_REQUEST