Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ARDUINO MESSAGE HANDLING */
- String currentMessage; // For holding the serial messages
- bool isMessage = false; // True when is message is being send
- // Message functions
- void readChar() {
- if (Serial.available() > 0) {
- char incomingChar = (char)Serial.read();
- // Start the message
- if (incomingChar == '#' && ! isMessage)
- isMessage = true;
- // END message
- else if (incomingChar == '%' && isMessage) {
- handleMessage();
- currentMessage = "";
- isMessage = false;
- }
- // Append to the message
- else if (isMessage)
- currentMessage += incomingChar;
- }
- }
- void handleMessage() {
- // Set to remote control
- if (currentMessage == "REMOTE_CONTROL") {
- digitalWrite(RED_LED, HIGH);
- setRGB(remoteColor);
- mode = remote;
- }
- if (currentMessage.startsWith("SET_RED")) {
- remoteColor[0] = currentMessage.substring(currentMessage.indexOf(':') + 1).toInt();
- }
- else if (currentMessage.startsWith("SET_GREEN")) {
- remoteColor[1] = currentMessage.substring(currentMessage.indexOf(':') + 1).toInt();
- }
- else if (currentMessage.startsWith("SET_BLUE")) {
- remoteColor[2] = currentMessage.substring(currentMessage.indexOf(':') + 1).toInt();
- }
- // saving preset modes
- else if (currentMessage.startsWith("SET_PRESET")) {
- int index = currentMessage.indexOf(',');
- String presetName = currentMessage.substring(currentMessage.indexOf(':') + 1, index);
- Serial.println(presetName);
- int presetNumber = currentMessage.substring(index + 1).toInt() -1;
- remoteNames[presetNumber] = presetName;
- remotePresets[presetNumber][0] = remoteColor[0];
- remotePresets[presetNumber][1] = remoteColor[1];
- remotePresets[presetNumber][2] = remoteColor[2];
- }
- else if (currentMessage.startsWith("GET_PRESET")){
- int preset = currentMessage.substring(currentMessage.indexOf(':') + 1).toInt();
- sendPreset(preset);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement