【问题标题】:How to tell if Serial COM is USB or Bluetooth in Processing?如何判断正在处理的串行 COM 是 USB 还是蓝牙?
【发布时间】:2018-09-09 02:33:42
【问题描述】:

我有一个可以通过 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 端口是否在处理中。在 Processing 中是否有可靠的方法对此进行测试?

【问题讨论】:

    标签: java bluetooth serial-port usb processing


    【解决方案1】:

    Processing Serial library 不公开任何功能来提供有关设备本身的详细信息。如果您已经知道这些设备的供应商 ID (VID) 和产品 ID (PID),则可以在 Windows 上尝试like this

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

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

    【讨论】:

    • 使用 C# 方法是否也可以检测蓝牙?
    • 理论上,如果蓝牙设备设置了 SPP (Serial Port Profile),它应该显示为 COM/串行端口。我建议先测试。
    猜你喜欢
    • 2011-02-20
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2014-03-05
    • 1970-01-01
    相关资源
    最近更新 更多