#include <serialStr.h>
#include <strTools.h>

#define blueLED   4
#define purpleLED 3
#define orangeLED 2


serialStr  comReader;

void setup() {
  
  Serial.begin(115200);
  Serial.println("What light shall we turn on or off?");
  Serial.println("Type something like.. \"Blue ON\" And see what happens.");
  pinMode(orangeLED,OUTPUT);
  pinMode(purpleLED,OUTPUT);
  pinMode(blueLED,OUTPUT);
  comReader.setCallback(readStr);
}


void readStr(char* inStr) {
  
  Serial.print("command : ");
  Serial.println(inStr);
  lwrCase(inStr);
  if (!strcmp(inStr,"blue on")) blue(true); 
  else if (!strcmp(inStr,"blue off")) blue(false);
  else if (!strcmp(inStr,"purple on")) purple(true);
  else if (!strcmp(inStr,"purple off")) purple(false);
  else if (!strcmp(inStr,"orange on")) orange(true);
  else if (!strcmp(inStr,"orange off")) orange(false);
  else if (!strcmp(inStr,"all on")) {
    blue(true);
    purple(true);
    orange(true);
  }  else if (!strcmp(inStr,"all off")) {
    blue(false);
    purple(false);
    orange(false);
  } else {
    Serial.println("Look, its color on or color off.");
    Serial.println("Or maybe, all on, or, all off. Try again.");
  }
}


void blue(bool on) {

  if (on) {
    digitalWrite(blueLED,HIGH);
  } else {
    digitalWrite(blueLED,LOW);
  }
}


void purple(bool on) {

  if (on) {
    digitalWrite(purpleLED,HIGH);
  } else {
    digitalWrite(purpleLED,LOW);
  }
}


void orange(bool on) {

  if (on) {
    digitalWrite(orangeLED,HIGH);
  } else {
    digitalWrite(orangeLED,LOW);
  }
}


void loop() { idle(); }