2013-04-18 812 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的想法!

相关问题