vielen Dank für dein Code Beispiel. Ich habe leider nur noch ein Problem. Ich hoffe du hast dafür auch eine Idee.
Ich zeige dir mal eben ein kleines Code Beispiel, das zeigt es wohl am besten:
Code: Select all
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.uic import*
import threading
from time import sleep
#dein Code Beispiel
Inputs = 0 # this is 2 bytes (INT) or any other type of data which holds the input states of the DIO
Outputs = 0 # this is 2 bytes (INT) or any other type of data which holds the output states of the DIO
def IO_Thread():
global Inputs
global Outputs
#init this thread
# opening piControl interface
f=open("/dev/piControl0","wb+",0)
print("driver successfully opened!")
while 1:
#poll DIO inputs
f.seek(InputOffsetDIO1) # do replace the "InputOffsetDIO1" with the offset in your configuration!
x=f.read(2)
Inputs = x[0] + 256 * x[1] # works only in python 3. For python 2 you will need to use struct library to get numbers out of the byte array
#set DIO outputs
f.seek(OutputOffsetDIO1) # do replace the "OutputOffsetDIO1" with the offset in your configuration!
x=(Outputs).to_bytes(2, 'little') # this works only with python 3. Process image is organized in little Endian!
f.write(x)
sleep(0.1) # do not loop with maximum velocity in order to give the system a chance to do other stuff...
thread2 = threading.Thread.Thread(target=IO_Thread)
thread2.start()
app = QApplication(sys.argv)
from = loadUi("MeineGUI")
from.show()
sys.exit(app.exec_())
Ich verstehe es so, dass ich den Thread für die RevPi Signale starte. Dann baue ich mir eine Applikation, lade meine GUI und den Rest des Programms wird in der app.exec_() Funktion verweilt.
Doch wie kriege ich jetzt meine Signale und Auswertungen in der app.exec_() Funktion ausgeführt?
In "MeineGui" steckt ja nur meine classe zum Bau des Aussehens meiner Oberfläche.
Ich kann jetzt hier noch Signale definieren damit ich bei einem Knopfdruck in eine Funktion komme, aber dass ist ja was anderes.
Ich weiss jetzt nicht genau, wie ich mit den GLOBALEN Variablen meine nötigen Funktionen auslösen kann, da ich ja hauptsächlich in app.exec_() stecke.
Hast du da vielleicht noch eine Idee?