Web Modeler
Die Webseite des Web Modeler ist hier erreichbar.
Mithilfe des Web Modeler lassen sich die Metamodelle und die Generatoren aus dem GenoSens Umfeld verwenden, um eigene Modelle bzw. Projekte zu beschreiben und deren Code generieren zu lassen.
Im folgenden sollen die wichtigsten Funktionalitäten und Schritte, die zur Verwendung des Web Modeler notwendig sind, vorgestellt werden.
Startseite¶
Auf der Startseite, die im folgenden Bild zu sehen ist, lassen sich bereits erstellte Elemente suchen oder direkt mit der Erstellung eines neuen Modells beginnen.
Wir beginnen indem wir auf den Button + Neues Modell klicken und auf die Seite zum Anlegen eines neuen Modells weitergeleitet werden.
Neues Modell anlegen¶
Hier muss ein Name und eine optionale Beschreibung für das zu erstellende Modell angegeben werden. Über den Button Speichern kann mit der weiteren Modellierung fortgefahren werden. Es erscheint ein neuer Abschnitt Module über den mindestens ein Modul dem Modell zugeordnet werden muss.
Über den Button Modul zuordnen gelangt man auf die folgende Seite.
Hier kann nach einem bereits angelegten Modul gesucht werden oder ein neues Modul über den Button Neu angelegt werden.
Beim Anlegen eines neuen Moduls muss mindestens ein Name sowie eine Versionsnummer angegeben werden. Zudem müssen die erforderlichen DSL-Elemente selektiert und hinzugefügt werden (siehe Bild).
Nachdem die gewünschten DSL-Elemente selektiert wurden erscheint nach dem Abspeichern eine weitere Ansicht mit der man die einzelnen zu modellierenden Elemente hinzufügen und definieren kann. Dabei werden nur die Elemente der zuvor selektiert DSL-Elemente Obergruppen angezeigt. Über den jeweiligen Hinzufügen-Button lassen sich Elemente von diesem Typ anlegen. Zuvor muss das eben erstellte Modul noch unserem Modell zugeordnet werden. Dazu muss man auf die Modell-Hauptseite zurückkehren und dort über den bereits vorher verwendeten Modul zuordnen-Button erneut auf die Seite zum Suchen und Anlegen eines neuen Moduls navigieren. Dort kann man nun das zuvor angelegte Modul über das Suchfeld finden und über den Button Zuweisen dem Modell zuordnen. Nun kann mit dem Anlegen der eigentlichen Elemente fortgefahren werden.
Elemente anlegen¶
Wir beginnen mit dem Anlegen eines Application-Elements und vergeben einen Namen für das Element:
Durch den Weiter-Button gelangt man auf die nächste Seite Hier können Eigenschaften und Attribute des ausgewählten Elements definiert werden. Für unser Beispiel ist das aber nicht notwendig.
Auf der nächsten Seite werden dann die Abhängigkeiten und Beziehungen zu anderen Elementen des Modells definiert. Dazu müssen die Elementstrukturen aufgeklappt und bearbeitet bzw. befüllt werden.
Wir beginnen mit dem Hinzufügen eines Device-Element durch Klick auf den nebenstehenden Button. Beim Anlegen kann ein neues Element erstellt oder ein bereits vorhandenes gesucht und ausgewählt werden. Für unser Beispiel legen wir ein neues Element mit dem Namen “Tutorial_STM32” an. Diesem Element fügen wir noch eine Hardware Connection namens “Tutorial_Con_Button” hinzu.
Dieser Hardware Connection muss noch ein Sensor “Tutorial_Sensor” als Connected Hardware hinzugefügt werden und bei Hardware Triggers ein Element namens “Tutorial_Button_Interrupt” erstellt werden.
Danach wird eine weitere Hardware Connection namens “Tutorial_Con_Led” angelegt und auch diesem Element einige Unterelemente zugeordnet. Zuerst wird ein Actuator mit dem Namen “Tutorial_Led” als Connected Hardware hinzugefügt. Dieser Connected Hardware Verbindung wird eine Functions namens “Tutorial_Turn_On” hinzugefügt und als In Parameter ein Element mit dem Namen “Tutorial_Enabled” erstellt. Als Parameter Type wird nach einem bestehenden Element vom Typ “Primitive Type” und mit dem Namen “uint1” gesucht und ausgwählt.
Anschließend muss noch eine weitere Function hinzugefügt werden, die den Namen “Tutorial_Toggle” trägt.
Nun kann man ein Element für das Real-Time Operating System hinzufügen indem man im Suchfeld nach “FreeRTOS” sucht und das Element auswählt:
Zum Schluss legen wir noch die offenen Task-Elemente an. Über den nebenstehenden +-Button legen wir das erste Task Element namens “Tutorial_Button_Task” vom Typ “Input/Output Task” an. Dieser Task weisen wir ein Output Port Element zu indem wir über den Button ein neues Element mit dem Namen “Tutorial_Button_Output_Port” erstellen. Für die Destination erzeugen wir erneut ein neues Element namens “Tutorial_Dispatcher_Input_Port”. Das Anlegen dieser Elemente sollte folgendes Bild ergeben:
Auf die gleiche Art und Weise müssen noch drei weitere Tasks angelegt werden. Wir Erzeugen ein neues Task-Element und vergeben als Namen “Tutorial_Led_Task” und wählen erneut den Typ “Input/Output Task”. Hier fügen wir nun ein Input Port hinzu und nennen diesen “Tutorial_Led_Input_Port”.
Das dritte Task-Element ist vom Typ “Dispatcher Task” und trägt den Namen “Tutorial_Dispatcher_Task”. Hier fügen wir später als Input Port den zuvor erzeugten “Tutorial_Dispatcher_Input_Port” hinzu. Da der aktuelle Stand noch nicht im System abgelegt ist, lassen sich die angelegten Elemente noch nicht in der Suche finden. Diese Ergänzung werden wir im späteren Verlauf nach der ersten Speicherung nachholen. Als Output Port erzeugen wir ein Element “Tutorial_Dispatcher_Led_Output_Port” und wählen als Destination später den zuvor erzeugten “Tutorial_Led_Input_Port” aus. Dann erstellen wir den zweiten Output Port namens “Tutorial_Dispatcher_Serial_Output_Output_Port” und fügen hier als Destination ein neues Element mit dem Namen “Tutorial_Serial_Output_Input_Port” hinzu.
Das letzte Task-Element trägt den Namen “Tutorial_Serial_Output_Task” und ist vom Typ “Input/Output Task”. Hier wird als Input Port der zuvor erzeugte “Tutorial_Serial_Output_Input_Port” später hinzugefügt.
Abschließend klicken wir auf Weiter und beenden das Anlegen des App-Elements.
Auf der nächsten Seite erhält man einen Überblick über die getätigten Aktionen und kann das Anlegen dieser Elemente mit dem Weiter-Button bestätigen und speichern:
Nach erfolgreichem Anlegen und Abspeichern der erzeugten Elemente wird man auf die Hauptseite des Moduls weitergeleitet. Dort sind nun im unteren rechten Bereich unter “Elemente des Moduls” die gerade eben erzeugten Elemente aufgelistet:
Über diese Liste bearbeiten wir nun die offenen Elemente. Zuerst bearbeiten wir die “Tutorial_Button_Task” indem wir auf den bearbeiten-Button klicken. Im Abschnitt 3 “Verlinkte Elemente” weisen wir unter “Used Hardware Connection” das Element “Tutorial_Con_Button” hinzu, indem wir danach suchen.
Anschließend speichern wir das Element und kehren dadurch auf die Hauptseite des Moduls zurück.
Als Nächstes bearbeiten wir die “Tutorial_Led_Task”. Hier fügen wir im Abschnitt 2 “Optionen” über den Hinzufügen-Button eine “Timer Period” mit dem Wert “500” hinzu.
Im Abschnitt 3 ergänzen wir erneut unter “Used Hardware Connection” eine bereits vorhandenes Element indem wir nach “Tutorial_Con_Led” suchen.
Erneut speichern wir das Elemente ab und kehren zur Hauptseite des Moduls zurück.
Jetzt bearbeiten wir die “Tutorial_Dispatcher_Task”. Hier ergänzen wir im Abschnitt 3 zuerst den Input Port und suchen nach dem “Tutorial_Dispatcher_Input_Port” und fügen diesen hinzu.
Danach ergänzen wir beim Output Port “Tutorial_Dispatcher_Led_Output_Port” die Destination indem wir nach folgendem Element “Tutorial_Led_Input_Port” suchen.
Als letztes Element bearbeiten wir die “Tutorial_Serial_Output_Task”. Hier fügen wir im Abschnitt 3 nur ein Input Port hinzu, indem wir nach dem Element “Tutorial_Serial_Output_Input_Port” suchen.
Generierung¶
Sobald alle gewünschten Elemente einem Modul und damit einem Modell hinzugefügt worden sind, kann die Generierung des Codes initialisiert werden. Dazu muss die Hauptseite des gewünschten Moduls aktiv sein.
Anschließend kann über die drei Punkte am rechten oberen Rand ein Menü geöffnet werden
Hier kann dann der gewünschte Generator ausgewählt werden (in unserem Fall VD Modeler DES Generator) und die Generierung gestartet werden. Nach erfolgreicher Generierung, lassen sich die Codedateien über den Hyperlink als Archiv-Datei herunterladen.
Die heruntergeladenen Dateien lassen sich nun in der Entwicklungsumgebung öffnen und verwenden. Die dafür notwendigen Schritte und weitere Informationen sind im Abschnitt Entwicklungsumgebung zu finden.