最近、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
出力の後、次のコードを使用して、上記の各ポートを 1 つずつリッスンしようとしました。
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);
}
}
}
ポートがビジーであるか、出力がありません (その間、バーコード スキャナーを使用してスキャンを続けました)