私はrs485モジュールを使ってプロジェクトを作っています。
モジュールが私のcomポートにデータを送信するたびに、そのデータを捕まえたいです。
それはうまくいく、私はそれをキャッチすることができます。しかし、私はそれをキャッチするときに私は複数の行にそれを参照してください。シリアルデータを1行に読み込みます
私のデータは毎回*
で始まり、#
で終わります。
私は1行でデータをキャッチするのに役立つことができますか?ありがとう!問題は、あなたがあなただけの使用入力に改行文字を取得している場合、あなたはこの
receivedData = receivedData.substring(receivedData.indexOf('*'), receivedData.indexOf('#'));
を行うことができますchar配列としてreceivedDataを反復しているということであれば
public void serialEvent(SerialPortEvent event) {
//if(event.isRXCHAR() && event.getEventValue() > 0) {
try {
String receivedData = serialPort.readString(event.getEventValue());
while (receivedData.charAt(0) == '#') {
receivedData = receivedData.substring(1, receivedData.length());
}
System.out.println("Received response from port: " + receivedData);
} catch (SerialPortException ex) {
System.out.println("Error in receiving response from port: " + ex);
}
//}
}
。あなたが先行する '*'が得られるまで読む必要があります。これは、読み込み1つだけでなければなりません。そして、あなたが得るまで読むことができるようになります。(while(receivedData.charAt(0)== '#') ' *後続* '#'。 – EJP
@YCF_Lあなたはどういうことを言っていますか?投稿には入力コードが含まれています – EJP
@YCF_L OPは、 '*'で終わり、 '# 'で終わります。あなたが話していることはまだ不明です。 – EJP