Seite 1 von 2

Modul: SendExplizit

Verfasst: Mo Jun 29, 2020 1:08 pm
von S. Kolbinger
Es gibt ein neues Modul für die Logic-Engine: "SendExplicit" oder "gesteuertes Senden"

Mit diesem Modul lässt sich ein (Ausgangs-)Level explizit festlegen, ob es gesendet werden soll.

Die Syntax für das Modul sieht folgendermassen aus:
["SendExplicit","$SendCond","$Out_val",Option]

"SendExplicit" : Modulkennung
"$SendCond": Referenz auf einen boolschen Level der das Sendeverhalten (je nach Option) steuert
"$Out_val": Referenz auf einen Ausgangs-Level dessen Sendeverhalten gesteuert werden soll.
Option:
  • 0:Sende bei True ,
  • 1: Sende bei positiver Flanke,
  • 2: Sende bei negativer Flanke,
  • 3: sende bei positiver und negativer Flanke

Ist die Sendebedingung erfüllt wird beim (Ausgangs-)Level ein Flag gesetzt, das auf die Sendeoption: X reagiert.
Die Sendeoption X lässt sich nur in Custom-Logiken setzen und nicht wie bei den bisherigen Sende-Optionen (A,C oder T) über die GUI.

Hier ein Beispiel (sende nur Werte zwischen 4 und 17):

Code: Alles auswählen

{
  "Level": [
    ["$In_val", "float", 0],
    ["$Out_val","float",0],
    ["$Send","bool" ,false],
    ["$Min", "float", 4],
    ["$Max","float",17]
  ],
  "Module": [
    ["Limiter","$In_val","$Out_val","$Send",["$Min","$Max"]],
    ["SendExplicit","$Send","$Out_val",0]
  ],
  "Input": [
    ["Eingang","Eingangswert","$In_val","a"]
  ],
  "Output": [
    ["Ausgang","Ausgangswert","$Out_val","x"]
  ]
}
Screenshot from 2020-06-29 13-01-07.png
PS: Sorry für die späte Benachrichtigung über das neue Modul in V1.6.0. Bin in den letzten 4 Wochen privat umgezogen :-o

Re: Modul: SendExplizit

Verfasst: Mo Jun 29, 2020 5:50 pm
von Robert_Mini
Hallo Stefan!

So geht das nicht :oops: , du verschweigst uns die coolsten Dinge 4 Wochen lang? :crying-yellow:

Scherz beiseite, damit kann man alles machen, was mir noch gefehlt hat! :clap: :clap: :clap:
- Explicit Senden obwohl kein Änderung
- Sendefilter zb nur true Senden

Ich vermute mal, dass Kombinationen mit “on change” =“CX” oder Timer =“TX” nicht vorgesehen sind, oder?
Kann man aber mit einem 2. Ausgang auf das gleiche Objekt simulieren.

Danke für das coole Feature
Robert

Re: Modul: SendExplizit

Verfasst: Mo Jun 29, 2020 7:36 pm
von danik
Vielen dank, eine wichtige Funktion die noch gefehlt hat.

Gruss
Dani

Re: Modul: SendExplizit

Verfasst: Mo Jun 29, 2020 9:06 pm
von paralan
Super Stefan K.,

das ist eine wichtige Erweiterung der Module.
Danke! :clap: :dance:

Re: Modul: SendExplizit

Verfasst: Mo Jun 29, 2020 10:38 pm
von Robert_Mini
Kleiner Nachtrag: Warum eigentlich das "x" an der Oberfläche?

Ich hätte es fast noch smarter empfunden, wenn das Modul "Sendexplicit" einfach ein Senden erzwingt, unabhängig von der Einstellung an der Oberfläche.
D.h. wie heute kann man mit c,t,ct,a 95% abdecken, für den Rest ein Sendexplicit zusätzlich dazu.

Hintergrund:
Ich denke da auch an einen "Send-Trigger" Eingang, der alle Ausgänge sendet. d.h. Logik wie heute im Einsatz mit "C" "CT" und "A", einfach im Code eine Erweiterung um SendExplicit je Ausgang mit Trigger, fertig.

C, CT im Code nachzubilden ist auch nicht ganz trivial, bleibt so dann nur der Weg über doppelte Ausgänge...

lg
Robert

Re: Modul: SendExplizit

