Die Kommandoverarbeitung in der Firmware der CAN-Knoten war ein unschönes
Stück Spaghetti-Code. Es dient trotzdem als Referenzimplementierung für
die modellbasierte Firmware-Entwicklung. Zuerst wurde ein Zustandsdiagramm
gefertigt, das die Betriebszustände enthält. Die eingehenden Kommandos sind
die Zustandsübergänge enthalten. Aus diesem Diagramm wird mit Hilfe von
openArchitectureWare
der Code für die Kommandoauswertung generiert. Der Code enthält relativ
viele Callbacks und switch/case-Anweisungen und bläht den Binärcode um ca.
1,5 KByte auf. Das ist aber nicht weiter schlimm, da jetzt noch Platz für
ca. 18 KByte im Flash des ATmega32 vorhanden ist.
Auf dem heutigen
Yakindu
-Tag wurde die
itemis AG
für ihre innovativen Leistungen im Bereich der modellbasierten
Software-Enwicklung im Embedded Umfeld ausgezeichnet. Bei dieser
Gelegenheit wurde die Vorführanlage gezeigt. Das Bild zeigt die
itemis-Vorstände nach der Preisverleihung.
Dieses Bild zeigt schon einen Vorgeschmack auf die bevorstehende
Elektrifizierung. Es zeigt die rechtsseitige Weichenstraße macht die
Komplexität deutlich: Jedes Ausfahrsignal hat sechs LEDs. Mit ihren
Schutzwiderständen baumeln sie noch unmotiviert aus der Platte. Zusätzlich
kann man die Weichenanschlüsse erkennen und die provisorische Verdrahtung
der Gleisabschnitte. Alle Anschlüsse werden an Mikrocontroller der Firma
Atmel
angeschlossen, die dann zentral von einem PC gesteuert werden. Einige kleine
Details zur Stellwerkssteuerung habe ich in einem
gesondertem Artikel
beschrieben.