Skip to main content

Kombinator für Vergleiche

CategorySchaltungen
decider-combinator
Category
Schaltungen
Power consumption (kW)
1
Prototype type
decider-combinator
Internal name
decider-combinator
Planet
nauvis

Overview

Der Decider combinator ist eine Schaltungs-Baueinheit, die bedingte Ausdrücke auf ihren Eingängen auswertet und Signale an ihren Ausgängen ausgibt, wenn diese Bedingungen erfüllt sind. Seine GUI ist in eine linke Seite für eine oder mehrere Bedingungen und eine rechte Seite für Ausgabedefinitionen unterteilt. Jede Bedingung vergleicht ein "first"-Eingangssignal mit einem "second"-Eingangssignal oder einer numerischen Konstante unter Verwendung eines Vergleichsoperators (>, <, =, >=, <=, !=). Für jedes Eingangssignal, das der Combinator liest, kannst du wählen, welche Drähte den Wert liefern: Rotes Signalkabel, Grünes Signalkabel oder beide. Wenn für einen Eingang beide Drähte ausgewählt sind, werden die Werte auf diesen Drähten vor der Auswertung aufsummiert.

Intern läuft die Auswertung in drei Schritten ab: Die Eingänge vom Red wire und Green wire werden pro Signalname aufsummiert; die konfigurierten Vergleiche werden unter Verwendung der aufsummierten Werte und etwaiger konstanter rechten Werte ausgewertet; wenn ein Vergleich wahr ist, erzeugt der Combinator seine konfigurierten Ausgaben. Wenn mehrere Bedingungen vorhanden sind, können sie mit logischem AND oder OR kombiniert werden. AND erfordert, dass jeder Term wahr ist, damit die Gesamtkondition erfüllt ist; OR erfordert, dass mindestens ein Term wahr ist.

Ausgaben können als Konstanten definiert werden oder eine Eingangsanzahl von angegebenen Drähten weiterleiten. Wenn sowohl Red wire als auch Green wire für eine Ausgabe geprüft werden, werden deren Werte summiert. Der Combinator verarbeitet logikartige virtuelle Signale und unterstützt mehrere Modi dafür, welche Signale berücksichtigt werden und wie sie auf Ausgänge abgebildet werden:

  • Everything: behandelt jedes Signal, das auf den ausgewählten Drähten eine von null verschiedene Summe hat, als Kandidaten; wenn es als Ausgabenziel verwendet wird, kann dies alle nicht-null Eingänge weiterleiten (optional mit erzwungenem Wert 1).
  • Anything (one) versus Each: Anything wählt ein einzelnes Signal, das die Bedingung erfüllt, und gibt genau dieses Signal aus; Each wertet und gibt für jedes Signal aus, das die Bedingung besteht.
  • Specific signal: Bedingungen und Ausgaben können an ein benanntes Signal gebunden sein; wenn Each in Kombination mit einem spezifischen Ausgabesignal verwendet wird, gibt der Combinator die Ergebnisse auf diesem festen Signalnamen aus, statt auf jedem Bestandssignal.

Wenn der Ausgabemodus einen Wert von 1 verlangt, sendet der Combinator konstant 1 für die ausgewählten Signale, die den Test bestanden; wenn er die Eingangsanzahl anfordert, leitet er den tatsächlich aufsummierten Wert weiter. Bei Modi wie Each oder Anything werden nur Signale, die die Bedingung bestehen, für die Ausgabe berücksichtigt.

Es gibt eine eingebaute Verarbeitungsverzögerung: Ausgaben stehen dem Schaltungsnetze eine Tick nach der Auswertung zur Verfügung (ein Tick = 1/60 Sekunde). Der Decider combinator und der Kombinator für Berechnungen teilen diese Ein-Tick-Latenz-Eigenschaft.

Praktische Hinweise:

  • Verwende die Red wire- und Green wire-Selectoren, um zu steuern, ob Eingänge pro Netzwerk gelesen oder netzwerkübergreifend kombiniert werden; das Prüfen beider ist ein einfacher Weg, separate Netzwerke zu aggregieren.
  • Wähle Each, wenn der Combinator auf jedes unterschiedliche Signal unabhängig angewendet werden soll; wähle Anything, um ein einzelnes passendes Signal zu extrahieren, und Everything, um auf alle nicht-null Eingänge gleichzeitig zu wirken.
  • Kombiniere mehrere Bedingungen mit AND für strikte Konjunktionen (alle müssen wahr sein) oder mit OR, um bei irgendeiner einzelnen wahren Bedingung auszulösen.
  • Berücksichtige die Ein-Tick-Latenz beim Entwerfen enger Rückkopplungsschleifen oder zeitkritischer Schaltungen.
No related recipes

Other entities of this type

Last updated: