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 auch recht einfach möglich z.B. ein anderes LCD zu verwenden indem nur der betreffende Treiber ausgetauscht wird.

Applikation

Die Applikationsschicht teilt sich wiederum auf in sogenannte Devices. Ein Device ist eine funktionale Einheit, die, wenn aktiv, auf dem Display etwas zur Anzeige bringen und auf Tastendrücke reagieren kann. 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 so an spezielle Wünsche angepastt werden, ohne andere Systemteile zu beeinträchtigen. Wenn jemand gerne seine Zylinderkopfinnenbeleuchtung dimmen möchte, kann er das in einem Device unterbringen, was dann in seiner Software-Version enthalten ist.

Messages

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. Ein Device kann auch selber den Fokus anfordern, wenn es z.B. eine Warnmeldung ausgeben muss.

Time Slicing

Alle regelmässig auszuführenden Tasks, z.B. das Auslesen des Tastaturpuffers und der Versand der Tastendrücke als Messages, werden beim System angemeldet. Diese Tasks werden dann zyklisch aufgerufen (Time Slicing). Hier kann man ohne weiteres eigene Funktionen hinzufügen, ohne sich um Details kümmern zu müssen.

Erweiterung

Im Rahmen der bisherigen Entwicklung ist schon so einiges entstanden. 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 wie oben beschrieben. Besonderes Schmankerl: ein voll parametrisierbares Edit-Control zur Eingabe von Text und Zahlenwerten durch den Benutzer. Mit diesem umfangreichen Grundgerüst kann man sich jetzt auf die höheren Schichten der Applikationsentwicklung zur Erweiterung der SIxO-Funktionalität konzentrieren.