// this tool allows me to understand the round trip bluetooth operation // Made with a HC-05 classic bluetooth or HM-10 BLE int aa = 0; int ar = 0; int jj = 0; int jr = 0; void setup() { Serial.begin(9600); Serial1.begin(9600); } void loop() { String message; while (Serial1.available()) { Serial.println("Received......"); message = Serial1.readString(); if(message=="state") { ar = aa; jr = jj; Serial.println("Send to BT"); Serial1.println("ar=" + String(ar) ); // play one time is not reliable delay(200); Serial1.println("jr=" + String(jr) ); delay(200); Serial1.println("ar=" + String(ar) ); // play 2x it's better delay(200); Serial1.println("jr=" + String(jr) ); delay(200); Serial1.println("ar=" + String(ar) ); // play 3x it's even better ! delay(200); Serial1.println("jr=" + String(jr) ); } decoupeur(message); Serial1.flush(); } } void decoupeur(String inputString){ char inputChar[inputString.length()+1] ; inputString.toCharArray(inputChar,inputString.length()+1); char* command = strtok(inputChar, "&"); // boucle sur toutes les commandes while (command != 0) { char* valueCommand = strchr(command, '='); if (valueCommand != 0) { *valueCommand = 0; ++valueCommand; if(String(command) == "a"){ aa = String(valueCommand).toFloat(); } if(String(command) == "j"){ jj = String(valueCommand).toFloat(); } } command = strtok(0, "&"); } Serial.print ("aa = "); Serial.print (aa); Serial.print ( " jj = "); Serial.println (jj); }