NodeOperatingSystem hinzugefügt

2026-03-16 20:41:55 +01:00
parent 932d49fca5
commit 2248ba7141

25
NodeOperatingSystem.md Normal file

@@ -0,0 +1,25 @@
# Betriebssystem der Mikrocontroller
Der Anwender ist frei in der Wahl des Betriebssystem für die Jede Mikrocontroller-Platine, solange einige Grundregeln eingehalten werden:
- muß als erstes eine im Netz eindeutige UID (64 Bit) generieren
- muß das oben skizzierte einfache Nachrichten-Protokoll implementieren und sich eine Adresse zwischen 1-251 zuweisen
- muß von Zeit zu Zeit ein Discovery-Paket senden, mit dem es sich bemerkbar macht
- kann in beliebigen Abständen Pakete mit gemessenen Sensordaten versenden (dafür gibt es spezielle Nachrichten)
- kann auf eingehende Pakete reagieren (z.B. reagiert bei mir ein LED-Strip-Controller-Node auf Nachrichten eines Bewegunsmelder-Nodes)
AqHome liefert für meine eigenen Nodes ein einfaches Betriebssystem mit, das diese Aufgaben alle erfüllt und leicht erweiterbar ist. Dabei benötigt es nur vergleichsweise wenig FLASH und selbst kaum RAM.
Das System unterscheidet zwischen Modulen (Treiber) und Anwendungen, wobei jeweils mehrere aktiv sein koennen.
Module sind lowlevel-Code und in erster Linie Treiber für Hardware-Geräte (z.B. den Umweltsensor SI7021) oder für Protokolle.
Anwendungen hingegen liegen auf höherer Ebene und verwenden z.B. die Module. Beispielsweise gibt es Anwendungen für den Netzwerk-Stack, für Bewegungsmelder-aktiviertes Licht, zum Berichten von Statistiken und von Sensordaten.
Zur Kommunikation mit Modulen und Anwendungen kennt das Betriebssystem verschiedene Funktionen:
- INIT: Initialisiert eine Modul oder eine Anwendung
- RUN: Wird einmal pro MainLoop aufgerufen
- EVERY100MS: wird einmal alle 100ms aufgerufen (system timer tick)
- EVERY1S: wird einmal pro Sekunde aufgerufen
- EVERY1M: wird einmal pro Minute aufgerufen
- EVERY1D: wird einmal pro Tag aufgerufen