ArduinoSerial
を実装するというクラスを書きましたSerialPortEventListener
。
ArduinoGUI
このクラスを、一連のチェックボックスを含むスイング GUI を作成する という別のプログラムにインポートするライブラリとして使用します。
シリアル ポートに書き込みたい場合、ArduinoGUI
クラス private ArduinoSerial
arduino のプライベート メンバー変数があります。
関数を呼び出すと、arduino.output.write(byte b);
正常に動作します。
問題は、内部ArduinoSerial
クラスが read 関数をオーバーライドし、現在、出力を system.out に吐き出していることです。
@Override
public synchronized void serialEvent(SerialPortEvent oEvent) {
if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
String inputLine=input.readLine();
System.out.println(inputLine);
} catch (Exception e) {
System.err.println(e.toString());
System.out.println("But nothing much to worry about.");
}
}
// Ignore all the other eventTypes, but you should consider the other ones.
}
これは私が望むものではありませんが、シリアルデータをクラス内のバイト配列に読み込みたいのですが、ArduinoGUI
このメソッドをもう一度オーバーライドする方法や、シリアル上のデータのイベントリスナーを作成する方法がわかりませんArduinoSerial
クラスが最初にバッファを読み取って破棄しないようにしながらポートします。