如何解决来自蓝牙插座的数据不干净,缓冲区未清除?
我正在使用Arduino和Bluetooth Hc 05模块进行项目。当我使用蓝牙套接字将数据从Arduino发送到我的android应用程序时,我收不到干净的数据。
简单的arduino代码:
void loop(){
mySerial.println("300");
delay(1000);
mySerial.println("750");
delay(1000);
}
我应该收到300,然后将其放入textView中,1s之后,我将收到750,然后将其放入textView中,依此类推..但实际上,我收到的是带数字的数字!像这样:3007或5030或0750
我的接收方法:
public void receiveMsg(){
byte[] buffer = new byte[4];
System.out.println("socket still conneceted ? " + btSocket.isConnected());
InputStream inputStream = null;
try {
inputStream = btSocket.getInputStream();
DataInputStream mmInStream = new DataInputStream(inputStream);
length = mmInStream.read(buffer);
String readMessage = new String(buffer,length);
mMq2.setText(readMessage);
//inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
我从这里称这种方法为:
public void listn(){
Thread thread = new Thread() {
@Override
public void run() {
while(getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)){
receiveMsg();
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
thread.start();
}
我应该怎么做才能正确接收数据?我认为来自缓冲区的问题没有被清除,所以我试图清除它但无法正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。