UDP in PHP weiter verarbeiten

Hallo zusammen,

Ich habe gerade erfolgreich eine UDP-Verbindung zwischen IPS und einen Arduino aufgebaut.

Das hin- und hersenden funktioniert schon mal.

Vom Arduino zu IPS wird in der Instanz (Debug) angezeigt. Von PHP zum Arduino funktioniert mit USCK_SendText einwandfrei und kommt auch beim Arduino an.

Was ich nicht noch nicht verstehe ist, wie ich in PHP auf die empfangenen Daten zugreifen kann.

Hab einfach mal print_r($_IPS) ausgegeben, aber ich bekomme nichts angezeigt.

Kann mir bitte jemand helfen?

Vielen Dank und viele Grüße

Markus

Dazu brauchst Du eine Registervariable. Ansonsten wenn das ein Modul werden soll greift der Datenfluss und ReceiveData.

Für den Anfang tut es erst mal bestimmt eine Registervariable.

Hallo Fonzo,

ja, dass hab ich schon lesen und teste es die ganze Zeit, aber irgendwie hakt es, bzw. Ich versteh es nicht.

Ich hab das Beispiel der RegisterVariable in ein PHP-Script kopiert.

Mit print_r($_IPS); wollte ich mal sehen was überhaupt ankommt… Die “Meldungen“ bleiben leer.

Aber irgendwas sollte doch auftauchen, oder zumindest das man sehen kann dass das Script ausgeführt wurde.

Das denke ich mal tut es nämlich nicht…

Woher weiß die Instanz den, welches Script aufgerufen werden soll?

Ich denk bestimmt mal wieder zu kompliziert!

Na das trägts du in der Konfiguration der Registervariable ein.
Im Grunde kannst die Regvariable als eine Art Buffer zum Datenaustasuch betrachten.

Im Script kannst dann mit
$myReceiveData = $_IPS[‚VALUE‘];
auf die empfangenen Daten zugreifen.

Blau: das Zielscript
Rot: die Datenquelle, in meinem Fall iste s ein Cutter, aber du kannst da natürlich auche einen ServerSocket oder was anders auswählen.
Der Cutter ist übrigens ganz praktisch um schon mal bestimmte Zeihenfolgen vorab wegzuschneiden oder rauszufiltern.
Weiters wird er zb. verwendet um erstmal ein ganzes Telegram zwischenzupuffern und erst nach vollständig empfangenem Datenwort
dieses an das Script weiterzureichen. Ansonsten könnte es ja passieren das nach jedem empfangenen Byte das Script getriggert wird.
d.h. ein Datenwort im Script sozusagen nur Häppchenweise ankommen würde.

Hast das mal aufgesetzt brauchst dich um die Variable eigentlich nicht mehr zu kümmern. Ist einfach im Hintergrund da und fertig.

hoffe geholfen zu haben
bb

OK, dass ist schon etwas peinlich, aber ich schiebe es mal drauf, dass ich noch nicht soooo intensiv mit IP-Symcon gearbeitet habe, wenig Schlaf, zu wenig Kaffee oä :smiley:

Ich hab die Register Variable nicht gefunden bzw nicht gewusst wie man damit genau umgeht. Arrrrrggggg… Nachdem ich sie gefunden hab, konnte ich mich auch dran erinnern :slight_smile:

Jetzt funktioniert es !!!

Vielen vielen dank für eure Hilfe!!!

Viele Grüße

Markus