LabVIEWForum.de - Auf ankommendes UDP-Paket triggern?

LabVIEWForum.de

Normale Version: Auf ankommendes UDP-Paket triggern?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Gibt es eine Möglichkeit auf ein ankommendes UDP-Paket zu triggern?

Hintergrund ist folgender: Es sollen auf zwei verschiedenen Rechner zwei unterschiedliche LV-Programme laufen. Ein Programm soll prinzipiell das Auslesen und Verarbeiten von Daten aus einem angeschlossenen Gerät vornehmen. Das andere Programm ist quasi die Fernsteuerung für das o. g. Programm, mit dem man dann einzelne Parameter versenden kann (via UDP).

Da Programm 1 in einer State Machine läuft, ist mir jetzt als Idee eingefallen, dass man, sobald ein UDP-Paket ankommt, in einen anderen State wechselt, dort die Parameter ändert und dann wieder in den Lese/Verarbeite-Zyklus springt.

Gibt es dafür in LV eine Möglichkeit, dies zu realisieren oder bin ich mit meiner Idee schon komplett auf dem Holzweg?

Danke im Voraus & Gruß
Hallo Yantit,

du kannst doch, wenn ein UDP-Paket ankommt, einen entsprechenden Befehl in die StateMachine einspeisen!
Im Prinzip wie "IF udp THEN state_udp ELSE state_standard"...

Oder du bohrst deine StateMachine zur QueuedStateMachine aufSmile
Zitat:Hallo Yantit,

du kannst doch, wenn ein UDP-Paket ankommt, einen entsprechenden Befehl in die StateMachine einspeisen!
Im Prinzip wie "IF udp THEN state_udp ELSE state_standard"...

Ja, sowas hatte ich im Auge, aber mir ist noch nicht ganz klar, woher LV "weiß", OB ein UDP-Paket denn da ist...

Zitat:Oder du bohrst deine StateMachine zur QueuedStateMachine aufSmile

Ach du liebe Zeit, was ist denn eine Queued State Machine?Smile
Hallo Yantit,

"woher LV "weiß", OB ein UDP-Paket denn da ist..."
Du empfängst deine UDP-Pakete in einer parallelen Schleife. Entweder du empfängst was - oder auch nicht (TimeOut!). Je nachdem, was passiert ist, gibst du einen entsprechenden Wert in deine StateMachine weiter...

"was ist denn eine Queued State Machine?"
Eine QSM ist eine StateMachine, bei der die States über eine Queue verwaltet werden. Damit kann man von beliebiger Stelle aus "Befehle" in die StateMachine schicken... Normalerweise hast du ein Enum, welches die StateMachine steuert. Jetzt ist es eine Queue, die jeweils ein Enum ausspuckt...
Zitat:Hallo Yantit,

"woher LV "weiß", OB ein UDP-Paket denn da ist..."
Du empfängst deine UDP-Pakete in einer parallelen Schleife. Entweder du empfängst was - oder auch nicht (TimeOut!). Je nachdem, was passiert ist, gibst du einen entsprechenden Wert in deine StateMachine weiter...

Ah, okay, verstehe. Auf den Ansatz bin ich jetzt direkt nicht gekommen...

Zitat:"was ist denn eine Queued State Machine?"
Eine QSM ist eine StateMachine, bei der die States über eine Queue verwaltet werden. Damit kann man von beliebiger Stelle aus "Befehle" in die StateMachine schicken... Normalerweise hast du ein Enum, welches die StateMachine steuert. Jetzt ist es eine Queue, die jeweils ein Enum ausspuckt...

Das hört sich zweckmäßig an, ich habe da einen Link gefunden, der das scheinbar ganz gut erklärt: klick

Da muss ich mich jetzt erstmal einlesenSmile

EDIT: Sehr abgefahrene Geschichte, diese QSM, aber scheint auf jeden Fall das zu sein, was ich brauche. Wird sich sicherlich lohnen, das umzusetzen. Mal schauen, ob das in gegebener Zeit möglich ist.
Referenz-URLs