Funktion | Erläuterung |
logic_getInputs($id) Alias: getLogicEingangDataAll |
Liefert die aktuellen Daten aller Eingänge der LBS-Instanz $id zurück.
Rückgabe:
ARRAY[Eingang]['value';'refresh'] (im Fehlerfall wird FALSE zurückgegeben):
|
logic_getVars($id) Alias: getLogicElementVarAll |
Liefert ein Array mit den aktuellen Werten aller Variablen der LBS-Instanz $id zurück. Rückgabe: ARRAY[Variablen-ID] |
logic_getVar($id,$varid) Alias: getLogicElementVar |
Liefert den aktuellen Wert einer Variable der LBS-Instanz $id zurück. $varid: Nr. der Variable (1..∞) Rückgabe: Variant oder NULL (Fehler) |
logic_setVar($id,$varid,$value) Alias: setLogicElementVar |
Setzt eine Variable der LBS-Instanz $id auf einen Wert. $varid: Nr. der Variable (1..∞) $value: zu setzender Wert |
logic_setOutput($id,$ausgang,$value) Alias: setLogicLinkAusgang |
Setzt einen Ausgang der LBS-Instanz $id auf einen Wert. $ausgang: Nr. des Ausgangs (1..∞) $value: zu setzender Wert Hinweis: Intern wird nicht der Ausgang auf einen Wert gesetzt, sondern alle Eingänge, die mit dem Ausgang verbunden sind. Wichtig: Die Verwendung dieser Funktion in einem EXEC-Script führt bei einem sehr häufigen Aufruf in kurzer Zeit u.U. dazu, dass einzelne Aufrufe unwirksam bleiben (das EXEC-Script wird asynchron ausgeführt). Ggf. ist daher die Funktion logic_setOutputQueued() im EXEC-Script zu verwenden (s.u.). |
logic_setState($id,$status[,$delay[,$interval]]) Alias: setLogicElementStatus |
Aktiviert oder deaktiviert das zyklische Aufrufen der LBS-Instanz $id durch die Logik-Engine.
$status:
|
logic_getState($id) Alias: getLogicElementStatus |
Liefert den aktuellen Status der LBS-Instanz $id zurück.
Rückgabe:
INTEGER (im Fehlerfall wird NULL zurückgegeben):
|
Funktionen für Logikbausteine mit EXEC-Script Wichtig: Einige der folgenden Funktionen sind ausschließlich für die Verwendung innerhalb eines EXEC-Scripts geeignet. |
|
logic_callExec(LBSID,$id[,$multitasking]) Alias: callLogicFunctionExec |
Startet ggf. das EXEC-Script der LBS-Instanz $id.
LBSID: Platzhalter für die LBS-ID (nicht verändern!)
$multitasking (optional):
|
logic_getStateExec($id) |
Liefert den aktuellen Status des EXEC-Scripts der LBS-Instanz $id zurück.
Rückgabe:
INTEGER (im Fehlerfall wird NULL zurückgegeben):
|
logic_setInputsQueued($id,$E) | Speichert alle aktuellen Eingangsdaten der LBS-Instanz $id in einer Queue, um eine asynchrone Verarbeitung der Eingangsdaten in einem EXEC-Script zu ermöglichen. $E: Array der Eingangsdaten, i.d.R. das zurückgegebene Array der Funktion logic_getInputs() Hinweis: Die Funktion generiert die Eingangsdaten nicht selbst, sondern erwartet das von der Funktion logic_getInputs() zurückgegebene Array als Parameter $E. Achtung: Bei der Verwendung dieser Funktion ist darauf zu achten, dass die Queue regelmäßig abgefragt bzw. geleert wird (s.u.). Wichtig: Diese Funktion sollte ausschließlich im LBS-Abschnitt verwendet werden. |
logic_getInputsQueued($id[,$fallback]) |
Gibt alle Eingangsdaten der LBS-Instanz $id aus der Queue zurück und entfernt diese Eingangsdaten aus der Queue.
Es werden stets die "ältesten" Eingangsdaten aus der Queue zurückgegeben. Die aktuellsten verfügbaren Daten werden zuletzt zurückgegeben.
$fallback (optional):
|
logic_deleteInputsQueued($id) | Leert die Queue der LBS-Instanz $id, sämtliche Eingangsdaten werden aus der Queue entfernt. Hinweis: Beim Beenden des EXEC-Scripts wird die Queue automatisch geleert. |
logic_setOutputQueued($id,$ausgang,$value) | Wie logic_setOutput(), jedoch wird das Setzen des Ausgangswertes in einer Queue zwischengespeichert. Wenn ein Ausgang sehr häufig in kurzer Zeit auf einen Wert gesetzt werden soll, kann diese Funktion in einem EXEC-Script verwendet werden. Der Aufruf dieser Funktion ist zwar weniger performant, jedoch wird jeder Aufruf garantiert wirksam umgesetzt. Hinweis: Diese Funktion verwendet die selbe Queue wie z.B. Telegramme, Visuelemente, etc. - d.h. bei einer sehr "hochfrequenten" Nutzung dieser Funktion, wird die Abarbeitung von Telegrammen etc. entsprechend verzögert erfolgen! Wichtig: Diese Funktion darf ausschließlich in einem EXEC-Script verwendet werden. |
logic_getEdomiState() |
Diese Funktion ermittelt, ob EDOMI betriebsbereit ist oder z.B. gerade beendet wird.
Rückgabe:
INTEGER:
|
logic_dbKeepalive() | Diese Funktion dient ggf. zur Aufrechterhaltung der Datenbank-Verbindung (u.U. wichtig für EXEC-Scripte). Einige der o.g. Funktionen greifen intern auf eine Datenbank zu. Die Datenbank-Engine trennt jedoch die Verbindung, sobald länger als 8 Stunden keinerlei Zugriff erfolgt - der Aufruf der o.g. Funktionen innerhalb eines EXEC-Scripts(!) wird dann u.U. scheitern! Es ist daher ggf. dafür zu sorgen, dass z.B. stündlich ein Datenbank-Zugriff erfolgt, um die Verbindung aufrecht zu erhalten. Die kann z.B. durch einen zyklischen Aufruf (z.B. alle 60 Minuten) dieser Funktion erfolgen. Hinweis: In der Regel ist die Verwendung dieser Funktion nicht erforderlich: Eine (Endlos-)Schleife im EXEC-Script sollte stets in der Form "while (logic_getEdomiState()==1)" implementiert werden (siehe Beispiel "EXEC-Script als Dämon"***r-0-4), damit der Prozess beim Beenden von EDOMI kontrolliert beendet wird. Die Funktion "logic_getEdomiState()" sorgt dabei bereits für eine Aufrechterhaltung der Datenbank-Verbindung. Wichtig: Diese Funktion darf ausschließlich in einem EXEC-Script verwendet werden. |
Funktion | Erläuterung |
convertHSVtoRGB($h,$s,$v) |
Wandelt $h/$s/$v in R/G/B um.
$h/$s/$v: H/S/V-Werte (H=0..255, S=0..255, V=0..255)
Rückgabe:
ARRAY[0..2] (FLOAT) oder FALSE (Fehler):
|
convertRGBtoHSV($r,$g,$b) |
Wandelt $r/$g/$b in H/S/V um.
$r/$g/$b: R/G/B-Werte (R=0..255, G=0..255, B=0..255)
Rückgabe:
ARRAY[0..2] (FLOAT) oder FALSE (Fehler):
|