如何判断串行COM是USB还是蓝牙正在处理?



我有一个可以通过USB和蓝牙连接的设备,但是发送到此设备的就绪消息是蓝牙还是USB而有所不同。

就绪消息以字节数组的形式发送,其中第二个元素不同,其中 0x01 用于 USB,0x02用于蓝牙。

Serial serial = Serial(s, Serial.list()[0], BAUD_RATE);
byte[] message = new byte[3];
byte[0] = 0x01;
byte[0] = 0x01; // 0x02 for bluetooth
byte[0] = 0x12;
serial.write(message);

我想让我的代码根据用户使用的内容动态工作,所以如果 usb 不起作用,那么测试蓝牙,如果这不起作用,则会打印错误消息。

我环顾四周,但找不到任何方法来检测COM端口是否在处理中是蓝牙。有没有可靠的方法来在处理中对此进行测试?

处理串行库不公开任何功能来提供有关设备本身的详细信息。如果您已经知道这些设备的供应商 ID (VID( 和产品 ID (PID(,则可以在 Windows 上尝试类似操作。

就我个人而言,我已经使用Python PySerial的ListPortInfo来完成相关任务。 如果上面的代码是您需要运行的所有串行代码,则可以使用Python Pyserial脚本轻松摆脱,该脚本既可以检查端口信息,也可以写入这些字节

。如果你真的需要使用 Processing,要么寻找一个可以提供此信息的 Serial 甚至 USB Java 库,要么通过 exec(( 从 Processing 调用 Python

最新更新