//naloga 8: program prebere znake (števke) iz serijskega porta. ; uporabi serial.readBytesUntil().
//Med znaki se nahajajo tudi vejice.
//seznam arzdeli na posamezne besede (številke) kot določajo vejice; uporabi strtok().
// številke na koncu pretvori v integer
#define MAKS_STEVILK 5 // največ 5 številk
#define BUFFEF_SIZE 50 //st. znakov začasnega seznama za branje znakov
void setup(){
Serial.begin(9600);
Serial.println("Vpiši niz znakov: ");
}
int index = 0;
int seznamStevilk[MAKS_STEVILK];
void loop(){
if(Serial.available()){
char buffer[BUFFEF_SIZE];
memset(buffer, 0, sizeof(buffer));
Serial.readBytesUntil('\n', buffer, BUFFEF_SIZE);
Serial.println(buffer);
//seznam razdelimo na stevilke, ločene z vejico
char * token = strtok(buffer, ',');
while(token != NULL && index < MAKS_STEVILK){
seznamStevilk[index++] = atol(token);
token = strtok(NULL, ',');
}
//izpis vsebine seznama seznamStevilk
Serial.println("Seznam stevilk");
for(int i = 0; i < index; i++) Serial.println(seznamStevilk[i]);
}
}
//naloga7: s pomočjo funkcije strtok() razdeli seznam na posamezne podsezname. ločilni zank so vejice.
/*
char imena[] = "Janko!Meta?,00,Nika";
char deli[] = ",.!?";
void setup(){
Serial.begin(9600);
Serial.println("Razdeli seznam na posamezna imena.");
char * token = strtok(imena, deli);
while(token != NULL){
Serial.println(token);
token = strtok(NULL, deli);
}
}
void loop(){
}*/
//program lahko iz serijskega porta prebere do 50 znakov in jih zapiše v seznam tipa char.
//Vsebino seznama zapišemo na serijski port
/*
#define MAKSsteviloZnakov 50
char seznam[MAKSsteviloZnakov];
bool novPodatek = false; // preberemo vse podatke iz porta
int stevec = 0;
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LED_COLUMNS 20
#define LCD_LINES 2
void setup() {
Serial.begin(9600);
Serial.println("Vpiši niz znakov");
lcd.init();
lcd.setCursor(0,0);
lcd.print("Vpiši niz znakov")
}
void loop() {
if(Serial.available()){
Serial.readBytesUntil('\n', seznam, MAKSsteviloZnakov);
novPodatek = true;
}
if (novPodatek) {
ldc.setCursor(0,0);
lcd.print("Vpisani znaki so: ");
lcd.setCursor(0,1);
lcd.print(seznam);
Serial.print("Vpisani znaki so: ");
Serial.println(seznam);
novPodatek = false;
for(int i = 0; i<MAKSsteviloZnakov; i++){
if(seznam[i] == ',') stevec++;
}
//seznam se mora izbrisati
for(int i = 0; i<MAKSsteviloZnakov; i++) seznam[i] = 0;
Serial.println(stevec);
}
}
*/