Hi StefanW,
danke für dein Interesse! Hier meine Sicht der Dinge:
Der Logikprozessor ist auf "Logiken" limitiert, d.h. dass er Input von GAs entgegennimmt und seine Antwort (direkt, verzögert, auf Anfrage) auf EINER GA rausschickt.
Diese letzte Limitierung (EINE Output-GA) besteht ganz bewusst, denn dadurch verhält sich jede Logik wie ein eigenes KNX-Gerät, und das zwingt den Anwender, gedanklich weiter in der KNX-Welt zu bleiben.
Gleichzeitig erlaubt die knappe Logikdefinition dem Anwender, sich weiterhin auf sein KNX-System zu fokussieren und nicht mal eben zwischendurch einen ordentlichen Schluck Linux/Perl/Python oder XML zu sich nehmen.
Gegenüberstellung Plugin zu Logik:
1. Wiregate -> Wiregate-Plugin = "Turingmaschine"
"frei programmierbarer Rechner kann mit allem interfacen, u.a. auch mit KNX"
2. Logikprozessor -> Logikdefinition = "finiter Automat"
"Baustein führt klar abgegrenzte Operation im KNX-Subsystem aus (und emuliert damit wohl alle auf dem Markt verfügbaren KNX-Logikbausteine)."
Vorteil ist, dass diese klar abgegrenzten Logikaufgaben sehr viel weniger Definitionstext brauchen, als ein volles Wiregate-Plugin mit gleicher Funktionalität benötigen würde. Damit werden einfache Aufgaben einfacher zu lösen, gerade für Anfänger.
Der Nachteil ist die Limitierung, denn der Logikprozessor ersetzt NICHT das allgemeine Plugin. Beispielsweise könnte man ein Russound-RIO-Interface a la ChrisM nicht als einfachen Logikbaustein formulieren. Muss man aber auch nicht.
Zum Schluss: man _könnte_ eine solche Logikengine auch aus den Plugins rauslösen und in die Wiregate-Kernfunktionalität integrieren. Ich sehe darin allerdings nur dann Vorteile, wenn die Plugins auf alle Ewigkeit hin non-threaded und blocking bleiben würden. Die Logik-Engine ist mit Sicherheit leichter threaded zu implementieren als die Plugin-Engine, weil die Logiken - anders als die Plugins außer über KNX nicht miteinander kommunizieren - zumindest nicht wenn "used as intended".
Ob man auch einen grafischen Editor für solche Logiken schreiben könnte? "Man" sicher, "ich" nicht :-)
VG, Fry
danke für dein Interesse! Hier meine Sicht der Dinge:
Der Logikprozessor ist auf "Logiken" limitiert, d.h. dass er Input von GAs entgegennimmt und seine Antwort (direkt, verzögert, auf Anfrage) auf EINER GA rausschickt.
Diese letzte Limitierung (EINE Output-GA) besteht ganz bewusst, denn dadurch verhält sich jede Logik wie ein eigenes KNX-Gerät, und das zwingt den Anwender, gedanklich weiter in der KNX-Welt zu bleiben.
Gleichzeitig erlaubt die knappe Logikdefinition dem Anwender, sich weiterhin auf sein KNX-System zu fokussieren und nicht mal eben zwischendurch einen ordentlichen Schluck Linux/Perl/Python oder XML zu sich nehmen.
Gegenüberstellung Plugin zu Logik:
1. Wiregate -> Wiregate-Plugin = "Turingmaschine"
"frei programmierbarer Rechner kann mit allem interfacen, u.a. auch mit KNX"
2. Logikprozessor -> Logikdefinition = "finiter Automat"
"Baustein führt klar abgegrenzte Operation im KNX-Subsystem aus (und emuliert damit wohl alle auf dem Markt verfügbaren KNX-Logikbausteine)."
Vorteil ist, dass diese klar abgegrenzten Logikaufgaben sehr viel weniger Definitionstext brauchen, als ein volles Wiregate-Plugin mit gleicher Funktionalität benötigen würde. Damit werden einfache Aufgaben einfacher zu lösen, gerade für Anfänger.
Der Nachteil ist die Limitierung, denn der Logikprozessor ersetzt NICHT das allgemeine Plugin. Beispielsweise könnte man ein Russound-RIO-Interface a la ChrisM nicht als einfachen Logikbaustein formulieren. Muss man aber auch nicht.
Zum Schluss: man _könnte_ eine solche Logikengine auch aus den Plugins rauslösen und in die Wiregate-Kernfunktionalität integrieren. Ich sehe darin allerdings nur dann Vorteile, wenn die Plugins auf alle Ewigkeit hin non-threaded und blocking bleiben würden. Die Logik-Engine ist mit Sicherheit leichter threaded zu implementieren als die Plugin-Engine, weil die Logiken - anders als die Plugins außer über KNX nicht miteinander kommunizieren - zumindest nicht wenn "used as intended".
Ob man auch einen grafischen Editor für solche Logiken schreiben könnte? "Man" sicher, "ich" nicht :-)
VG, Fry
Kommentar