我最近購買了USB條形碼掃描儀。它有3個不同的接口選項:使用java接收RS-232C設備的數據
- RS-232C
- USB
- Wand仿真
要求僅使用RS-232C接口與接收所掃描的條形碼Java(Rxtx API)的幫助。 所以據我所知,我將需要在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
輸出後我試着用以下代碼一個一個地聽上面的每個端口:
import jssc.SerialPort; import 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);
}
}
}
我要麼端口忙或無輸出
我已經更新了這個問題,請參閱 – Deepak
那麼查看jSSC文檔,你的代碼看起來不錯。讓我們倒退一下。當您將條形碼掃描器連接到PC時,您是否能夠從設備管理器中檢測到它正在使用哪個COM端口?你在Windows/Linux/Mac上嗎?我插入的條碼掃描器目前被我的操作系統識別爲鍵盤設備,而不是串行設備。 – Grambot
我正在使用Windows和是的,你是對的,在我的計算機中,條形碼掃描器被識別爲鍵盤,即其默認接口,但是我想將接口設置爲RS-232C(幸運的是我的設備可以切換到此接口)使用它開發一些Java應用程序。 ,只要我切換其接口,設備管理器不會顯示它在鍵盤或COM部分下 – Deepak