2013-04-18 500 views
0

我已經通過以下線索瞭解我的疑問。但是,目前還不清楚。Android藍牙接收到的串行數據亂碼

Why does the serial BT data I received get chopped out?

克里斯,這是一個不錯的解決方法,你建議。在你提供的解決方案中,附加'\ n'的解決方案適合我,因爲我純粹將我的PC(MATLAB)中的浮點值(轉換爲字符串後)傳輸到我的Android手機。我正在使用以下代碼通過搜索'\ n'對數據進行分組,但仍然收到的數據有時會出現亂碼。請告訴我我要改變什麼。

aReader = new InputStreamReader(mmInStream); 
mBufferedReader = new BufferedReader(aReader); 
aString = mBufferedReader.readLine(); 
mHandler.obtainMessage(BluetoothActivity.MESSAGE_READ, aString).sendToTarget(); 

這是我在處理程序中顯示的數據:

String readMessage = (String) msg.obj; 
     try{ 
      float readM = Float.parseFloat(readMessage); 
      text.append("\n" + readM); 
     }catch (NumberFormatException e) { 
      text.append("\n Number Format Exception!!"); 
      e.printStackTrace(); 
     } 

有什麼不對的這種接待?如果你能快速回答一下,這將是很好的,因爲這是我的項目的最後部分,並且截止日期已接近。謝謝!

回答

0

我自己解決了這個問題。我將分隔符從'\ n'更改爲'N'(因爲沒有字符是我的數據的一部分,它是float值),我已經達到了令人滿意的傳輸速率,數據完整性超過99%(在我發送的2000個樣本中以MATLAB每秒600個樣本的速度,只有10個在接收器(我的應用程序)中出現亂碼)。但是,感謝@Chris Stratton的想法!

相關問題