// program prebere 3 znake (ASCII koda), ki jih pretvorimo v številčno vrednost

/*int ledPin = 11;
int utrip = 0;
int vrednost;

void setup() {
  Serial.begin(115200); // 9600 je hitrost prenosa podatkov, počasnejši od tega
  Serial.println("Vpisi stevilo: ");
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (Serial.available()) {// Serial available : ali je v buffer prišel znak
    char znak = Serial.read(); // Serial read : prebere buffer in izpiše posamezen znak
    if (znak >= '0' && znak <= '9') { // '0' = 48
      vrednost = vrednost * 10 + (znak - '0');
    }
    else if (znak == 10) {// enter po ASCII je zap. št 10
      utrip = vrednost;
      Serial.println(utrip);
      vrednost = 0;
    }
  }
  utripanje (utrip);
}

void utripanje(int x) {
  digitalWrite(ledPin, HIGH);
  delay(x);
  digitalWrite(ledPin, LOW);
  delay(x);
}*/


// program prebere ASCII znak
// 1 - izpiše se ena, - utrip 1X
// 2 - izpiše se dva, - utrip 2X
// + - izpiše se +, - LED on
// - - izpiše se -, - LED off


/*int ledPin = 11;
int utrip = 0;
int vrednost;

void setup() {
  Serial.begin(115200);
  Serial.println("Vpisi stevilo: ");
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (Serial.available()) {
    char znak = Serial.read();
    switch (znak) {
      case '1':
        Serial.println("Ena");
        utripanje();
        break;
      case '2':
        Serial.println("Dva");
        utripanje();
        utripanje();
        break;
      case '+':
        Serial.println("+");
        digitalWrite(ledPin, HIGH);
        break;
      case '-':
        Serial.println("-");
        digitalWrite(ledPin, LOW);
        break;
      case '\n':
        Serial.println("Ty");
        break;
      default:
        Serial.println("Ni pravi znak.");
        break;
    }
  }
}

void utripanje() {
  digitalWrite(ledPin, HIGH);
  delay(500);
  digitalWrite(ledPin, LOW);
  delay(500);
}*/


// preko serijskega porta preberi niz znakov (5 števil) in jih napiši v seznam (tipa char)
// končni seznam pretvori v celo število

/*int ledPin = 11;
int utrip;
char seznam[6]; // seznam znakov
int index = 0; // indeks seznam

void setup() {
  Serial.begin(115200);
  Serial.println("Vpiši niz števil: ");
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if (Serial.available()){
    char znak = Serial.read();
    if (index < 5 && znak >= '0' && znak <= '9') {
      seznam[index ++] = znak;
    }
    else {
      seznam[index] = 0; // seznam zaključimo z 0
      utrip = atoi(seznam); // pretvorba str v int
      Serial.println(utrip);
      index = 0;
    }
  }
  utripanje (utrip);
}

void utripanje (int x) {
  digitalWrite(ledPin, HIGH);
  delay(x);
  digitalWrite(ledPin, LOW);
  delay(x);
}*/

//preberi tri števila, ki so ločena z vejico (45,123,35)

#define SEZNAMstevil 3
int seznamIndex = 0; // indeks stevila, locenega z vejico
int stevilo[SEZNAMstevil]; // seznam, v katerega zapišemo vsa števila

void setup() {
  Serial.begin(9600);
  Serial.println("Vpiši tri števila, ločena z vejico: ");
}

void loop() {
  if (Serial.available()) {
    char znak = Serial.read();
    if (znak >= '0' && znak <= '9') {
      stevilo[seznamIndex] = (stevilo[seznamIndex] * 10) + (znak - '0');
    }
    else if (znak == ',') {
      if (seznamIndex < SEZNAMstevil - 1) {
        seznamIndex ++;
      }
    }
    else {
      Serial.print("Seznam stevil: ");
      Serial.println(seznamIndex + 1);
      for (int i = 0; i <= seznamIndex; i++) {
        Serial.println(stevilo[i]);
        stevilo[i] = 0; // lahko preberemo naslednji niz števil
      }
      seznamIndex = 0; // preberemo nova tri števila
    }
  }
}