Hallo LV,
bezugnehmend auf
den Beitrag von GerdW, moechte ich mein Programm komplett neu schreiben und "Designer Patterns" nutzen. Ganz sicher, wie es geht, bin ich noch nicht, deswegen habe ich erstmal Anforderungen versucht zu formulieren. Grundsaetzlich muss das Programm leicht erweiterbar sein, daher will ich versuchen, es so ordentlich wie moeglich zu programmieren.
1. Das Programm muss über Stunden laufen und dynamische Abfragen behandeln koennen. Wenn sich etwas aendert, soll das Programm damit fertig werden.
Ich glaube, ich muss es dafür in eine große While-Schleife setzen.
2. GerdW schreibt "schön wäre es, wenn du dein UI von deiner Arbeitsschleife trennst und ein Producer-Consumer-Pattern einführst. Und im Consumer dann noch eine State-Machine zur Abarbeitung deiner verschiedenen States!"
Ich habe mir mal UI in LabView angeschaut. Das sind ja while-Schleifen mit Eventstruktur. Der Plan ist jetzt mehrere "Value changed" in die Eventstruktur einzusetzen. Der User hat dann Knoepfe, um Ereignisse auszuloesen. Hierzu eine Frage: Muss ich die Eventdaten definieren wie in
Vortrag p. 50 und sie dann in eine Queue fuettern oder kann der User erst den Knopf druecken, dann wird das Event definiert und an die Consumer-Schleife per Queue weitergereicht? Letzteres scheint mir irgendwie logischer, sonst muesste ich Platzhalter fuer Events vorhalten?
In einer zweitenwhile-Schleife sollen dann die Ereignisse abgearbeitet werden, wenn sie als ausgeloest detektiert worden sind.
Ich hoffe, diese und die Schleife mit den UserEvents ist zusammen ein Producer & Consumer-Pattern?
3. Neben User-Event im User-Interface habe ich noch Geraeteeigenschaften zu setzen und staendig abzufragen. Einige muessen nur einmal am Anfang gesetzt werden, andere können sich nach Usereingabe ständig ändern, müssen dementsprechend dann auch abgefragt werden und dies nicht nur, nachdem die Aktion gelaufen ist, sondern während diese läuft zur Kontrolle. Wo würdet ihr empfehlen, diese Sachen einzubauen?
Kopfzerbrechen bereitet mir auch, eine Art Logprogramm fuer die Pumpe zu integrieren. Dieses Programm soll die Aktionen des Users mitloggen und nach verschiedenen Punkten auswerten. Wo koennten dies denn bitte einen Platz finden?
Danke schoen fuer Eure Antworten und Hinweise.
Gruesse
Blue