Das lernst du heute
- Nachrichten aus Kennung und Wert
- Quittung
- Reihenfolge
Ein Chip in der Leitwarte soll einem Chip in der Pumpstation sagen, was zu tun ist: Pumpe an, Sollwert 250, Licht umschalten. Ein Logikspeicher zwischen beiden hält genau eine Zahl. Damit daraus eine Unterhaltung wird, braucht ihr eine Abmachung – ein Protokoll.
Nachrichten aus Kennung und Wert
Eine Nachricht hat drei Teile, gepackt in eine Zahl:
| Bits | Feld | Bedeutung |
|---|---|---|
| 0–15 | Wert | 0 bis 65535 |
| 16–23 | Kennung | was zu tun ist |
| 24–31 | Nummer | laufende Nummer der Nachricht |
Die Kennungen legst du fest und schreibst sie in beide Chips:
| Kennung | Befehl |
|---|---|
| 1 | Pumpe „Haupt“ an oder aus (Wert 1 oder 0) |
| 2 | Sollwert anzeigen |
| 3 | Licht umschalten |
Der Sender packt mit ins:
move nachricht wert
ins nachricht kennung 16 8
ins nachricht nummer 24 8
sbn SPEICHER HASH("Postfach") Setting nachricht
Quittung
Der Empfänger liest das Postfach, führt den Befehl aus und schreibt die Nummer der Nachricht in einen zweiten Speicher, die Quittung. Der Sender sieht daran, dass seine Nachricht angekommen ist.
Reihenfolge und Doppelausführung
Ein Logikspeicher behält seinen Wert. Der Empfänger liest dieselbe Nachricht also jeden Takt wieder. Für „Pumpe an“ ist das egal, für „Licht umschalten“ nicht: Das Licht würde zweimal pro Sekunde umschalten. Deshalb die Nummer: Der Empfänger merkt sich die letzte und führt nur aus, wenn eine neue kommt.
ext nummer nachricht 24 8
beq nummer letzte start # schon erledigt
move letzte nummer
Für die Reihenfolge gilt eine Regel: Der Sender schickt die nächste Nachricht erst, wenn die Quittung seine Nummer zeigt. Sonst überschreibt er eine Nachricht, die noch niemand gelesen hat. Nach 255 beginnt die Nummer wieder bei 0 – sie muss sich nur von der letzten unterscheiden.
Nach einem Neustart des Empfängers ist letzte zunächst 0. Liegt noch eine alte Nachricht im Postfach, würde er sie ein zweites Mal ausführen. Lies deshalb beim Start die Quittung als letzte ein – sie enthält die Nummer, die zuletzt erledigt wurde.
Schaubild
Übung
Aufgabe
Schreibe den Empfänger. Das Postfach „Postfach“ enthält Nachrichten nach der Tabelle oben:
- Kennung 1: Pumpe „Haupt“
On= Wert - Kennung 2: Anzeige „Soll“ = Wert
- Kennung 3: Lampe „Licht“ umschalten
- jede neue Nummer genau einmal ausführen, unbekannte Kennungen ignorieren
- danach die Nummer in „Quittung“ schreiben
- fehlt das Postfach, passiert nichts
Hinweise
Hinweis 1
ext nummer nachricht 24 8, dann beq nummer letzte start – alte Nachricht, nichts tun.
Hinweis 2
Je Kennung ein bne kennung N weiter vor der Aktion.
Hinweis 3
Umschalten: Lampe lesen, seqz, zurückschreiben.
Quiz
3 Fragen. Ab 60 % ist das Quiz bestanden – die Auswertung macht der Server.
Tag abschließen
- Übung im Simulator 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