Buongiorno a tutti.
Utilizzando la libreria pymodbus ho creato uno script che legge un dispositivo di Input a 16 ingressi e fino a qui tutto liscio. Volendo interrogare continuamente il dispositivo l'unica soluzione che ho trovato è aggiungere un ciclo while a:
com = {"port":"COM5","baudrate":9600,"parity":'N',"bytesize":8,"stopbits":1,"method":"rtu","timeout":1} #dizionario contenente le caratteristiche di comunicazione
dati = {"nodo":1,"funzione":2,"indirizzo":0,"punti":16,"valore":[],"endianness":"L"} #dizionario contente i dati Modbus da inviare
IN = ComandiModBus(com) # istanziamento dell'oggetto IN della classe ComandiModbus figlia della classe pymodbus.client.sync
while True: # ciclo while aggiunto
listaBool = IN.read(dati) #carico sulla lista "listaBool" i valori letti
Il problema è che il ciclo while è bloccante e vorrei poter eseguire altre funzioni durante queste "chiamate".
Esiste un metodo per eseguire delle funzioni in background?
Ho provato i thread ma non riesco a farli funzionare con pyqt5 (finestra nella quale vorrei rappresentare lo stato degli ingressi del dispositivo di Input) in particolare appena creo l'oggetto QApplication(sys.argv) lo script crasha

Grazie