Grundsätzlich besteht die Codeerzeugung darin, eine Modell-Beschreibung in kompilierbaren und nachher natürlich ausführbaren Code zu transformieren. Das Modell kann grafischer Natur sein oder ein textuelles Datenmodell z.B. basierend auf den Standards JSON oder XML .
Unser Codegenerator ist eine .NET/ C# Applikation, welche C oder C++ Code für das embedded System erzeugt. Wir verwenden textuelle Modelle in JSON, welche die Datenstrukturen, Wertebereiche, Inhaltsbeschreibung etc. enthalten.
Der Generator liest das Modell ein, dann prüft er das Modell auf Syntax und Konsistenz und transformiert das Modell für die Codeerzeugung. Mit Hilfe der .NET Template Engine und den spezifischen Code Templates für C und C++, oder auch C# etc. erzeugt er dann den Zielcode für das embedded System oder auch für ein PC/ Tablet basiertes Konfigurationstool.
Wir verwenden Codegenerierung pragmatisch, d.h. nur dort wo wir wirklich einen Nutzen erzeugen können. Die wichtigsten zwei Anwendungen sind Kommunikation und Management von Daten und Bedienschnittstellen.
Für die Kommunikation modellieren wir Übertragungsdaten ("Protokolle") und Konfigurationsdaten. Daraus lässt sich der Code für Speicherung, Datenmanagement (nichtflüchtige Speicherung...) und Übertragung (sowohl zwischen embedded Controllern als auch zu übergeordneten (PC-) Systemen) erzeugen. Zusätzlich fällt auch gerade eine aktuelle Dokumentation der Daten an.
Die Modellierung von GUI (Graphical User Interface) Menüs ist die andere Anwendung. Der Menü-Baum und die dazugehörigen Berechtigungen werden modeliert, aus diesem Modell erzeugen wir den Code für das ganze Menü inklusive der Verbindung zum Datenmodell sowie den Code für das Zugriffs- und Berechtigungsmanagement.
Eine einfachere Anwendung ist Versionsinformation. Dabei wird der Code für die Verwaltung der Versionsinformationen der Software des embedded Systems automatisch erzeugt und kann z.B. für das Management von Updates verwendet werden.
Wenn wir in Projekten Codegenerierung einsetzen, dann können wir den Aufwand für die Entwicklung verkleinern und gleichzeitig die Qualität optimieren, vor allem auch für Änderungen kurz vor dem oder kurz nach dem Serienstart.
Wenn auch Sie von unserer Codegenerierung profitieren möchten, kontaktieren Sie mich:
Alois Cavelti
Haben Sie zusätzliche Fragen? Haben Sie eine andere Meinung? Wenn ja, mailen Sie mir oder kommentieren Sie Ihre Gedanken unten!
Projekte? Ideen? Fragen? Machen wir einen kostenlosen Erst-Workshop!
Keine Kommentare