Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Hab ne Frage bezüglich Event-Cases.
Also mal kurze Einführung:
Ich kommuniziere mit einem Oszilloskop. Hab mir dafür die VIs zur Kommunikation heruntergeladen und installiert und getestet. Die laufen so weit.
Und nun möchte ich gerne Daten vom Oszilloskop einlesen und speichern. Also zweck ist dass man lange Zeit das Signal aufnimmt und sichs später anschauen kann. Und es handelt sich dabei um langsam ändernde Signal also im mHz-Bereich.
So und nu hab ich da mal ein Programm geschrieben und steh nun vor einem Problem. Ziel dieses Tasks: Nimm ...Messpunkte auf und schließ die Messung ab.
Und jetzt mal kurz wie mein Programm aufgebaut ist. Also zuerst mal ein paar Init-Sachen. Dann die Big-While. Dort drinnen mach ich im Grunde genommen alles mit Event-Cases. Auch das messen. Weiß schon, dass das nicht so schön ist, aber hab ich jetzt mal so gemacht. Und zwar messe ich nach Zeit. Das mach ich schlicht und einfach mit dem Timeout-Case. Also ich stell die Zeit des Time-outs ein und wenn einer auftritt misst er.
So und dann hab ich einen Case bei dem er mit dem messen aufhört. (Zeit auf -1 stellen für nie Timeout, Daten speichern, Knöpfe-Einstellungen vornehmen, ...) und dieser Case wird jetzt entweder durch drücken des bestimmten knopfes aufgerufen, oder als User-Event. Und zwar schau ich jedes mal im Time-out Case wie viele Messpunkte er schon hat und wenn die anzahl gleich meiner gewünschten ist, dann zünde ich das User-Event.
Also kurz zusammengefasst: Zündung eines User-Events in einem Event-Case! Problem er führt das gezündete Event nicht aus! Frage: Geht das allgemein nicht, also zünden eines Events in einem Event oder hab ich was falsch gemacht?
Und dann: Wie macht mans besser? Ich hab auch ne 2.te while gemacht in der ich quasi nur die zeit gezählt hab und dann ein Mess-Event aufgerufen hab. Das hat so auch nicht funktioniert. Aber da wars glaub ich weil gleichzeitig 2 Events gezündet wurden. Einmal wieder messen und ende!
Also kann ich das so machen wie ich mir gedacht hab, oder ist das müll und ich muss das anders machen?
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
User Event in einem Event zünden?
Schau' mal da.
Wenn das nichts hilft, dann lade doch mal Dein VI hoch.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Ja, ist ne Idee, ich geb schnell mal den betreffenden Case hier rein.
Also man sieht eben das Time-out-Event. Und unten wie eben User Events gezündet werden.
Der Event-Handler zündet einfach nur ein Event und der geht auch. Getetstet und schon verwedet. Also außerhalb eines Event-Cases.
28.08.2009, 10:42 (Dieser Beitrag wurde zuletzt bearbeitet: 28.08.2009 10:44 von theodrin.)
Aber ich hab grad ne schnell Test-Vi geschrieben. Das zünden eines Events in einem Event-Case geht da. Also wie hab ich das gemacht? Ich hab nen Taster. Der zündet ein Event. Dort drinnen hab ich einen Led die einmal toggelt ein wait von 500ms und dann wieder eine Zündung eines User-Events, welches mir in dem User Event eine Led einmal toggelt. Hmmmm....?? wieso gehts dann in dem anderen Case nicht???
Edit: Beim durchleuchten geht das anscheinend so (nicht sicher einmal gemacht!): Er geht in das Event vom Taster arbeitet das Event ab, und geht dann in das nächste Event, auch wenn ich das Event vor dem toggeln zünde. Also kurz gesagt. Er arbeitet das Event zuerst ab und dann ins nächste... Kann das stimmen?
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
User Event in einem Event zünden?
Kannst Du mal ein kleines Bsp. hochladen, das Dein Problem zeigt?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Ich bin ein vollkoffer!!
Hatte eben zwei User-Events und hab die beiden vertauscht. Hat eh funktioniert.
Ich schau jetzt lieber noch mal und dann meld ich mich noch mal.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
User Event in einem Event zünden?
:hehe:Alles klar.
Gruß Markus
' schrieb:Ich bin ein vollkoffer!!
Hatte eben zwei User-Events und hab die beiden vertauscht. Hat eh funktioniert.
Ich schau jetzt lieber noch mal und dann meld ich mich noch mal.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Sodala ich lass mein Programm jetzt grad laufen. Es geht also jetzt soweit alles.
Nur bin ich noch immer mit der Struktur etwas unzufrieden.
Also habs jetzt ein bisschen anders gemacht.
Ne 2.te while schleife, die mir quasi als Zähler dient. Dort drinnen schau ich mir immer die aktuelle Zeit an und vergleich sie so, dass wenn die eingestellte Zeit (z.B. 2s zwischen jeder Messung) überschritten wurde, dann löst mein Messevent aus. Meine Messung findet statt und in diesem Event wird auch gleich nachgesehen, ob jetzt eben die eingestellte Anzahl an Messüunkten erreicht ist, oder ob ein Autosafe durchgefürht werden soll,...
Und das scheint alles im Moment ganz gut zu klappen.
Nur kann ich mir nicht vorstellen, dass das so richtig bzw. "gut" programmiert ist.
Also so wie ich das weiß, hat man eine Event-Structure !nur! für User-Aktionen.
Diese läuft in einer while, die keine Verzögerung braucht, weil eh nur was passiert wenn Event ausgelöst wird.
Die Messung hingegegen läuft in einer eigenen While-Schleife, bzw. in einer Timed Loop. Ich habs ja zugegebenermaßen so probiert. Nur hatte ich da Probleme mit den Knöpfen "Pause", "Weiter", "Start" usw...
Also im grunde genommen mit der Steuerung. Weil wie halte ich eine Timed loop an und lass sie dann weiterlaufen?? Und wie beende ich eine Timed Loop aber starte sie später wieder neu... - - - - ohne dafür eine eigene Event-Structure zu verwenden in der die Timed Loop drinnen ist!!!!! ?????
Oder ist der Ansatz schlecht???
Wieder was gelernt. Ich habe mir ja angewöhnt, unbekannte Wörter und Begriffe zu googeln:
Vollkoffer sagt man in Österreich für Idiot.
Man lernt nie aus, vielen Dank!
LG
Torsten
"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
User Event in einem Event zünden?
Ich kenne halt "Vollpfosten".
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------