I have an Arduino program that sends 270 analog values as byte in prefix mode , and it works fine on Bluetooth serial on B4A and B4J
I do not want to convert this to B4R as it has extensive use of interrupts
The main send routine is
void Send270Array()
{
byte b[4];
b[0] = 0; // Sending 270 items in prefix mode
b[1] = 0;
b[2] = 0b00000001; // prefix header for 270 items
b[3]= 0b00001110;
for(int j=0;j<4;j++)
Serial.write(b[j]);
for (int i = 0;i<NoVals;i++)
Serial.write(AnalogVal[i]);
}
But it will not work with B4j Serial in prefix mode.
So after lots of hair pulling I set up a series of tests and just logged the serial port astream buffer length (for ease I used B4jChat) using prefix and non prefix receiving where appropriate
I put a counter on the bytes sent to check send quantity.
a) Sent 40 Bytes Sent = 40 Buffer received length 129
b) Send 40 bytes in prefix mode Sent = 44 Buffer received length 109 Prefix failed java.lang.NegativeArraySizeException: -2147450880
c) Sent 20 Integers ( print send = 20) Sent = 20 x 2 Buffer received length length 159
d) Send 20 Integers as High and Low Byte Sent = 40 Buffer received length Length 86
e) Send 270 Bytes (the one working on bluetooth) Sent = 274 Buffer received length Length 276 Buffer length never logged in prefix mode
Can someone please assist...
Enclosed is Arduino test program