Forum
>>
Programmazione Python
>>
Scripting
>>
Ricezione dati seriale
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da malcomx |
2016-09-30 14:46:26 - Ricezione dati seriale
|
Salve a tutti ho un problema che mi affligge. Sto dialogando con un device che in seriale mi invia una sequenza di 11 dati tutti su singola riga.Esempio: 23412121216etc 8)]ogni volta mi invia questi 11 dati per poi fermarsi per un tempo x.8)]Io vorrei salvare ogni volta questi dati in variabili che posso richiamare all'occorrenza tipo8)]data0, data1 etc.8)]
8)]Il codice che ho utilizzato è il seguente: class SerialThread (threading.Thread): def __init__(self): threading.Thread.__init__(self) def run (self): try: device = '/dev/ttyS5' ser = serial.Serial(device, 9600, timeout=5000) except: print "Errore seriale" while 1: try: print("Trying..."), device data = [] data = ord(ser.read()) print data except: print "Errore seriale" SerialThread().start() Grazie |
|
Scritto da Claudio_F |
2016-09-30 18:28:17 - Re: Ricezione dati seriale
|
Il codice Python va indentato correttamente per essere valido e leggibile non solo dal PC ma anche dagli altri.
Il termine "dati" è generico, vuol dire tutto e niente, dalla seriale arrivano byte (che Python2 ritorna sotto forma di stringa di byte), per avere la lista dei valori di questi byte si applica ord a ciascun elemento: data = [ord(c) for c in ser.read()]Python3 invece ritorna direttamente un oggetto bytes, se si vuole l'equivalente della lista precedente basta scrivere: data = list(ser.read()) *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
Pagina: 1
Esegui il login per scrivere una risposta.