char str[25];
int i=0;
int str_len;
int inByte;
int last_inByte;
String rezultat;
void setup() {
Serial.begin(9600);
}
void loop() {
inByte = Serial.read();
str_len=0;
if (inByte == '!') read_serial();
}
void read_serial() {
Serial.println ("SOL FOUND and reading");
Serial.print("READ: !\n");
while (inByte!= '*')
if (Serial.available() > 0) {
inByte = Serial.read();
Serial.print("READ: ");
str[str_len] = inByte;
Serial.println(str[str_len]);
str_len++;
} else if (Serial.available() == 0) {
Serial.println("EOL not available, data str invalid");
Serial.println("$N");
break;
}
if (inByte == '*') {
Serial.println ("EOL FOUND");
for (i=0;i<(str_len-1);i++) {
rezultat += str[i];
}
if(rezultat == "YES") {
Serial.write("Yeah");
}
Serial.print ("\n");
}
}
I get 'Yeah' back only if I send !YES* as first send thing from opening serial monitor. Otherwise I don't get 'Yeah' at all. Please help.