Forum >> Programmazione Python >> GUI >> WxPython e comunicazione dati seriale

Pagina: 1

Buonasera, ho pensato di utilizzare python per realizzare una interfaccia grafica attraverso wxPython. Il problema di fondo è inserire ,in questa interfaccia, dei dati che vengono inviati sulla seriale e che cambiano dinamicamente.Per prendere i dati dalla seriale ho utilizzato la libreria PySerial però ancora non riesco a inserirli sulla interfaccia creata con wxPython . Qualcuno ha già avuto modo di sperimentare questa procedura anche con una semplice interfaccia?Grazie in anticipo :)
Ciao caro, ho realizzato molteplici interfacce con wxPython ed anche se non ho mai realizzato nulla che venisse da una seriale, ho comunque interagito con svariati tipi di dati e di fatto si tratta solo di gestirli. Ora non ricordo che tipi di dati ottieni (una tupla, un dizionario, etc..), ma comunque una volta ottenuti questi dati (scrivi qui un esempio di cosa ottieni), questi vanno semplicemente inseriti e/o manipolati per mostrarli. Anzi non hai nemmeno detto dove vuoi mostrarli, cioè in quale "oggetto" di wxPython.

Ricorda che è buona norma indicare su che piattaforma sei, che versione del linguaggio e della libreria stai usando, e qualunque altra informazione necessaria a dare un contesto a chi cerca di aiutarti.

Cya
Dovresti dirci che problema stai incontrando... Quello che ricevi da Pyserial è un flusso di bytes. Ovviamente non puoi "mostrare" i bytes così come sono in una GUI di wxPython, devi prima convertirli in qualcosa di "visibile": per esempio, convertirli in stringa. Questo può causare diversi grattacapi a seconda del tipo di dati che stai ricevendo e delle tecniche di lettura che usi. Ma non è un problema specifico di wxPython. Una volta convertiti i bytes in stringa, puoi senz'altro visualizzarli, per esempio, in una casella di testo.





Un altro problema tipico che posso immaginare, è che per mettersi in ascolto di una porta seriale di solito si usa un ciclo while True o qualcosa del genere... ma il problema naturalmente è che in wxPython questo blocca la GUI. Ci sono delle tecniche standard per risolvere questo problema: la più ovvia è di mettere la routine di ascolto della porta seriale in un thread separato, ma ci sono anche altre strade più "asincrone" se preferisci.





Senza sapere con più precisione il tuo problema, non saprei cosa consigliarti.







Ciao a tutti!! Grazie per la risposta e per il vostro interesse. Innanzitutto l'idea di partenza è stata quella di sviluppare un sistema di comunicazione di dati (temperatura pressione ecc.) verso un nodo ricevitore che viene realizzato con una scheda e che viene collegata al pc che tramite la seriale fornisce tutti i dati acquisiti (ad esempio sulla seriale leggo TEMPC =29,8 PREShPa=1017.06 ecc. ). L'obiettivo che mi ero posta era quello di riuscire a rappresentare questi dati su una interfaccia grafica e pensavo che python(2.7.15 ) potesse aiutarmi anche se non conosco molto bene il linguaggio. Ho visto in generale molti script che potevo adottare essendo meno esperta però non saprei come gestire questi dati sulla seriale per poterli inserire su una casella di testo della interfaccia. Questi sono dei valori che cambiano ogni 3 secondi circa; ho visto che c'è la necessità di while,thread e molte altre cose che credo di non riuscire a gestire essendo ancora alle prime armi. Per questo mi chiedevo se ci fosse già stato qualcuno che avesse avuto a che fare con un problema simile.

Vi ringrazio per il supporto!



--- Ultima modifica di Babyla in data 2018-09-19 22:05:31 ---

--- Ultima modifica di Babyla in data 2018-09-19 22:06:20 ---
Beh sì, alla fine non si tratta di uno script complicato, potrebbero essere un centinaio di righe, per dire. Però le GUI in generale sono complesse da imparare, e nel tuo caso c'è anche la complessità ulteriore dell'ascolto della seriale (che ripeto, si può risolvere con un thread o in altro modo, ma comunque va capita e risolta).


Trovare in giro una cosa del genere già fatta, non credo che esista. Ma anche se ci fosse, o te la facessi, non impareresti nulla perché non hai ancora le basi. Ti conviene studiare python con calma, seguendo un buon libro.





In ogni caso, le GUI sono la parte più complessa: se lasci perdere le GUI, allora non ci vuole niente a fare uno scriptino da due righe che stampa nella shell le letture della seriale man mano che le riceve. Se hai bisogno di "qualcosa" subito, potrebbe bastare.





Solo, ti conviene lasciar perdere python 2.7, che ormai è obsoleto. Passa a python 3, che è meglio.



Pagina: 1



Esegui il login per scrivere una risposta.