logische Verzweigungen

  • Hallo,

    mit Interesse habe ich mir mal wieder das Video auf Youtube angeschaut, wo Ihr Fragen zur neuen Version, u.a. auch bzgl. Inputassignment, beantwortet habt. In diesem Zusammenhang habe ich mir die Frage gestellt: Gibt es sowas wie eine logische Verzweigung im Sinn If-Then-Else (oder gar als Case-Node mit n Prüfvarianten, vielleicht ein Feature in der Zukunft), wo dann am Ausgang kein logischer Wert rausläuft sondern ein analoger Wert ggf. durchgeschleift werden kann, wenn eine Bedingung erfüllt ist? Hintergrund war die Frage des Users mit dem Lauflicht, wo das 1. Licht ausgeht, wenn das zweite angeht; das zweite ausgeht, wenn das dritte angeht usw.

    Klar lässt sich das bestimmt irgendwie mathematisch lösen, würde aber irgendwann ein Knäuel an Nodes und Verbindungen erzeugen, mit einer logischen Verzweigung hingegen würde sich das doch (kurz im Kopf überschlagen) auf 3 Nodes pro Gerät beschränken?

    Nur mal als gedankliches Experiment ohne Handlungsdruck ;)

  • Sorry, dass ich da nochmal nachhake, aber ich habe scheinbar Verständnisschwierigkeiten, das ganze in Teilschritte zu zerlegen. Was Du beschrieben hast, ist klar. Aber ich möchte ja am Ende, wenn hier beispielsweise True rauskommt, den konkret verglichenen Wert weiterverarbeiten, im einfachsten Fall in einer Programmer-Node. Und wie ich dann im Fall von True an diesen Wert komme, erschließt sich mir gerade nicht.

  • Du kannst mit dem Binary switcher aus dem TRUE / FALSE zwei beliebige Numerische Werte machen, die du dann weiter verarbeiten kannst. Also wie gesagt, für den hypothetisch von dir vorgeschlagenen Fall wird das wieder sehr aufwendig, da es eine einfache "IF-THEN-ELSE" Sprache im Input Assignment nicht gibt, und man sich das in vielen Knoten zusammenbauen muss, aber es geht.

    Das Leben ist NP vollständig!

  • Das Logic-Node gibt am Ende ein True oder False aus. Sollen am Ende doch noch andere Werte heraus kommen, nimm dir den Binary Switcher dazu. Was der Logic-Node standardmäßig ausgibt, ist ebenfalls im Wiki beschrieben.

    Grundsätzlich musst du aber beachten, dass viele Nodes sowohl True / False als auch 1 / 0 an ihren Eingängen verstehen und ohne weitere Konvertierungen verarbeiten.

  • Und das Durchleiten des Wertes, ähnlich einer Variablen, ist vermutlich nicht möglich. Aber dann bin ich schon etwas schlauer, was die Möglichkeiten angeht.

    Vielen Dank! :) Mal rein programmatisch gesprochen und auf das Beispiel/die Frage aus dem Video bezogen, wie ich mir das vorgestellt hätte:

    Code
    if (wert >100 && wert <=200)
    {
      programmer1.setDimmer(0);
      programmer2.setDimmer(wert - 100);
      programmer3.setDimmer(0);
      programmer4.setDimmer(0);
    }

    Das ganze in Teilschritte zu zerlegen, dürfte ordentlich Hirnschmalz fordern. ;)

  • Ok, aber man beachte, dass die Variable "wert" im Vergleich und im daraus resultierenden Methodenaufruf wiederverwendet wird. Das ist für mich der Knackpunkt, an dem ich irgendwie nicht weiter komme. Wenn ich beim Methodenaufruf mit fixen Werten arbeiten würde, wäre das gar kein Problem.

  • Oder um es zu verdeutlichen hier im Anhang mal zwei Bilder des Aufbaus, einmal inaktiv, einmal aktiv (hier mit 10 und 20, weil der Dimmerwert nur bis 100 geht). Du kannst übrigens (wie hier) auch beim Binary Switcher nur auf "On" oder auf "Off" reagieren und das andere Feld leer lassen (so wie ich das hier gemacht habe). Dann wird nur in diesem Fall ein Wert gesetzt.

  • Newly created posts will remain inaccessible for others until approved by a moderator. The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.