Aktuell kommt es zu Probleme mit dem Email Versand dies wird schnellstmöglich behoben.

stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Batchmodus und die NaN-Falle

Kapitel 4 · Datennetz

Batchmodus und die NaN-Falle

Average, Sum, Minimum, Maximum, Count – und was passiert, wenn kein Gerät antwortet.

Lektion 11 von 18 10 Min.

lbn liest viele Geräte auf einmal. Wie daraus eine Zahl wird, bestimmt der letzte Wert, der Batchmodus:

ModusZahlErgebniswenn kein Gerät passt
Average0MittelwertNaN
Sum1Summe0
Minimum2kleinster Wert0
Maximum3größter Wert−unendlich
Count4Anzahl Geräte0

Average für Messwerte

Temperatur, Druck, Füllstand: immer Average. Mit Sum fällt der Fehler erst auf, wenn ein zweiter gleichnamiger Sensor dazukommt – dann addieren sich 2 × 300 K zu 600 K und deine Heizung glaubt, das Lager brennt.

Sum passt für Mengen, die sich wirklich addieren: Strom aller Solarpanels, Anzahl Items in allen Schränken.

Die NaN-Falle

Findet Average kein passendes Gerät – Name vertippt, Kabel durchgeschnitten, Sensor abgebaut –, kommt NaN heraus („keine Zahl“). Jede Rechnung mit NaN ergibt wieder NaN, jeder Vergleich ist falsch. Das Programm läuft still mit Unsinn weiter.

Abfangen mit snan (1 wenn NaN) oder bnan (springt bei NaN):

lbn temp SENSOR HASH("Raum") Temperature Average
snan fehlt temp       # 1 = kein Sensor gefunden
bnan temp stoerung    # oder gleich wegspringen
Achtung

Bei lbn zählt Count alle Geräte des Typs – den Namen ignoriert das Spiel dabei. Für „wie viele heißen so?“ also nicht verlassen.

Schaubild

Drei Messwerte, fünf Batchmodi Sensor „Raum“ 300 K Sensor „Raum“ 310 K Sensor „Raum“ 250 K lbn Average 286.67 Sum 860 Minimum 250 Maximum 310 Count 3 Sum bei Temperaturen: 860 K – die Heizung hält das für einen Brand.
Drei Sensoren, fünf Batchmodi: Der letzte Wert von lb/lbn entscheidet, wie aus vielen Messwerten einer wird.

Übung

Aufgabe

Im Netz hängen drei Stationsbatterien namens „Akku“ und eine namens „Reserve“ (Prefab StructureBattery, Füllgrad im LogicType Ratio, 0 bis 1).

In einer Endlosschleife:

  • r0 = durchschnittlicher Füllgrad der „Akku“-Batterien
  • r1 = der niedrigste Füllgrad der „Akku“-Batterien
  • r2 = 1, wenn keine „Akku“-Batterie gefunden wird (NaN), sonst 0

Hinweise

Hinweis 1

Zweimal lbn mit demselben Typ und Namen, nur der Batchmodus ist anders.

Hinweis 2

snan fehlt mittel legt 1 in fehlt, wenn der Mittelwert NaN ist.

Esc
↑ ↓ wählenEnter öffnen/ öffnet die Suche überall