View difference between Paste ID: uXbH8Q7H and didZGSeh
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
//-----------------------------------------------------------------------------