arduino-mpduino/serial.ino

58 lines
1.8 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();
Serial.println("Setting volume to " + String(volume));
break;
case 'T':
title = inputString.substring(1);
Serial.println("Setting title to " + String(title));
break;
case 'A':
artist = inputString.substring(1);
Serial.println("Setting artist to " + String(artist));
break;
case 'a':
album = inputString.substring(1);
Serial.println("Setting album to " + String(album));
break;
case 'r':
repeat = inputString.substring(1) != 0;
Serial.println("Setting repeat to " + String(repeat));
break;
case 'z':
shuffle = inputString.substring(1) != 0;
Serial.println("Setting shuffle to " + String(shuffle));
break;
default:
Serial.println(F("!Invalid line:"));
Serial.print(F("!"));
Serial.println(inputString);
break;
}
calcMaxTicks();
}