13.07.2015 Aufrufe

Download - IP-Symcon

Download - IP-Symcon

Download - IP-Symcon

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

RegisterVariableRegisterVariable stellt eine Datenweiterleitungs- und -verarbeitungsschnittstelle zur Verfügung.KonfigurationFalls Sie ihr Gerät noch nicht eingerichtet haben, folgen sie bitte den Schritten auf dieser Seite: Geräte einbindenDas RegisterVariable Modul verbindet sich nicht automatisch mit einer übergeordneten Instanz. Sie müssen dafürübergeordnete Instanz auswählen oder eine neue erstellen. Sie können auch weitere Splitter hinzufügen (z.B. Cutter), umdie ankommenden Daten vor der Auswertung direkt synchronisieren zu lassen.Die Ausführung der Skripte erfolgt seriell. Das Bedeutet, dass Sie ihre Skripte nicht mit Semaphoren schützen müssen.DatenverarbeitungWerden von der übergeordneten Instanz (Kommunikationsschnittstelle) neue Daten empfangen, wird das Ziel-Skript derRegisterVariable-Instanz ausgeführt. In diesem stehen die empfangenen Daten über $_<strong>IP</strong>S['VALUE'] zur Verfügung.Es gibt Datenquellen, bei denen erst mehrere empfangene Datensendungen eine sinnvolle Auswertung ermöglichen.Daher müssen die empfangenen Daten zwischengespeichert werden. Da Probleme auftreten können, wenn man binäreDaten in einer normalen String-Variable in <strong>IP</strong>-<strong>Symcon</strong> speichert (defekte <strong>IP</strong>-<strong>Symcon</strong>-Konfiguration), gibt es die FunktionRegVar_SetBuffer(integer $InstanzID, string $Puffer), die Daten im einen zur RegisterVariable-Instanz gehörigen Pufferspeichert. Die im Puffer gespeicherten Daten lassen sich mit der Funktion RegVar_GetBuffer(integer $InstanzID)auslesen. Mit der Funktion RegVar_SendText(integer $InstanzID, string $Text) lassen sich Datenstrings über dieKommunikationsschnittstelle senden. Intern wird hierbei die passende Sendefunktion, wie z.B. COMPort_SendText,ausgeführt.Der Puffer wird nach einem Neustart von <strong>IP</strong>-<strong>Symcon</strong> gelöscht!Verwenden Sie bitte KEINE VARIABLE als Puffer. Andernfalls kann es zu Instabilitäten innerhalb von <strong>IP</strong>-<strong>Symcon</strong>kommen und im schlimmsten Fall eine komplett zerstörte Konfiguration verursachen. Da sich dieses Problem auchinkrementell auf den Backup Ordner auswirken kann, haben Sie dann unter Umständen nicht einmal eine BackupKonfiguration. Nutzen Sie den internen Puffer der Instanz, um Daten zwischenzuspeichern.RegVar_SetBuffer / RegVar_GetBufferBeispieleFolgendes Beispiel verkettet empfangene Daten und gibt durch ; separierte Datensätze bei Vervollständigung aus:// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden istif ($_<strong>IP</strong>S['SENDER'] == "RegisterVariable"){// bereits im Puffer der Instanz vorhandene Daten in $data kopieren$data = RegVar_GetBuffer($_<strong>IP</strong>S['INSTANCE']);// neu empfangene Daten an $data anhängen$data .= $_<strong>IP</strong>S['VALUE'];// wenn das Trennzeichen ; in $data gefunden worden istif (strpos($data, ';')){// $data in durch ; separierte Datensätze zerlegen$datasets = explode(';', $data);// alle nicht durch ; terminierten Datensätze ausgebenfor ($i = 0; $i < count($datasets) - 1; $i++){echo "empfangener Datensatz: ".$datasets[$i]."\n";}// $data auf den Inhalt des letzten (unvollständigen) Datensatzes setzen

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!