Bluetooth 受信スレッドで実行されるカウンターをリセットしようとしています。BT 送信機から送信される各パケットには 4 つのデータ バイトがあります。パケット時間は 300 ミリ秒です。しばらくすると、受信データが不明な理由でシーケンスから外れるため、有効なデータを確保するためにパケット間のカウンターをリセットするタイマーを追加できると考えました。私が読んだブログによると、タイムアウトは組み込まれていないので、誰かが作成したと思います。
while (true) {
try {
byte[] packetBytes = new byte[20]; // Start new packetbyte
Log.d(TAG, " Counter " + counter);
mmInStream.read(packetBytes); // Read Bluetooth socket
b [counter]= packetBytes[0]; // Save each byte into B
counter++;
if(counter == 4){ // After 4 bytes DO this
Log.d(TAG, " Done ");
counter=0; // Reset counter
h.obtainMessage(RECIEVE_MESSAGE, counter, -1, b).sendToTarget(); // Send to message queue Handler
}
} catch (IOException e) {
break;
}
}
データをカウントするコードです。カウンターをリセットしようとしています。