Ich habe aktuell noch ein Verständnisproblem in Bezug auf „Registervariable“ und "$_IPS[‚VALUE‘] ".
Zum Thema Registervariable habe ich mir bereits folgenden Thread angesehen:
Zum Thema $_IPS[‚VALUE‘]:
Wie muss ich das Skript aufrufen, damit die Systemvariable mit Werten gefüllt wird?
Die Ausführung direkt im Skript via „Ausführen“ ist ja nicht möglich.
Wenn ich als Beispiel die Befehle nehme die weiter oben im Thread gepostet wurden:
#Anfrage Skript
CSCK_SendText(17889, "%1POWR ?".CHR(0x0D));
#Auswertung
if($_IPS['VALUE'] == "%1POWR=0".chr(0x0d)) SetValue(22402, 0);
else if($_IPS['VALUE'] == "%1POWR=1".chr(0x0d)) SetValue(22402, 1);
else if($_IPS['VALUE'] == "%1POWR=2".chr(0x0d)) SetValue(22402, 2);
In Bezug auf mein Verständnis bisher:
Mit dem Befehl „CSCK_SendText(17889, „%1POWR ?“.CHR(0x0D));“ bekomme ich vom Beamer nur eine Rückmeldung ob der Befehl erfolgreich angenommen worden ist, in meinem Fall eine 1.
(Was ich aber komisch finde warum ich hier eine 1 Rückgemeldet bekomme, da im Debug gar nicht angezeigt wird das ich eine eingehen Rückmeldung erhalte)
Der Befehl, liefert aber noch weitere Daten, um diese abzufangen benötigt ich die sogenannte Registervariable. Somit würde ich den Befehl wie folgt umbauen:
$_IPS['VALUE'] = CSCK_SendText(17889, "%1POWR ?".CHR(0x0D));
Mit dem Code für die Auswertung, kann ich dann den aktuellen Zustand auslesen:
if($_IPS['VALUE'] == "%1POWR=0".chr(0x0d)) SetValue(22402, 0);
else if($_IPS['VALUE'] == "%1POWR=1".chr(0x0d)) SetValue(22402, 1);
else if($_IPS['VALUE'] == "%1POWR=2".chr(0x0d)) SetValue(22402, 2);
Kommt das so hin in Bezug auf mein Verständnis oder habe ich das ganze Missverstanden?