i have arduino program sends via bluetooth byte array java program.
the java program receives data on jssc. array 72 bytes long (18 floats a´ 4byte). how jssc recognizes end of transmission, or know new byte array becomes available?
in cases, transfer correct. time time waste received.
i've found example here.
this if(event.geteventvalue() == 10) means linefeed, bytearray have no linefeeds.
arduino:
serial.write(bytearray, size of bytearray);
java:
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 = 0, y = 0; < 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 ------------------------------------------------------------
can me?
best regards willi
p.s. first question in forum. have followed rules.
Comments
Post a Comment