Erstelle einen Cutter, der als übergeordnete Instanz die serielle Schnittstelle hat, eine Registervariable, die als übergeordnete Instanz den Cutter hat und eine Stringvariable zB Beamer empfang.
In der Cutterinstanz im Zielfeld trägst Du ein Scriptaufruf von diesen Script ein:
<?
// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
if ($_IPS['SENDER'] == "RegisterVariable")
{
// bereits im Puffer der Instanz vorhandene Daten in $data kopieren
$data = RegVar_GetBuffer($_IPS['INSTANCE']);
// neu empfangene Daten an $data anhängen
$data .= $_IPS['VALUE'];
SetValueString(12345 /*[Beamer empfang]*/,$data);
}
?>
Im Cutter mußt Du noch Deine eigenen Eistellungen vornehmen, wenn Du noch mehr auswerten willst
Wenn Du im Debugfenster schaust, sollten dann die Rückmeldedaten ankommen, wenn alles klappt.
Um die Stringvariabe zu irgendwelchen Sachen zu bewegen, mußt Du so ein Script schreiben, dessen Aufruf von dem Ändern der Stringvariablen ausgelöst wird:
$Text= GetValueString(12345 /*[Beamer empfang]*/);
if ($Text == "Lampe aus ")
{
SetValueBoolean(25221 /*[ xyz ]*/,false);
}
Nimmst Du nicht den Befehl „SPRT_SendText“ ?
Gruß Helmut
Diese Zeile ist irrelevant wenn man den Cutter nutzt: $data = RegVar_GetBuffer($_IPS[‚INSTANCE‘]);
Und anstatt COMPort_SendText (veraltet) und SPRT_SendText ist es besser man nutzt RegVar_SendText. Damit ist man unabhängig von dem IO und dessen ID, und kann alles mit der ID der RegisterVariable ansprechen
Michael
Ob ich nun die ID vom Comport eintrage oder von der Registervariable, das kann es nicht sein, allein,
für mich, des Überblickes wegen, was habe ich damals da in dem Script gemacht, hätte ich immer die ComPort ID eingetragen.
Gruß Helmut
Gerade wegen den Überblick.
Du empfängst von der RegVar, also sendet man auch an die RegVar. Ob da drüber dann eine serielle Schnittstelle, ein NetzwerkSocket oder what ever ist, ist dann egal.
Und die ID brauchst man auch nicht im Script eintragen, wenn man etwas trickst und das Script unterhalb der RegVar anlegt.
Dann reicht ein IPS_GetParent($_IPS[‚SELF‘]) und schon hast du ein universelles Script ohne IDs für die Kommunikation.
Michael