On 04/11/2013 14:13, Riccardo Brazzale wrote:
[...]
Hai ragione,
vediamo di ricapitolare:
c'e' una macchina dotata di un pulsante, un display e una porta seriale.
L'operatore deve fare delle misurazioni (in questo caso deve
determinare, attraverso lo strumento di cui è dotata questa macchina
le caratteristiche di un foglio di carta: porosità e spessore).Quando ha
posizionato il foglio, schiaccia questo pulsante e la macchina
mostra sul display i risultati.
Contemporaneamente mette gli stessi risultati a disposizione sulla seriale.
Ora, non essendoci niente collegato alla seriale, l'operatore trascrive
i dati su un foglio e poi provvede a caricarli su un foglio xls.
Ok.
Io ho proposto di mettere un PC con un programma python che via seriale
legge i dati a disposizione sulla seriale e compila in automatico il
foglio xls.
Ed è qui la gabola:
visto che io non posso far altro che andare continuamente a interrogare
la seriale per vedere se ci sono dati,
a questo punto con programma python dentro a un infinito ciclo di
lettura, e che sta mostrando sullo schermo del pc i dati letti,
dovrei poter premere questo ipotetico 'q' sulla tastiera del pc in modo
da interrompere il loop e scrivere i dati che ho raccolto dalle n
letture sul foglio xls.
Ok.
Quindi l'operatore può voler ottenere il foglio xls in qualsiasi momento
e più volte nel corso di una giornata.
La soluzione allora è abbastanza semplice.
Devi usare select, passando come files sia il descrittore associato alla
porta seriale, sia quello associato al terminale interattivo.
Quando uno dei due è pronto, leggi e gestisci i dati.
Se è pronto stdin, leggi e se la stringa è "q\n", generi il file xls.
Se è pronto /dev/ttySn, leggi a accumuli i dati in un buffer.
Se non sai come usare select, chiedi pure.
Ciao Manlio
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python