Android デバイスと WT-12 Bluetooth モジュールが RFCOMM 経由で通信しています。私のデータ転送速度はおよそ 180kbps です。データを取得するだけで、オンラインで処理しなければ、データに問題はありません。ただし、カウンターを使用してデータを計算しようとすると、データが失われる可能性があります。バッファーを読み取る前に書き込まれるため、発生していると思います。これを回避する方法はありますか?Bluetooth経由でデータをキャプチャする私のコードは次のとおりです。
void beginListenForData() {
stopWorker = false;
workerThread = new Thread(new Runnable() {
public void run() {
while ((!Thread.currentThread().isInterrupted() && !stopWorker)) {
try {
try {
bytesAvailable = myInputStream.available();
capturedSampleNumTwice += bytesAvailable;
} catch (NullPointerException e) {
Log.e("null pointer","null pointer");
}
if (bytesAvailable > 0) {
myInputStream.read(packetBytes, packetBytesAddress, bytesAvailable);
if(recordingActive){
packetBytesAddress += bytesAvailable;
Log.i("packetBytesAddress", String.valueOf(packetBytesAddress));
}
}
} catch (IOException ex) {
stopWorker = true;
}
}
}
});
workerThread.start();
}