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

Rispondere a