Ciao a tutti!!
(come da titolo) vorrei sapere se esiste un qualche modo per verificare che i dati ricevuti da pc con la connessione seriale siano interi.
In pratica io ricevo degli interi dal pc con una connessione seriale e ruoto un servomotore del numero di angoli che sono stati inseriti (modulo 180 ovviamente)..
c'è un qualche modo per vedere se i valori letti da terminale dall'arduino siano degli interi o altro?..
Cosa ricevi esattamente ? Un singolo carattere ? Una array di caratteri (stringa) che rappresenta il tuo numero ? Perché le strade sono diverse ...
Guglielmo
io voglio leggere un intero che rappresenta l'angolo cui devo spostare il servomotore ma posso ricevere qualsiasi cosa..per questo devo vedere se è un intero o meno..
Negli ultimi giorni se ne è parlato un sacco:
http://forum.arduino.cc/index.php?topic=208130.0
http://forum.arduino.cc/index.php?topic=207984.0
http://forum.arduino.cc/index.php?topic=207271.0
Ma ce ne sono altre.
Poi ti consiglio questo mio articolo, dove tratto la ricezione di dati dal PC, sia di tipo numerico che non.
Se mandi i dati dal terminale del IDE non ci sono possibilitá di mandare una checksum di quello mandato. l' unica possibilitá é che usi il bit di controllo del RS232 (lo puoi mettere su pari o dispari 8O1 o 8E1 ) ma non so se lo puoi fare sul IDE. Non so nemeno come riesci a ricavare l' informazione se il dato ricevuto sia corretto il bit di controllo.
I dati trasmessi puoi controllare solo se aggiungi un dato di controllo. A secondo del tipo di dato di controllo é piú o meno grande e puó segnalare errori semplici (bit errato) o piú complessi e addiritura ricostruire il dato originale. Tutti questi controlli devi farli a lato PC con un programma che genera il dato di controllo.
Ciao Uwe
capito..speravo ci fosse un comando per controllare se il dato ricevuto fosse intero..
grazie mille per le risposte!!!
Fai il parsing dei dati e se arrivano solo numeri, ossia se i caratteri in arrivo sono compresi fra '0' (ASCII 48) e '9' (ASCII 57) allora puoi provare a ricostruire un numero.
sennò farei prima a verificare che sia un carattere/stringa..
le stringhe dell'arduino sono come le stringhe in C con '\0' come ultimo carattere?..(ora leggo anche la documentazione)
Leggi il mio articoletto che ti ho linkato, vedrai che faccio il parsing di comandi inviabili dal computer all'Arduino e verifico anche se ricevo dei numeri in determinati casi.
quale articolo dei tre?
leo72:
Poi ti consiglio questo mio articolo, dove tratto la ricezione di dati dal PC, sia di tipo numerico che non.
non l'avevo letto..XD!..grazie mille!!