[QT4] Programmdesign mit QThread
Verfasst: 18. Januar 2006 11:30
Moin,
ich bin gerade dabei ein Programm zu schreiben, welches über eine USB Hardware 32 I/O Pins abfragt. Für die USB Hardware liegt mir eine Linux und eine Windows Bibliothek vor, die ich in einer eigenen C++ Klasse gekapselt habe. Ein Object dieser Klasse stellt also meine Hardware dar. Ich habe dort nun verschiedene Read und Write Methoden, um die Ports zu lesen bzw. zu schalten. Soweit so gut.
Mein Programm soll nun über diese Hardware per Lichtschranke Zeiten messen und auch LEDs und Readrelais schalten.
Meiner Meinung nach sollte dies alles nicht in der GUI passieren sondern in einen Thread ausgelagert werden. Ich stelle mir das so vor, das dieser Thread ein Signal an die GUI sendet, wann sich was an den Eingängen geändert hat. Was mit diesen Daten zu passieren hat, entscheidet dann wieder die GUI. Gleiches gilt für die Ausgänge. Entscheidet die GUI, das ein Ausgang geschaltet wird, sendet diese ein Signal an den Thread, der dann dies auf der Hardware umsetzt.
Da ich das hier noch sehr allgemein gehalten habe, folgende Frage: Geht das so wie ich das vorhabe? Oder mache ich einen grundlegenden Gedankenfehler? Wie würdet Ihr ein solches Problem angehen?
ich bin gerade dabei ein Programm zu schreiben, welches über eine USB Hardware 32 I/O Pins abfragt. Für die USB Hardware liegt mir eine Linux und eine Windows Bibliothek vor, die ich in einer eigenen C++ Klasse gekapselt habe. Ein Object dieser Klasse stellt also meine Hardware dar. Ich habe dort nun verschiedene Read und Write Methoden, um die Ports zu lesen bzw. zu schalten. Soweit so gut.
Mein Programm soll nun über diese Hardware per Lichtschranke Zeiten messen und auch LEDs und Readrelais schalten.
Meiner Meinung nach sollte dies alles nicht in der GUI passieren sondern in einen Thread ausgelagert werden. Ich stelle mir das so vor, das dieser Thread ein Signal an die GUI sendet, wann sich was an den Eingängen geändert hat. Was mit diesen Daten zu passieren hat, entscheidet dann wieder die GUI. Gleiches gilt für die Ausgänge. Entscheidet die GUI, das ein Ausgang geschaltet wird, sendet diese ein Signal an den Thread, der dann dies auf der Hardware umsetzt.
Da ich das hier noch sehr allgemein gehalten habe, folgende Frage: Geht das so wie ich das vorhabe? Oder mache ich einen grundlegenden Gedankenfehler? Wie würdet Ihr ein solches Problem angehen?