#include <blinker.h>
#include "serialStr.h"

#define RED_PIN   8
#define GREEN_PIN 7
#define BLUE_PIN  6
#define ON_MS     100
#define PER_MS    300

blinker redBlinker(RED_PIN,ON_MS,PER_MS);
blinker greenBlinker(GREEN_PIN,ON_MS,PER_MS);
blinker blueBlinker(BLUE_PIN,ON_MS,PER_MS);
serialStr colorStr;

void setup(void) {
  Serial.begin(57600);
  colorStr.setCallback(haveStr);
  Serial.println("Type the color to blink. red, green or blue.");
}

// Magically, complete c strings show up here.
void haveStr(const char* inStr) {
   
   if (colorStr.hadOverrun()) {                         // If we had an overrun..
      Serial1.println(F("Oh no! overrun! Lost data!"));   // Tell the user.
   } else {
     if (!strcmp(inStr,"red")) {
       redBlinker.setOnOff(true);
       greenBlinker.setOnOff(false);
       blueBlinker.setOnOff(false);
     } else if (!strcmp(inStr,"green")) {
       redBlinker.setOnOff(false);
       greenBlinker.setOnOff(true);
       blueBlinker.setOnOff(false);
     } else if (!strcmp(inStr,"blue")) {
       redBlinker.setOnOff(false);
       greenBlinker.setOnOff(false);
       blueBlinker.setOnOff(true);
     } else {
       redBlinker.setOnOff(false);
       greenBlinker.setOnOff(false);
       blueBlinker.setOnOff(false);
     }
   }
}


void loop() { idle(); asm("wfe"); }
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT