Android code
public void bytesToHex(byte[] in) {
final StringBuilder builder = new StringBuilder();
int i=0;
sendingData = true;
Log.d("byteToHex", "sendingData = true, start sending data.");
sendSerial("w"); //write command
Log.d("byteToHex", "sending w");
for(byte b : in) {
while(!newData){//wait for response from Arduino, newData == true
if(resendData == true){ //timer on Arduino up, arduino sent command req for resend of prev hex chars
sendSerial(sendByte);
Log.d("byteToHex", "resendData = true, resending: " + sendByte);
resendData = false; //reset resendData flag
}
}
i++;
sendByte = String.format("%02x", b); //send next byte(hex representation) if got response from Arduino
sendSerial(sendByte);
newData = false;
Log.d("byteToHex", "newData = false");
Log.d("byteToHex", "Sent " + i + " byte");
}
sentTerminator = true; //flag to check if terminator is received on mcu
sendSerial("||"); //terminating command, tell teensy last hex has been sent
while(sentTerminator == true){ //while terminator not yet received
if(resendTerminator == true){ //
sendSerial("||");
Log.d("byteToHex", "resending terminator");
resendTerminator = false; //Resend complete. reset resendTerminator flag.
}
}
sendingData = false;
}