在来自Arduino的android receiveData上拆分信息

时间:2019-02-10 19:52:03

标签: android arduino buffer

我已经使用库UsbSerial在Arduino和android应用程序之间实现了连接。

Arduino零件

void loop() {
  Serial.println("Hello world");
  delay(1000);
}

Android Part 我将usbSerialDevice设置为这样

serialPort.setBaudRate(9600); 
serialPort.setDataBits(UsbSerialInterface.DATA_BITS_8);
serialPort.setStopBits(UsbSerialInterface.STOP_BITS_1); 
serialPort.setParity(UsbSerialInterface.PARITY_NONE); 
serialPort.setFlowControl(UsbSerialInterface.FLOW_CONTROL_OFF); 
serialPort.read(this);

我的onReceivedData就是这样

@Override
public void onReceivedData(byte[] bytes) {
     try{
       String string = new String(bytes, "UTF-8");
     }catch (UnsupportedEncodingException e){
       e.printStackTrace();
     }
}

连接正在工作,我能够从arduino接收数据。但是我没有收到完整的消息,而是收到了拆分消息。我发现here必须像这样

在onReceivedData内部实现一个缓冲区
ProtocolBuffer buffer = new ProtocolBuffer(ProtocolBuffer.TEXT);
buffer.setDelimiter("\r\n");
buffer.appendData(arg0);
while(buffer.hasMoreCommands()){
     String textCommand = buffer.nextTextCommand()
     // Do your thing with textCommand
}

但是我无法理解如何使用它,因为protocolBuffer没有函数来检索最终完成的消息。我的问题是,有人在这方面有经验吗?还是没有人用分割信息解决问题?

0 个答案:

没有答案