| 查看: 1783 | 回复: 0 | ||
[求助]
蓝牙串口数据读取不完整怎么解决???
|
|
我在bluetoothchat 的demo基础上对程序做了下修改期望完成的功能是接收下位机发送来的16进制数 0F 00 00 00 00 00 00 00 00 6D 3C共11个字节。 字节转换16进制在listview上显示出现 :第一行0F 第二行00 00 00 00 00 00 00 00 6D 3C或者 第一行0F 第二行00 00 00 00 00 00 00 00 6D 第三行3C 或者0F 00 00 00 00 00 00 00 00 6D 3C的情况, 我想要的结果是第三种 11字节数据全部显示在一行当中。对程序分析后我认为是程度分多次读取的数据并不是一次将数据读取完,因此对程序做了一下处理:可是运行出错了。。。。。。。叙述很啰嗦求大神帮忙啊!!!各种感谢 public void run() { Log.i(TAG, "BEGIN mConnectedThread" ;byte[] buffer = new byte[2048]; int bytes; int sum=0; int bytes1; ArrayList // Keep listening to the InputStream while connected while (true) { try { // Read from the InputStream bytes = mmInStream.read(buffer); //System.out.println("读取字节数"+bytes); // bytes1 = mmInStream.read(buffer); ///System.out.println("111读取字节数"+bytes1); if(bytes!=11) { sum=bytes; al.add(buffer); while(sum!=11) { bytes1 = mmInStream.read(buffer); al.add(buffer); sum+=bytes1; } mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, 11, -1,al.toArray()) .sendToTarget(); bytes=0; } if(bytes==11){ mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, bytes, -1, buffer) .sendToTarget(); bytes=0; } } catch (IOException e) { Log.e(TAG, "disconnected", e); connectionLost(); break; } } |
» 猜你喜欢
无聊看看时间戳打发时间
已经有3人回复
基于自然哲学类比的风化壳型稀土矿
已经有14人回复
国自然申请五篇代表作大比拼,感觉这个是最重要的
已经有7人回复
评委有多少概率知道其他专家手中有哪些人的本子?
已经有6人回复
求推荐期刊,重谢
已经有3人回复
职称论文投稿
已经有7人回复
中!中!中!
已经有4人回复
E0414, 我的本子有没有希望?
已经有17人回复
青A35岁以下通知答辩了吗
已经有4人回复
小城的小雨
已经有3人回复











;
回复此楼