Вы можете использовать что-то похожее на serial.parseint (), чтобы разбить ваши последовательные передачи, а затем искать заголовок. Если вы разделите все запятые через запятую, то вы будете знать, что первым разобранным будет заголовок. Пример arduino для разбора запятых показан ниже:
void loop() {
// if there's any serial available, read it:
while (Serial.available() > 0) {
// look for the next valid integer in the incoming serial stream:
int red = Serial.parseInt();
// do it again:
int green = Serial.parseInt();
// do it again:
int blue = Serial.parseInt();
// look for the newline. That's the end of your sentence:
if (Serial.read() == '\n') {
// constrain the values to 0 - 255 and invert
// if you're using a common-cathode LED, just use "constrain(color, 0, 255);"
red = 255 - constrain(red, 0, 255);
green = 255 - constrain(green, 0, 255);
blue = 255 - constrain(blue, 0, 255);
// fade the red, green, and blue legs of the LED:
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
// print the three numbers in one string as hexadecimal:
Serial.print(red, HEX);
Serial.print(green, HEX);
Serial.println(blue, HEX);
}
}
}
После получения заголовка вы можете выполнить оператор switch (), чтобы проверить регистр:
например,
while (Serial.available() > 0) {
int header = Serial.parseInt();
...
switch (header){
case header1:
code here...
break;
case header2:
code here...
break;
default:
break;
}