55 lines
1.5 KiB
C++
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;
|
|
}
|