Hallo,
ich dachte nicht daran das plugin "Logikprozessor" an sich zu "übersetzen". Ich glaube auch, dass der Logikeditor im TWS wahrscheinlich alle "Grundlogiken" implementiert hat.
Meine Frage zielte eher darauf ab, ob es - mit überschaubarem Aufwand - möglich ist die "Logikdefinitionen" im Wiregate-plugin
Beispiel:
Code: Alles auswählen
jalo_west_runter => {transmit=>['2/2/5','3/2/55'], translate=>sub{int($plugin_info{'Global_Advent'}) == 0 && plugin_info{'Global_Tiefsttemperatur'} > -6 ? 1:undef;}, debug=> 1},
jalo_west_runter_frost => {transmit=>['2/2/4','3/2/54'], translate=>sub{int($plugin_info{'Global_Advent'}) == 0 && $plugin_info{'Global_Tiefsttemperatur'} < -5 ? 1:undef;}, debug=> 1},
.... oder
sperre_jalo_willi_sued => { receive=>['3/2/30'], transmit=>['3/2/39'], translate => sub { return $msg{'src'} eq "1.1.141" ? 1 : undef ;}, followup=>{'sperre_jalo_willi_sued_aufheben'=>7200}, debug=>1 },
quasi automatisiert in die neue textbasierte "custom logik" Version am TWS zu "übersetzen.
Beispiel:
Code: Alles auswählen
{
"Level": [
["$InSet","bool",false],
["$InRes","bool",false],
["$InStat","int",0],
["$Out","bool",false],
["$KonstFalse","bool",false]
],
"Module": [
["BinaryMultiplexer",["$InSet","$InRes"],"$InStat"],
["Multiplexer",["$Out","-$KonstFalse","$KonstFalse"],"$Out","$InStat"]
],
"Input": [
["S","Eingang","$InSet","c"],
["R","Eingang","$InRes","c"]
],
"Output": [
["Q","Ausgang","$Out","c"]
]
}
.... das oben sind wahllose Beispiele, die aktuell auch nichts miteinander zu tun haben.
Frage also: Wäre es möglich Struktur A (oben vom Wiregate-Logikprozessor) in Struktur B (unten vom TWS) zu überführen.
Ich würde mich je nach verfügbarer Zeit auch gerne mit einbringen.
Hinzugefügt nach 8 Minuten 2 Sekunden:
Hier mal die eine Logikdefinition "auseinandergenommen":
Code: Alles auswählen
jalo_west_runter => {transmit=>['2/2/5','3/2/55'], translate=>sub{int($plugin_info{'Global_Advent'}) == 0 && plugin_info{'Global_Tiefsttemperatur'} > -6 ? 1:undef;}, debug=> 1},
jalo_west_runter = Name der Logikdefinition
transmit=>['2/2/5','3/2/55'] = an diese GA wird das Ergebnis übermittelt (output)
translate=>sub{int($plugin_info{'Global_Advent'}) == 0 && plugin_info{'Global_Tiefsttemperatur'} > -6 ? 1:undef;}, = Die "Logikdefinition an sich" wenn der Wert 'Global_Advant' im Hash plugin_info gleich 0 ist und 'Global_Tiefsttemperatur' größer -6 ist, dann sende eine 1 auf output
Mir ist schon klar, dass der Logikeditor mit Objektnummern arbeitet und das hier auf GA's und Daten aus einem Hash abzielt .....
War ja auch nur eine Frage, ob prinzipiell eine "Übersetzung" dieser Definitionen automatisiert möglich wäre.
Wenn nicht, dann muss es halt per Handarbeit gehen ....