Verfasst: Do Jul 02, 2020 7:17 am
von S. Kolbinger
Hallo Robert,
Robert_Mini hat geschrieben: Mo Jun 29, 2020 10:38 pm Ich hätte es fast noch smarter empfunden, wenn das Modul "Sendexplicit" einfach ein Senden erzwingt, unabhängig von der Einstellung an der Oberfläche.
D.h. wie heute kann man mit c,t,ct,a 95% abdecken, für den Rest ein Sendexplicit zusätzlich dazu.
Dein Vorschlag ist durchaus interessant und eine Überlegung wert.
Offen gesagt, hatte ich die Kombination von "Sendexplicit" mit anderen Sendetriggern (A,C,T) gar nicht auf dem Schirm.
Technisch liese es sich sogar einfach umsetzen, allerdings sollte diese Einstellung am Logik-Editor irgendwie sichtbar sein, um Überraschungen und Frust beim Anwender (und damit auch bei unserem Support) vorzubeugen.
Eine Änderung am Logik-Editor wäre in jedem Fall notwendig, schon dann, wenn man nur "Sendexplicit" verwenden möchte, ohne die anderen Trigger.

Aktuell finde ich es übersichtlicher keine Kombinationen mit "Sendexplicit" zuzulassen (Keep it simple).
Das können wir aber bei Bedarf in den nächsten Version einbauen.

Re: Modul: SendExplizit

Verfasst: Do Jul 02, 2020 7:36 am
von Eraser
Bin auch dafür, dass man die normalen Trigger A,C,T bestehen lässt und das SendExplicit zusätzlich dazu auf den Ausgang geschalten werden kann.

Man könnte dies durch AX, CX und TX am Ausgang anzeigen.

Dann wäre in der Logik-Übersicht sofort ersichtlich, welcher Ausgang zusätzlich ein SendExplicit noch dabei hat.

Das reine X für nur SendExplicit kann ja bestehen bleiben, sodass man dann folgende Varianten hätte:
A, AX, C, CX, T, TX, X

Re: Modul: SendExplizit

Verfasst: Do Jul 02, 2020 8:48 am
von Robosoc
Auch ich schließe mich dem allen an.

1. Vielen Dank für das Modul Stefan!
2. Vielen Dank für Beitrag #5 Robert, sehe ich genauso!
3. Vielen Dank für den Beitrag #7 Wolfgang, ist meiner Meinung nach der perfekte Vorschlag.

Kurz:
SendExpolizit wirkt sich nur aus, wenn ein X in der Sendeoption verwendet wird und es gibt bei Custom-Logiken dann folgende Möglichkeiten
A, AX, C, CX, T, TX, X

Re: Modul: SendExplizit

Verfasst: Do Jul 02, 2020 10:29 am
von Robert_Mini
Hallo zusammen!

Danke für die Diskussion. Meine Gedanken dazu:
- Ich finde den Ansatz super, dass man die Sendeoptionen vollständig an der Oberfläche sieht.
- Die Wahrheit ist, dass man meist entweder A, C, CT oder X braucht
- Wenn doch, dann ist das interne ermitteln von C und vor allem T sehr schwierig und aufwändig!

Für die wenigen Fälle, wo ich X brauche, ist die Lösung wirklich Klasse! Denn damit geht nun wirklich alles, was mir in den Sinn kommt.

Einziger Fall, den ich im Kopf habe, der damit nicht abdeckbar ist:
"Send Trigger" - Trigger Eingang, der zusätzlich zu den existierenden Settings alle Eingänge sendet. Ich bin jemand, der das Senden auf das notwendige reduziert. In manchen Custom Logiken ist es dann echt schwierig, ein Send zu provozieren. Das liegt vor allem daran, dass on change gegenüber dem Init-Wert der Variable ausgewertet wird (?oder?).
Auch nach einem Reboot, wäre ein "Send all Outputs" als Triggereingang hilfreich.

Daher habe ich diese Diskussion um Send Explicit angestoßen.

Der beste Weg wäre aus meiner Sicht, die Implementierung von "Send Explicit" so beizubehalten und zusätzlich mittelfristig einen Triggereingang zu generieren, der ein "Send all Outputs" auslöst. Vorteil dabei ist, dass solche Lösung auch für die Standardlogiken nutzbar wäre!


lg
Robert

Re: Modul: SendExplizit

Verfasst: Do Jul 02, 2020 11:29 am
von Eraser
Robert_Mini hat geschrieben: Do Jul 02, 2020 10:29 am Der beste Weg wäre aus meiner Sicht, die Implementierung von "Send Explicit" so beizubehalten und zusätzlich mittelfristig einen Triggereingang zu generieren, der ein "Send all Outputs" auslöst.[/b]
Das wäre für mich genauso OK.

Ich z.B. habe zum Großteil nur den Anwendungsfall, dass alle Ausgänge auf C stehen.
Ab und zu wäre es dann hilfreich, dass ich ein Senden aller Ausgänge auch ohne Änderung des Ausgangs anstoßen könnte.