13.08.2012, 09:12
Hallo,
Ich benutze ein VI mit While-Loop um Frequenz Generator Hardware über eine serielle Schnittstelle anzusteueren. Die Schnitstelle und das eigentliche ansteuern funktionieren.
Der Ausgangsparameter wird ganz einfach berechnet: (User-Eingabe x Constant) + Offset.
User-Eingabe ist mittels Numeric Control.
Mit Radio-Buttons selektiert der User einen Frequenz Bereich. Bei anklicken eines Buttons wird einen Preset-Wert in den Numeric Control geladen, und werden Constant und Offset (neu)initialisiert. Der Preset-Wert, Constant, und Offset werden aus einer Datei eingelesen.
Und jetzt wird's (für mich) schwierig... Der Num Control sollte beim anklicken eines Buttons nur 1 mal ge-preset werden - sonnst wird die User-Eingabe dauernd überschrieben. Deshalb habe ich die Radio-Buttons und presetten vom Num Control in einer Event-Structure untergebracht, mit Time-Out Event (ohne Time-Out benimmt es sich genau so wie ohne Event Structure).
Das funktioniert - fast! Beim anklicken eines Buttons werden tatsächlich Num Control, Constant, und Offset korrekt initialisiert. Aber... bei jeder Iteration der While-Loop, in der kein Button angeklickt wird, ist der aktuelle Button-Wert ausserhalb der Event-Structure nicht verfügbar (nur der default Wert = Button 1), und werden Constant und Offset mit dem falschen Wert überschrieben.
Was sollte ich ändern, damit es richtig funktioniert?
VI anbei (einlesen der Datei und COM-Schnittstelle habe ich rausgestrippt).
Ich benutze ein VI mit While-Loop um Frequenz Generator Hardware über eine serielle Schnittstelle anzusteueren. Die Schnitstelle und das eigentliche ansteuern funktionieren.
Der Ausgangsparameter wird ganz einfach berechnet: (User-Eingabe x Constant) + Offset.
User-Eingabe ist mittels Numeric Control.
Mit Radio-Buttons selektiert der User einen Frequenz Bereich. Bei anklicken eines Buttons wird einen Preset-Wert in den Numeric Control geladen, und werden Constant und Offset (neu)initialisiert. Der Preset-Wert, Constant, und Offset werden aus einer Datei eingelesen.
Und jetzt wird's (für mich) schwierig... Der Num Control sollte beim anklicken eines Buttons nur 1 mal ge-preset werden - sonnst wird die User-Eingabe dauernd überschrieben. Deshalb habe ich die Radio-Buttons und presetten vom Num Control in einer Event-Structure untergebracht, mit Time-Out Event (ohne Time-Out benimmt es sich genau so wie ohne Event Structure).
Das funktioniert - fast! Beim anklicken eines Buttons werden tatsächlich Num Control, Constant, und Offset korrekt initialisiert. Aber... bei jeder Iteration der While-Loop, in der kein Button angeklickt wird, ist der aktuelle Button-Wert ausserhalb der Event-Structure nicht verfügbar (nur der default Wert = Button 1), und werden Constant und Offset mit dem falschen Wert überschrieben.
Was sollte ich ändern, damit es richtig funktioniert?
VI anbei (einlesen der Datei und COM-Schnittstelle habe ich rausgestrippt).