// void setup() {
// Serial.begin(9600);
// }
// String data = "";
// void loop() {
// // reply only when you receive data:
// if (Serial.available() == 0) {
// data = Serial.readString();
// // Convert to char
// const char* data_read = data.c_str();
// char data1[5], data2[5];
// int index1 = 0, index2;
// char awal = '%';
// boolean flag_a = false, flag_b = false;
// for(int i = 0; i < strlen(data_read); i++)
// {
// if (flag_a && data_read[i] != '!') {
// data1[index1] = data_read[i];
// index1++;
// } else if (flag_b && data_read[i] != '!') {
// data2[index2] = data_read[i];
// index2++;
// }
// if (data_read[i] == '%')
// flag_a = true;
// if (data_read[i] == '#')
// flag_b = true;
// if (data_read[i] == '!') {
// flag_a = false;
// flag_b = false;
// }
// }
// data1[index1] = '\0';
// data2[index2] = '\0';
// Serial.println(data1);
// Serial.println(data2);
// }
// }
int incomingByte;
char buffer1[15], buffer2[15];
boolean flaga, flagb;
int index = 0;
void setup()
{
Serial.begin(9600);
}
boolean finish_read = false;
void loop()
{
while(Serial.available() > 0)
{
incomingByte = Serial.read();
if(incomingByte == '\n')
{
finish_read = true;
break;
}
if(incomingByte == '!')
{
flaga = false;
flagb = false;
}
if(flaga)
{
buffer1[index++] = incomingByte;
}
else if(flagb)
{
buffer2[index++] = incomingByte;
}
if(incomingByte == '%')
{
index = 0;
flaga = true;
}
if(incomingByte == '#')
{
index = 0;
flagb = true;
}
}
if(finish_read)
{
Serial.write(buffer1);
Serial.println("");
Serial.write(buffer2);
Serial.println("");
finish_read = false;
}
}