SHOW:
|
|
- or go back to the newest paste.
1 | - | for (int i=0;i<3;i++) { // while (pch != NULL) { |
1 | + | //------------------------------------------------------------------------ |
2 | while (Serial.available()) { | |
3 | - | pch = strtok (NULL, ","); |
3 | + | char inChar = Serial.read(); |
4 | serialInput += inChar; | |
5 | ||
6 | - | int n = atoi(pch); |
6 | + | // quando ricevo il carattere di fine linea, significa che ho ricevuto tutto |
7 | if (inChar == '\n') { | |
8 | ||
9 | char * pch; | |
10 | - | Serial.print("punto 4"); |
10 | + | Serial.print("Ho ricevuto: "); |
11 | Serial.println(serialInput); | |
12 | ||
13 | // troviamo il primo "token" poi cerchiamo i successivi con un ciclo while | |
14 | - | // troviamo i token successivi |
14 | + | pch = strtok ((char*)serialInput.c_str(), " ,"); |
15 | ||
16 | - | // pch = strtok (NULL, ","); |
16 | + | for( unsigned int cont = 0; cont<3; cont++){ |
17 | - | cont++; |
17 | + | // salto il primo "," e troviamo i token successivi |
18 | - | |
18 | + | pch = strtok (NULL, " ,"); |
19 | - | } |
19 | + | |
20 | // Se la conversione non è possibile il risultato sarà 0 | |
21 | ||
22 | // L'istruzione che genera l'eccezione è atoi() quando non c'è una stringa valida nella variabile pch. | |
23 | // Per evitare questo problema, andiamo a controllare pch prima di tentare la conversione, | |
24 | // se pch è vuoto interrompo il ciclo for con l'istruzione break e continuo con il resto del programma. | |
25 | int n = 0; | |
26 | if(pch != NULL) | |
27 | n = atoi(pch); | |
28 | else | |
29 | break; | |
30 | ||
31 | values[cont] = n; | |
32 | Serial.print("Valore n° "); | |
33 | Serial.print("punto 4-"); | |
34 | Serial.print(cont); | |
35 | Serial.print(": "); | |
36 | Serial.println(values[cont]); | |
37 | } | |
38 | serialInput = ""; | |
39 | ||
40 | } | |
41 | } | |
42 | //----------------------------------------------------------------------------- |