LabVIEWForum.de - Buttonabfragen vereinfachen bzw. zusammenfassen

LabVIEWForum.de

Normale Version: Buttonabfragen vereinfachen bzw. zusammenfassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo brik,

Zitat:Ohne das Häkchen lässt sich mein Programm in der Tat weiterhin bedienen.
Genau. Nur deine Event-Struktur wartet ewig, um das Event ggfs. nochmal abzuarbeiten...
Lässt sich eine Eventstruktur denn beliebig oft ausführen?

Ich habe nun folgende Konstruktion:

[attachment=31881]

Wenn ich versuche die Verbindung herzustellen, aber der Server ist noch mit einem anderen Klienten verbunden, kriege ich eine Fehlermeldung.
Schließe ich die vorhandene Verbindung, so dass der Server definitiv für eine neue Verbindung zur Verfügung steht, kann ich trotzdem keine Verbindung aus meinem Programm heraus aufbauen, da beim Klick auf den Button nichts passiert.

Was mache ich falsch?
Hallo brik,

Zitat:Lässt sich eine Eventstruktur denn beliebig oft ausführen?
Ja - wenn sie in einer laufenden (While-)Schleife steckt! (Warum sollte man auch nicht mehrfach auf ein Ereignis reagieren können?)

Die Schleife in deinem Bild wird jedoch abgebrochen, sobald eine gültige Referenz ausgegeben wird...

P.S.: Hast du schon mal Highlighting zur Fehlersuche benutzt? Dann könntest du zumindest einige deiner Fragen selbst klären...
' schrieb:Hallo brik,
Ja - wenn sie in einer laufenden (While-)Schleife steckt! (Warum sollte man auch nicht mehrfach auf ein Ereignis reagieren können?)

Die Schleife in deinem Bild wird jedoch abgebrochen, sobald eine gültige Referenz ausgegeben wird...

P.S.: Hast du schon mal Highlighting zur Fehlersuche benutzt? Dann könntest du zumindest einige deiner Fragen selbst klären...

Zuerst einmal hast du natürlich völlig recht. Generell hätte ich auf manche Dinge selber kommen können.
Ich werde versuchen in Zukunft vorher genauer selber nachzuprüfen, wo das Problem liegt.

Aber verstehen tue ich die oben genannte Verhaltensweise immer noch nicht. Ist die Option "Bei TRUE fortfahren" nicht genau dafür da, dass die While-Schleife weiter läuft, auch nachdem an der Schleifenbedingung eine 1 anliegt?

Wie kann ich es denn sonst realisieren, dass wenn mein Verbindungspartner die Verbindungsannahme verweiger, ich danach noch einen Versuch starten kann mich zu verbinden?

Danke und Gruß
Hallo brik,

Zitat:Wie kann ich es denn sonst realisieren, dass wenn mein Verbindungspartner die Verbindungsannahme verweiger, ich danach noch einen Versuch starten kann mich zu verbinden?
Indem du die Schleife nicht abbrichst, sobald einmalig eine gültige Referenz erzeugt wurde... Die Schleife mit der Eventstruktur sollte solange laufen wie das ganze Programm!

Bisher beendest du die Schleife, sobald eine gültige Referenz erzeugt wurde - und dies geschieht unabhängig davon, ob irgendjemand eine Verbidnung verweigert (mehr oder weniger jedenfalls). Wie schon erwähnt: einfach mal mit Highlighting das Ganze anschauen!
' schrieb:Hallo brik,
Indem du die Schleife nicht abbrichst, sobald einmalig eine gültige Referenz erzeugt wurde... Die Schleife mit der Eventstruktur sollte solange laufen wie das ganze Programm!

Bisher beendest du die Schleife, sobald eine gültige Referenz erzeugt wurde - und dies geschieht unabhängig davon, ob irgendjemand eine Verbidnung verweigert (mehr oder weniger jedenfalls). Wie schon erwähnt: einfach mal mit Highlighting das Ganze anschauen!

Aber ist es nicht so, dass wenn eine While-Schleife nicht anhält, sie auch keine Daten nach außen weitergibt? Der Fehlertunnel und der Referenztunnel führen doch keine Werte, solange die Schleife läuft.
Es wird zwar eine Verbindung aufgebaut, aber das restliche Programm weiß davon nichts.
Hallo brik,

hier kommen wir zum Thema "Datenaustausch zwischen parallel laufenden Schleifen" oder auch "Verwendung einer 'großen' Schleife um mein komplettes Programm herum"...

Zum ersten Thema findest du viele Einträge hier im Forum (und auch was im Link meiner Signatur). Zum zweiten kannst du dir selbst Gedanken machen...Smile

P.S.:
Alternativ kannst du dich auch mit dem Thema "State Machine" (deutsch: Zustandsautomat) beschäftigen. Da gibt es schon fertige Beispiele von NI...
Hallo,

ich habe mich jetzt ein wenig mit Meldern auseinandergesetzt, aber leider keine praktikable Lösung hinbekommen.

[attachment=31889]

Eigentlich müsste der "Melder anfordern"-Knoten ja außerhalb meiner While-Schleife stehen, oder?
Weil im Moment habe ich ja genau dasselbe Problem wie ohne Melder. Ich bekomme keine Daten aus der Schleife.
Aber wo kriege ich den Datentyp her, wenn der "Melder anfordern"-Knoten außerhalb steht? Ich muss ja irgendwie meine TCP-Referenz in die Case-Struktur bekommen.

So funktioniert es ja auch nicht:

[attachment=31891]

Es tut mir Leid, wenn ich mich da ein wenig blöd anstelle, aber ich raffe es einfach nicht. Habe mir ein Video dazu auf ni.com angeschaut, versucht die Beispiele aus LV zu adaptieren und aus irgendwelchen Forenbeiträgen schlau zu werden. Hat aber leider alles nicht geklappt.

Danke und Gruß
Hallo brik,

im zweiten Bild hast du keinen Datentyp beim "Melder erstellen" vorgegeben... Außerdem fehlt die zweite Schleife ums "Melder lesen".

Häng doch bitte mal ein VI statt eines Bildes an, ich habe keine Lust, äh Zeit, alles nochmal selbst zu programmieren...
Hallo Gerd,

ja, ich wusste ja auch nicht, wo ich den Datentyp "TCP-Referenz" hernehmen sollte.

Hier mein VI:Lv10[attachment=31892]
Seiten: 1 2 3
Referenz-URLs