来自蓝牙插座的数据不干净,缓冲区未清除?

问题描述

我正在使用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 (将#修改为@)