2

Bluetooth経由でバイト配列をJavaプログラムに送信するArduinoプログラムがあります。

Java プログラムは JSSC でデータを受け取ります。配列の長さは 72 バイトです (18 個の float が 4 バイト)。JSSC が送信の終了を認識する方法、または新しいバイト配列が利用可能になったことを知る方法は?

ほとんどの場合、転送は正しいです。しかし、時々廃棄物が受け取られます。

ここでこの例を見つけました。

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

この if(event.getEventValue() == 10) は改行を意味しますが、bytearray には改行がありません。

アルドゥイーノ:

Serial.write(バイト配列、バイト配列のサイズ);

ジャワ:

    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 ------------------------------------------------------------

誰でも私を助けることができますか?

よろしくウィリー

PS これは、このフォーラムでの最初の質問です。うまくいけば、私は規則に従っています。

4

0 に答える 0