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

时间:2016-05-20 02:59:59

标签: java arduino serial-port arduino-uno rxtx

让我直接回答这个问题。

假设我有一个Arduino Uno(COM4)和Arduino Mega(COM5),两者都是通过串口与我的操作系统进行通信。如何检测COM4是否真的是Arduino Uno,这样我就不会错误地将程序连接到COM5端口?连接到串口的过程由我的程序在运行时完成。

我在网上看到的代码here in another SO question以及我之前对该代码的实验,它只列出了所有串口,但没有透露出该设备是什么(所以程序不知道什么是真正的设备,可以是Arduino Uno或Arduino Mega或其他东西)。

所以我的问题是,我怎样才能达到这个目的?跨平台是首选,但如果这样的事情无法实现,那么请回答如何在Windows内部进行操作(因为我目前正在为使用Windows操作系统的计算机开发此程序)

1 个答案:

答案 0 :(得分:1)

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

将以下逻辑添加到arduino sketch的loop方法防御中:

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

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