いくつかのシリアル外部デバイスと通信する特定の Java 組み込みプロジェクトの開発を継続する必要があります。
以前の開発は Windows を使用して行われましたが、現在は Ubuntu を使用して実行しようとしています。このコードを使用すると、ポートの問題が発生します。
String comport = Gateway.config.getHardwareRevision() <= 1 ? "com0" : "com1";
String ports = System.getProperty("microedition.commports");
log.log("---available PORTS: " + ports);
serial = (CommConnection) Connector .open("comm:" + comport + ";blocking=on;baudrate=" + BAUD_RATES[baudrate]
+ ";autocts=off;autorts=off");
inStream = serial.openInputStream();
outStream = serial.openOutputStream();
基本的に、USBをシリアルケーブルに接続し、Ubuntuがポートに割り当てていることに気付いた/dev/ttyUSB0
ので、コードを次のように変更します。
`String comport = Gateway.config.getHardwareRevision() <= 1 ? "/dev/ttyUSB0" : "com1";`
ハードウェア リビジョンが <=1 なので、このポートをロードする必要があります。残念ながら、何度も試した後、まだ受け取ります:
Could not find serial port /dev/ttyUSB0
java.io.IOException: gnu.io.NoSuchPortException
at javax.microedition.io.SerialConnection.open(SerialConnection.java:57)
at javax.microedition.io.SerialConnection.<init>(SerialConnection.java:19)
at javax.microedition.io.Connector.open(Connector.java:43)
at javax.microedition.io.Connector.open(Connector.java:13)
Linux で開発する場合はRXTXを使用する必要があると読みましたが、開発環境を変更したからといって Java コードを書き直す必要があるとは信じられません。
リファクタリングせずにこれを機能させるためのアイデアはありますか?