ここで解決策を見つけたいと思っています。
UART 経由でアプリ固有のプロトコルを使用するコントローラーがあり、このプロトコルは 14400 bps でしか機能しません。
シリアル ポート経由でこのコントローラーと通信するには、Java コードを使用する必要があります。
しかし、私が使用している API は 14400 ボーレートをサポートしていませんが、標準と呼んでいます!!.
javax.comm および rxtx jar を使用してみました。どちらもこのボーレートをサポートしていないため、本当のヘルはありません。
誰でもこの点で私を助けてくれませんか、それは本当に役に立ちます.
ありがとう!
これがコードスニペットです
selectedPort = (SerialPort) portID.open("FlashProgramming",
TIMEOUT);
System.out.println("port " + selectedPort + " is opened");
try {
selectedPort.setSerialPortParams(14400,
SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
//ここではボーレートを 14400 に設定しようとしていますが、9600 にロールバックしています。デフォルトの 14400 はサポートされていません!!
}
// no handshaking or other flow control
try {
selectedPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
} catch (UnsupportedCommOperationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// timer on any read of the serial port
try {
selectedPort.enableReceiveTimeout(TIMEOUT);
} catch (UnsupportedCommOperationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("Comport Configeration is done");
try {
Serialdriver.in = selectedPort.getInputStream();
Serialdriver.out = selectedPort.getOutputStream();
System.out.println("i/p & o/p's are initialized");
Serialdriver.handlerParamselScreen.displaystatus("Seleted Com port "
+ selectedPort + " is Successfully opened");
}
selectedPort.addEventListener(Serialdriver);
selectedPort.notifyOnDataAvailable(true);
return selectedPort;
}