Hallo KI,
wow, alles, was ich sehe, ist "massive overuse of local variables"...
Du solltest dir wirklich überlegen, ob du so "kompliziert" programmieren musst!
- muss alles in separaten Schleifen erledigt werden?
- wenn in einer Schleife mehrfach lesend auf eine Größe zugegriffen wird, dann nutzt man höchstens eine lokale Variable und ansonsten Drähte!
- wenn man nur lokale Variablen benötigt, um einen Wert zu "updaten" (Read-Modify-Write-Operation), dann nutzt man ein Schieberegister!
- brauchst du die ganzen RubeGoldbergs wirklich? (Boolschen Wert nach Int umwandeln, in FormulaNode einen Vergleich anstellen, Int ausgeben und in Case-Struktur auswerten: kann man alles direkt mit boolscher Algebra erledigen!)
- Grundlagen der boolschen Algebra:
Code:
x OR TRUE = TRUE
x OR FALSE = x
x AND FALSE = FALSE
x AND TRUE = x
x OR x = x
x AND x = x
(fällt bei dir alles unter RubeGoldberg)
- eine Statemachine wäre sehr sinnvoll in deinem Fall!
- man kann auch Bilder in den FP-Hintergrund legen, was eine Alternative zum Zusammenklicken von Dekorationsobjekten sein mag... (keine Kritik, nur eine Idee!)
- Wenn man Rechenwerte hat, sollte man die auch als Zahl anzeigen und nicht als String. Das erspart ständiges hin- und herkonvertieren!
Ich habe bei deinem VI mal die Schleife zur Verbrauchs-Anzeige (kWh und Eur) als auch die Batterie-Schleife überarbeitet.
Schau dir das mal an. Dann kannst du die anderen Schleifen entsprechend überarbeiten. Und dir nebenbei Gedanken zum Erstellen einer Statemachine machen (die dein ganzes VI deutlich vereinfachen würde)...
Ich würde zwei Schleifen verwenden (so eine Art Producer-Consumer-Struktur): eine Schleife wertet deine Eingangsgrößen (Sonne, Wind, etc) aus und berechnet die Ausgabewerte (Verbrauch, Euro, etc.) sowie die Statusangaben für deine "Lauflichter". Die zweite Schleife bedient die Lauflichter in Abhängigkeit von den zugehörigen Statuswerten...