收到的字节数组并不总是正确的

时间:2016-08-08 16:18:11

标签: java arduino bytearray jssc

我有一个Arduino程序,它通过蓝牙将一个字节数组发送到Java程序。

Java程序在JSSC上接收数据。该数组长度为72个字节(18个浮点数为4个字节)。 JSSC如何识别传输结束,或者知道新的字节数组可用?

在大多数情况下,转移是正确的。但有时会收到废物。

我在这里找到了这个例子。

http://www.javaprogrammingforums.com/java-se-api-tutorials/5603-jssc-library-easy-work-serial-ports.html

此    if(event.getEventValue()== 10) 表示换行符,但是bytearray没有换行符。

Arduino的:

Serial.write(bytearray,bytearray的大小);

爪哇:

    class SerialPortReader implements SerialPortEventListener {

    public void serialEvent(SerialPortEvent event) {
        int dataNumber = 0;           
        try {             
            if(event.isRXCHAR()){
                if(event.getEventValue() >= BYTE_NUMBER){
                    receivedByte = usbPort.readBytes(BYTE_NUMBER);

                    if(receivedByte != null) {
                        isRequestOK = true;       
                        byte[] myArray = new byte[FLOATSIZE];

                        for(int i = 0, y = 0; i < receivedByte.length; i++, y++) {  //i < receivedByte.length-1
                            if(myArray == null) {
                                y = 0;
                                myArray = new byte[FLOATSIZE];
                            }
                            if((i + 1) % FLOATSIZE != 0) {
                                myArray[y] = receivedByte[i];
                            } 
                            else {
                                myArray[y] = receivedByte[i];               
                                receivedValue[dataNumber] = ByteBuffer.wrap(myArray).order(ByteOrder.LITTLE_ENDIAN).getFloat();
                                myArray = null;                                 
                                dataNumber++;  
                            }
                        }                         
                    }
                }                          
            }                
        } catch (SerialPortException e) { }    ///InvocationTargetException oder NullPointerException  
    }//--------------------------- End of serialEvent ------------------------------------------------------------- 
}//--------------------------- End of SerialPortReader ------------------------------------------------------------

有人能帮助我吗?

最好的问候威利

P.S。这是我在这个论坛上的第一个问题。希望我遵守规则。

0 个答案:

没有答案