我最近购买了 USB 条形码扫描仪。它有 3 种不同的界面选择选项:
- RS-232C
- USB
- 魔杖仿真
要求仅在Java(Rxtx API)的帮助下使用RS-232C接口接收扫描的条形码。据我所知,我需要在 RXTX 中定义一个 COM 端口才能开始与设备交互
但问题是我在 RS-232C 接口中使用时无法找到它的 COM 端口。
与 RS-232C 端口通信时有什么遗漏吗,如何找到端口号。
请帮助我。
更新:按照建议,我使用下面的代码(使用JSSC)扫描了我的系统中的所有串行端口
import jssc.SerialPortList;
public class Main {
public static void main(String[] args) {
String[] portNames = SerialPortList.getPortNames();
for(int i = 0; i < portNames.length; i++){
System.out.println(portNames[i]);
}
}
}
需要注意的一点:当我连接我的条码扫描器并移除扫描器时,上面代码获得的端口列表没有变化。
输出:COM3 COM11 COM18 COM32 COM33 COM34 COM35 COM36 COM37 COM38 COM39 COM40 COM42 COM45 COM52 COM53 COM59 COM60 COM61 COM62 COM63
输出后,我尝试使用以下代码一一监听上述每个端口:
导入 jssc.SerialPort;导入 jssc.SerialPortException;
公共类主要{
public static void main(String[] args) {
SerialPort serialPort = new SerialPort("COM63"); //manually setting all the ports above one by one
try {
serialPort.openPort();//Open serial port
byte[] buffer = serialPort.readBytes(10);
System.out.println(buffer.toString());
serialPort.closePort();//Close serial port
}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
}
我得到端口忙或没有输出(同时我继续使用我的条形码扫描仪扫描)