arduino-mpduino/serial.ino

55 lines
1.5 KiB
C++

/*
SerialEvent occurs whenever a new data comes in the
hardware serial RX. This routine is run between each
time loop() runs, so using delay inside loop can delay
response. Multiple bytes of data may be available.
*/
void serialEvent() {
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
inputString += inChar;
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
if (inChar == '\n') {
stringComplete = true;
}
}
}
void setFromSerial (String inputString) {
//remove newline
inputString = inputString.substring(0, inputString.length() -1);
switch ( inputString.charAt(0) ) {
case 'V':
volume = inputString.substring(1).toInt();
break;
case 'T':
title = inputString.substring(1);
break;
case 'A':
artist = inputString.substring(1);
break;
case 'a':
album = inputString.substring(1);
break;
case 'r':
repeat = inputString.substring(1) != 0;
break;
case 'z':
shuffle = inputString.substring(1) != 0;
break;
default:
Serial.println(F("!Invalid line:"));
Serial.print(F("!"));
Serial.println(inputString);
break;
}
calcMaxTicks();
// clear the string:
inputString = "";
stringComplete = false;
}