10.10.2010, 20:09
Ich habe hier zwei Programmversionen programmiert und frage mich nun, ob das bei Main_v2.vi so richtig ist, also guter Stil? Es funktioniert zwar, aber ich bin mir nicht sicher, weil ich eher rumgespielt und getestet habe.
Worum geht es?
1. Main_Prog_v1.vi:
Im consumer loop wird einmal abgefragt, ob es ein Targetvolumen geben soll (Set Target) und dann werden die Target properties mitgeteilt. Das passiert innerhalb des grünen error-cases.
Nachteil dieser Version: Ändert der User etwas, wird dies erst beim nächsten Aufruf von "infuse" sichtbar. Die Pumpe zeigt auf dem Display erstmal keine Veränderung sofort an.
2. Main Prog_v2.vi:
Ich habe einen Eventcase oben im Producer-Loop eingefuegt, der Value changed "Target properties" und "Set target" hat. (Nebenfrage:Mir kommt es so vor, als dass dieses Event ausgeführt wird, wenn es entweder eine Veränderung im Target properties gab ODER im Set target. Stimmt das oder ist die logische Verknüpfung von zwei Parametern im Event case eine andere?)
Stimmt das so mit der Programmierung, also keine komischen Fehler oder race conditions mit diesem Event case?
Wie zuvor gibt es Set target und Target properties im Consumer Loop. Mit dem Eventcase zeigt die Pumpe auf dem Display aber sofortige Änderungen vom User an. Das gab es in Fall 1 nicht.
Die Idee war einfach:
Wenn set target =off gewählt worden ist und der User an den Target properties rumwurschtelt, z.b. das Volumen erhöht, soll nichts passieren, das Display soll immer noch zeigen, no target selected.
Wenn set target=on und der User an den Target properties rumwurschtelt, sollen diese aktualisiert werden im Pumpendisplay.
Ich dachte eventuell, das mit zwei Event cases umzusetzen, die sich gegenseitig triggern, aber das hat mir einen Knoten im Gehirn verpasst. Deswegen wollte ich einmal um Rat fragen.
Danke schoen.
Gruesse
blue
[attachment=29862]
Worum geht es?
1. Main_Prog_v1.vi:
Im consumer loop wird einmal abgefragt, ob es ein Targetvolumen geben soll (Set Target) und dann werden die Target properties mitgeteilt. Das passiert innerhalb des grünen error-cases.
Nachteil dieser Version: Ändert der User etwas, wird dies erst beim nächsten Aufruf von "infuse" sichtbar. Die Pumpe zeigt auf dem Display erstmal keine Veränderung sofort an.
2. Main Prog_v2.vi:
Ich habe einen Eventcase oben im Producer-Loop eingefuegt, der Value changed "Target properties" und "Set target" hat. (Nebenfrage:Mir kommt es so vor, als dass dieses Event ausgeführt wird, wenn es entweder eine Veränderung im Target properties gab ODER im Set target. Stimmt das oder ist die logische Verknüpfung von zwei Parametern im Event case eine andere?)
Stimmt das so mit der Programmierung, also keine komischen Fehler oder race conditions mit diesem Event case?
Wie zuvor gibt es Set target und Target properties im Consumer Loop. Mit dem Eventcase zeigt die Pumpe auf dem Display aber sofortige Änderungen vom User an. Das gab es in Fall 1 nicht.
Die Idee war einfach:
Wenn set target =off gewählt worden ist und der User an den Target properties rumwurschtelt, z.b. das Volumen erhöht, soll nichts passieren, das Display soll immer noch zeigen, no target selected.
Wenn set target=on und der User an den Target properties rumwurschtelt, sollen diese aktualisiert werden im Pumpendisplay.
Ich dachte eventuell, das mit zwei Event cases umzusetzen, die sich gegenseitig triggern, aber das hat mir einen Knoten im Gehirn verpasst. Deswegen wollte ich einmal um Rat fragen.
Danke schoen.
Gruesse
blue
[attachment=29862]