stationeers.de Mod-Werkstatt · Dominik1199
EN Anmelden
  1. Start
  2. IC10-Akademie
  3. Tag 34

Tag 34 von 365 · Einsteiger · Monat 2: Ordnung und Datennetz

Projekt: Altcode aufräumen

Projekt: Ein alter Laborchip mit Pins, rohen Zahlen und Zeilensprung wird in den Werkstatt-Stil umgebaut – ohne dass sich sein Verhalten ändert.

Projekt 30 Min. Woche 5

Das lernst du heute

  • Pins durch lbn/sbn ersetzen
  • Zahlen in defines verschieben
  • Verhalten unverändert lassen

Im Labor hängt ein Chip, den jemand vor Monaten geschrieben hat. Er funktioniert, aber niemand traut sich, ihn anzufassen. Dazu kommt: Das Labor wird umgebaut, und die Geräte sollen künftig über Namen statt über Pins angesprochen werden. Heute baust du ihn um – und das Wichtigste dabei ist, dass er danach genau dasselbe tut.

Der alte Code

start:
yield
l r0 d0 Temperature
slt r1 r0 291.15
s d1 On r1
sgt r2 r0 297.15
s d2 On r2
sub r3 r0 273.15
s d3 Setting r3
j 1

Was er tut: Unter 18 °C läuft die Heizung, über 24 °C der Kühler, und die Anzeige zeigt die Temperatur in °C.

Die neuen Geräte

altGerätName im Netz
d0Gas-Sensor„Labor“
d1Wandheizung„Laborheizung“
d2Wandkühler„Laborkuehler“
d3LED-Anzeige„Labortemp“

Vorgehen

  1. Kopf und Abschnitte anlegen.
  2. Für jeden Gerätetyp ein define mit HASH("Prefab") und Kommentar.
  3. Die drei Zahlen in defines: 291,15 K (18 °C), 297,15 K (24 °C), 273,15 als CELSIUSOFFSET.
  4. Jedes Register bekommt einen alias.
  5. l und s mit Pins werden zu lbn und sbn mit HASH("Name"), Batchmodus Average.
  6. j 1 wird j start.

Nach jedem Schritt die Tests laufen lassen. Ein Umbau, der zwischendurch grün bleibt, ist ein sicherer Umbau.

Teilziele

  1. Kalt: Heizung an.
  2. Warm: Kühler an.
  3. Die Anzeige zeigt °C.
  4. Im Band zwischen 18 und 24 °C: beides aus.
Tipp

Der Prüfer zeigt dir Pins, rohe Register und Zeilensprünge an, wenn du im Reiter „Prüfer“ die Stil-Hinweise einschaltest. Arbeite die Liste ab, bis sie leer ist.

Achtung

Gerätenamen nur in ASCII: „Laborkuehler“, nicht „Laborkühler“. Mit Umlaut passt der Hash nicht zum Namen, den du im Spiel vergeben hast.

Schaubild

Aufbau eines Programms im bewährten Stil # --- Hitzewarnung --- define GRENZE 303.15 # 30 C define SENSOR HASH("…") alias temp r0 alias heiss r1 start: yield … j start 1 · define alles Einstellbare 2 · alias Namen für Register 3 · Hauptschleife mit yield, endlos
Einstellungen, Namen, Hauptschleife: Nach dem Umbau steht alles Einstellbare oben.

Projektaufgabe

Aufgabe

Bau den Laborchip in den Werkstatt-Stil um, ohne das Verhalten zu ändern:

  • Geräte über lbn/sbn mit den Namen „Labor“, „Laborheizung“, „Laborkuehler“, „Labortemp“ – keine Pins.
  • Keine der Zahlen 291.15, 297.15, 273.15 im Rumpf, alles in defines.
  • alias für jedes Register, Sprung auf ein Label.

Prefabs: StructureGasSensor, StructureWallHeater, StructureWallCooler, StructureConsoleLED5.

Teilziele

  1. Teilziel 1: Kalt – Heizung an
  2. Teilziel 2: Warm – Kühler an
  3. Teilziel 3: Anzeige in °C
  4. Teilziel 4: Im Band beides aus

Hinweise

Hinweis 1

Vier Prefab-defines, drei Zahlen-defines – dann ist der Rumpf frei von Zahlen.

Hinweis 2

l r0 d0 Temperature wird lbn temp SENSOR HASH("Labor") Temperature Average.

Hinweis 3

s d1 On r1 wird sbn HEIZUNG HASH("Laborheizung") On heizen.

Quiz

2 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.

Tag abschließen

  • Alle Teilziele des Projekts bestanden
  • Quiz mit mindestens 60 % bestanden

Ohne Konto wird der Fortschritt nur in diesem Browser gespeichert.

Fehler in dieser Lektion melden

Zum Melden bitte anmelden. Anmelden

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