@
Thico
A proposito dell'idea di cui abbiamo discusso sull'interfaccia Labview con il micro.
Potrei modificare il codice attuale del micro in modo che che tutte le righe di testo attualmente mandate sulla seriale comincino con un carattere di controllo (ad esempio un '%') che le classifica come messaggi standard da riversare su una finestra di output
Quando l'utente manda via seriale un messaggio al micro, diciamo "getdata"; non appena il micro è pronto ad inviare i dati richiesti, invia sulla seriale un messaggio per avvertire che è pronto e che seguiranno i dati.
Tieni presente che tra l'invio del "getdata" al micro e la sua risposta potrebbero arrivare altri messaggi standard.
La risposta del micro sarà costituita
1) da una riga di testo che inizia con il carattere speciale
'@' (per distinguerla dai messaggi standard che iniziano con '%') seguito dalla sequenza di caratteri "readytosend" e terminata dal carattere newline '\n' :
"@readytosend\n"
2) da un carattere speciale STX (ASCII
'\x02') che indica che verrà spedito un file seguito dal nome del file terminato da newline, ad esempio:
"\x02file1.txt\n"
3) dal flusso di caratteri che costituiscono il file di testo
4) dal carattere di fine testo ETX (ASCII
'\x03') che indica la fine del file
5) dal carattere speciale STX se c'è un'altro file da spedire (ed in tal caso tutto di ripete come dal punto 2 al punto 4) oppure dal carattere speciale EOT (ASCII
'\x04') che indica la fine della trasmissione e la ripresa dell'invio dei messaggi standard.
Praticamente il tuo programma dovrebbe ascoltare continuamente la seriale e
a) se gli arriva il carattere
'%' riversare tutto ciò che segue fino al carattere di newline direttamente sullo schermo (in una finestra)
b) se gli arriva il carattere
'@' gestire tutto ciò che segue secondo i punti 1)-5) fintanto che non gli arriva il carattere STX e a quel punto si rimette in ascolto standard.
Che ne dici? Naturalmente, dovendo scrivere tu il software lato PC, decidi tù la sequenza ed il formato dei messaggi che il micro deve inviare. Quello sopra è solo un esempio.