Kód: Vybrat vše
10:30:21.442 -> Přijatý řetězec: K1|P1|12|35|1|53|2|1
10:30:21.489 -> Kanal: K
10:30:21.489 -> číslo: 1
10:30:21.542 -> Program: P
10:30:21.542 -> číslo: 1
10:30:21.542 -> Hodina: 12
10:30:21.542 -> Minuta: 35
10:30:21.542 -> FadeDIM: 1
10:30:21.542 -> DIM: 53
10:30:21.589 -> Režim kanálu: 2
10:30:21.589 -> Typ kanálu: 1
10:30:21.642 -> Součet: 0
10:30:21.642 -> --------------------------
"switch quantity not an integer".
To můžu vstupní proměnnou použít jen celočíselnou u switch? Když ji změním na celočíselnou, tak zase řve case:
"conversion from pointer type 'const char (*)[3]' to arithmetic type 'int' in a constant expression".
Kód: Vybrat vše
// testovací řetězec
//P1|K1|12|35|1|53|2|1
char prijatyRetezec[23]; //P1|K1|hh|mm|FD|DI|RE|TY
int citac;
char* item;
String dataKulozeni[8];
void setup() {
Serial.begin(9600);
}
void loop() {
citac = 0;
while (Serial.available() > 0)
{
prijatyRetezec[citac] = Serial.read();
delay(10);
if (prijatyRetezec[citac] == '\0') break;
citac++;
}
prijatyRetezec[citac] = '\0';
// ------------------------
if (citac > 0) {
Serial.print("Přijatý řetězec: ");
Serial.println(prijatyRetezec);
int x = 0;
item = strtok(prijatyRetezec,"|");
while(item != NULL)
{
dataKulozeni[x] = item;
item = strtok(NULL, "|");
x++;
}
//int test0 = dataKulozeni[0].toInt();
int test1 = dataKulozeni[0][1];
test1 = atoi(test1);
int test2 = dataKulozeni[1][1];
test2 = atoi(test2);
// int test = test0 + test1 + test2;
Serial.print("Kanal: ");
Serial.println(dataKulozeni[0][0]);
Serial.print("číslo: ");
Serial.println(dataKulozeni[0][1]);
Serial.print("Program: ");
Serial.println(dataKulozeni[1][0]);
Serial.print("číslo: ");
Serial.println(dataKulozeni[1][1]);
Serial.print("Hodina: ");
Serial.println(dataKulozeni[2]);
Serial.print("Minuta: ");
Serial.println(dataKulozeni[3]);
Serial.print("FadeDIM: ");
Serial.println(dataKulozeni[4]);
Serial.print("DIM: ");
Serial.println(dataKulozeni[5]);
Serial.print("Režim kanálu: ");
Serial.println(dataKulozeni[6]);
Serial.print("Typ kanálu: ");
Serial.println(dataKulozeni[7]);
Serial.print("Součet: ");
Serial.println(test1 + test2);
Serial.println("--------------------------");
if (dataKulozeni[0] == "K1") (Serial.println("test0 má K1"));
/* switch (dataKulozeni[0]) {
case "K1":
Serial.println("Kanál K1");
switch (dataKulozeni[1] == "P1") {
case(1):
Serial.println("Program P1");
break;
}
break;
}*/
}
}