[Python] [python] Help Lettura da Seriale

Manlio Perillo manlio.perillo a gmail.com
Lun 4 Nov 2013 14:40:17 CET


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



Maggiori informazioni sulla lista Python