Ablauf-, Interrupt- und GUI-Gesteuertes Programm umsetzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DaZeller
User
Beiträge: 14
Registriert: Sonntag 8. Februar 2015, 21:05

Hallo zusammen,

ich schreibe gerade an einem Programm (eine Art fotobox) um mit dem Raspberry-Pi Bilder zu machen und diese zu Verarbeiten.
Um etwas evtl. mein Problem besser zu verstehen hier mal eine ungefähre Auflistung des Ablaufs.

- Der Raspberry ist quasi auf Stand-by und wartet auf den Start vom User über GPIO --> Interrupt
- Anschließend triggert der Pi via GPIO ein paar Fotos --> Ablauf
- Sind die Fotos im Kasten baue ich mittels PIL eine Art Collage aus den Aufnahmen --> Ablauf
- Nun Soll der User Gelegenheit Bekommen zu der Collage noch einen Persönlichen text hinzu zu fügen --> GUI
- Die User-Eingabe endet duch betätigung eines Buttons --> GUI
- Jetzt wird die Collage mit der User-Eingabe vervollständigt --> Ablauf
- Anschließend soll der User Sein Werk präsentiert bekommen --> GUI
- Danach werden alle bisherigen Werke in Zufälliger Reihenfolge angezeigt und der Raspberry geht wieder zurück auf Anfang--> GUI / Ablauf

Die Einzelnen Programmfrakmente habe ich soweit geschrieben und laufen auch soweit zu meiner Zufriedenheit.
- Signal am GPIO löst Interrupt aus und startet somit meinen Programmablauf zum Triggern der GPIO Ausgänge
- Zusammenstellen der Collage mit PIL funktioniert auch
- Auch eine (zumindest notdürftige) GUI habe ich mir mit TKinter zusammen geschrieben bekommen

Ich mache mir jetzt aber schon seid Tagen einen Knoten auf's Hirn wie ich das jetzt alles unter eien Hut bekomme. :? :?:
Wo und vor allem wie mache ich da die Schnittstellen von GUI zum Programmablauf?!?

Konkret hänge ich an folgendem: :(
- Wie öffne ich ein Fenster, frage darin ein paar Usereingaben ab und beende das fenster mit einem Klick auf einen Button?
- Bin ich auf dem Holzweg, das Programm so Ablauf gesteuert (fast schon eine Art Schrittkette wie bei der SPS) anzugehen? (Falls ja, Was wäre da die bessere Herangehensweise?)

Ich Bedanke mich schonmal vorab ganz Herzlich für eure Tipps und Hinweise.

viele Grüße

DaZeller
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

DaZeller hat geschrieben:Konkret hänge ich an folgendem: :(
- Wie öffne ich ein Fenster, frage darin ein paar Usereingaben ab und beende das fenster mit einem Klick auf einen Button?
- Bin ich auf dem Holzweg, das Programm so Ablauf gesteuert (fast schon eine Art Schrittkette wie bei der SPS) anzugehen? (Falls ja, Was wäre da die bessere Herangehensweise?)
zu 1.)
Das schlägst Du am besten in der Doku Deines GUI-Toolkits nach.

zu 2.)
Das hängt davon ab, wer die Kontrolle übernehmen soll - wenn alle Funktionalität unter GUI-Kontrolle soll, würde man den Ablauf "auf den Kopf stellen", also weg von der Ablaufsteuerung im eignen main (Dein batch-Ablauf) hin zur Ereignissteuerung durch das GUI-Toolkit. Da Du einen konkreten Ablauf vorgibst, würde man mit GUI bei einer Art Wizard landen. Allerdings bietet eine ereignisgesteuerte Applikation mehr Freiheiten - Du könntest auch den strikten Ablauf aufgeben und in der Oberfläche die Funktionalitäten separat präsentieren. Dann kann der Nutzer halt Bilder schiessen, diese sammeln (mit Vorschau) und bei Bedarf Kollagen bauen lassen usw.
DaZeller
User
Beiträge: 14
Registriert: Sonntag 8. Februar 2015, 21:05

Hallo jerch,

Danke für diene Rückmeldung.

Die Lösung zu 1.) ist ganz banal ein

Code: Alles auswählen

window.destroy()
Zu 2.) bin ich jetzt noch immer nicht so ganz der Held, ich glaube aber ich bekomme es hin, wenn ich mich relativ strickt an meinem Ablauf entlanghangele und die GUI nur kurz bei Bedarf aufrufe und anschließend gleich wieder schließe.
Antworten