/*Napiši program, ki prebere niz znakov iz serijskega porta.
Uporabi funkcijo Serial.readBytes(buffer, 4)
Če niz znakov ustereza številki 5461 se na serijskem portu izpiše vklop LED in 
prižge LED dioda na pinu 8
Uporabi switch case stavek:
- 5461 (vklop LED1)
- 1234 (Vklop LED2)
- 5460 (izklop LED1)
- 1230 (izklop LED2)
- 4545 (utripanje LED3 vklop)
- 4540 (utripanje LED3 izklop)
- drugo: na serijskem portu naj se izpiše: poskusi ponovno
*/
#define LED1 8
#define LED2 9
#define LED3 10

#define KODA1_on 5461
#define KODA1_off 5460
#define KODA2_on 1234
#define KODA2_off 1230
#define KODA3_on 4545
#define KODA3_off 4540

 //_on 4545 //uporabi funkcijo milis

unsigned long trenutniCas;
int zakasnitev = 400;

void setup() {
  Serial.begin(9600);
  Serial.println("Vpiši kodo:");
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  trenutniCas = millis();
}

void loop() {
  static bool UTRIP3 = false;
  if(Serial.available()){
    char vpis[5];
    int steviloZnakovVpis = Serial.readBytes(vpis, 4); // preberemo 4 znake v seznam vpis
    if(steviloZnakovVpis == 4){
      vpis[4] = '\0'; // zaključni znak - terminator seznam tipa char
      int stevilka = atoi(vpis);
      switch (stevilka) {
        case KODA1_on:
          Serial.println("LED1 vklop");
          digitalWrite(LED1, HIGH);
          break;
        case KODA1_off:
          Serial.println("LED1 izklop");
          digitalWrite(LED1, LOW);
          break;
        case KODA2_on:
          Serial.println("LED2 vklop");
          digitalWrite(LED2, HIGH);
          break;
        case KODA2_off:
          Serial.println("LED2 izklop");
          digitalWrite(LED2, LOW);
          break;
        case KODA3_on:
          Serial.println("utripanje vklop");
          UTRIP3 = true;
          break;
        case KODA3_off:
          Serial.println("utripanje izklop");
          UTRIP3 = false;
          digitalWrite(LED3,LOW);
          break;
        default:
          Serial.println("poskusi ponovno");
          while(Serial.available()) {
            Serial.read();
          }
      }
    }
  }
static bool m = false; 
if (((millis() - trenutniCas) > zakasnitev) && UTRIP3){
  m = !m;
  digitalWrite(LED3,m);
  trenutniCas = millis();
}
}