センサーからの入力を読み取るためにハイパーターミナルを使用しています。このセンサーは、値 6 桁または 5 桁と小数点 (ただし、スペース 2 つと 3 桁と小数点 1 つ) の形式である必要がある文字列を送信します。など) タブ セパレーター文字列 例 (F-18 または C-11) タブ セパレーター タブ CRLF 文字列の終了識別子。
ハイパーターミナルを介してこの入力を監視すると、完全に読み取られます
0.00 kBq F-18 2D
ただし、それを読むと、ほとんどの場合、文字列の壊れたセグメントが表示され、正しい文字列が返されることがあります。返されるものの例を以下に示します。
0.00 k□□□□□□□□□□□□□
Bq F-18 2D□□□□□□□□□
0.00 kBq F-18 □□□
0.002D
□□□□□□□□□□
私が使用するコードは、RXTX ライブラリからのものです。
public void serialEvent (SerialPortEvent event){
if (event.getEventType()== SerialPortEvent.DATA_AVAILABLE){
byte[] readBuffer = new byte[19];
try{
while (inputStream.available() > 0){
int numBytes = inputStream.read(readBuffer);
}
catch (IOException e) {}
input_line = new String (readBuffer);
inter.update(input_line);}}