1
Programmazione (Gambas 2) / [RISOLTO]: Lettura dati provenienti da Arduino mediante porta Seriale
« il: 27 Dicembre 2012, 23:44:22 »
Salve a tutti,
premetto che non sono proprio alle primissime armi di programmazione, tuttavia non riesco a venire a capo ad un problema relativo alla lettura di dati dalla porta seriale.
Lo scenario: il mio Arduino mi invia una sequenza di test tramite seriale del tipo: #123456789! dove # e ! sono dei char di start e stop.
Ora, per quanto abbia cercato in lungo e in largo nei forum di mezzo mondo, non riesco a trovare la strada per "estrarre" questo dato pulito.
Naturalmente ho settato l'apposito componente con la velocità di default di Arduino (9600), la porta seriale giusta, etc.
CREDO che il problema nasca dal fatto che il metodo _Read del componente SerialPort viene eseguito in loop fino a quando la porta non viene esplicitamente chiusa. Però non c'è sincronia con Arduino. Pertanto, spesso della stringa leggo solo 3/4 caratteri e shiftati rispetto al pattern che invio.
Il dato "sembra" si possa estrarre se riesco a far accumulare una serie di "loop" su una variabile.. Ottengo qualcosa del tipo "456789!#123456789!#123" e da qui, con un po' di lavoro, si dovrebbe riuscire a pulire la sola parte "numerica".
Veramente questa è l'unica strada, oppure mi sono perso qualcosa?
PS.
Con Arduino posso fare come mi pare.. nel senso che non devo per forza utilizzare la forma che ho individuato; posso anche fare qualcosa del tipo: # \r\n, 1\r\n, etc.
Grazie per l'attenzione.
premetto che non sono proprio alle primissime armi di programmazione, tuttavia non riesco a venire a capo ad un problema relativo alla lettura di dati dalla porta seriale.
Lo scenario: il mio Arduino mi invia una sequenza di test tramite seriale del tipo: #123456789! dove # e ! sono dei char di start e stop.
Ora, per quanto abbia cercato in lungo e in largo nei forum di mezzo mondo, non riesco a trovare la strada per "estrarre" questo dato pulito.
Naturalmente ho settato l'apposito componente con la velocità di default di Arduino (9600), la porta seriale giusta, etc.
CREDO che il problema nasca dal fatto che il metodo _Read del componente SerialPort viene eseguito in loop fino a quando la porta non viene esplicitamente chiusa. Però non c'è sincronia con Arduino. Pertanto, spesso della stringa leggo solo 3/4 caratteri e shiftati rispetto al pattern che invio.
Il dato "sembra" si possa estrarre se riesco a far accumulare una serie di "loop" su una variabile.. Ottengo qualcosa del tipo "456789!#123456789!#123" e da qui, con un po' di lavoro, si dovrebbe riuscire a pulire la sola parte "numerica".
Veramente questa è l'unica strada, oppure mi sono perso qualcosa?
PS.
Con Arduino posso fare come mi pare.. nel senso che non devo per forza utilizzare la forma che ho individuato; posso anche fare qualcosa del tipo: # \r\n, 1\r\n, etc.
Grazie per l'attenzione.