Software
Treiber
Die Software ist modular aufgebaut mit einer Treiberschicht und einer Applikationsschicht. Die Applikation greift nur über die Treiberschicht auf die Hardware zu. So ist es z.B. recht einfach möglich ein anderes LCD zu verwenden, indem nur der betreffende Treiber ausgetauscht wird.
Die App
Die Applikationsschicht teilt sich wiederum auf in sogenannte Devices - funktionale Einheiten, die, wenn aktiv, auf dem Display etwas zur Anzeige bringen und auf Tastendrücke reagieren. Der Tripcounter z.B. bildet ein Device.
Jedes Device steuert seine eigenen Displayausgaben und Reaktionen auf Tastendrücke unabhängig von den anderen Devices im System. Damit kann sich der SIxO von Device zu Device komplett verwandeln.
Die einzelnen Devices arbeiten autark und können auch einzeln aus der Software entfernt werden, ohne die anderen Devices zu beeinträchtigen. Mit diesem Konzept kann der SIxO einfach erweitert und an spezielle Wünsche angepasst werden.
Unterhaltung
Die Devices unterhalten sich über eine Message-Queue miteinander. Messages werden von einer zentralen Instanz verwaltet und im System verteilt. Auch die Tastendrücke werden über Messages verteilt.
Der Fokus (Zugriff auf das Display und Reaktion auf Tastendrücke) wird kooperativ verteilt. Devices können sich gegenseitig aufrufen. Ein aufgewecktes Device merkt sich, wer es aus dem Schlaf gerissen hat und gibt den Fokus an den Störenfried nach getaner Arbeit wieder zurück.
Zeitscheiben
Alle regelmäßig auszuführenden Tasks, z.B. das Auslesen des Tastaturpuffers, werden beim System angemeldet. Diese Tasks werden dann zyklisch aufgerufen. Hier kann man ohne weiteres eigene Funktionen hinzufügen, ohne sich um Details kümmern zu müssen.
Gerüst
Für alle Hardware-Komponenten existieren Treiber, es gibt Routinen zur Ausgabe von Grafik und Text auf das Display, mehrere Zeichensätze, Symbole und die Systemumgebung mit Devices und Messages. Besonderes Schmankerl: ein voll parametrisierbares Edit-Control zur Eingabe von Text und Zahlenwerten.
Mit diesem umfangreichen Grundgerüst kann man sich ganz auf die Erweiterung der SIxO-Funktionalität konzentrieren.