Wir entwerfen die Systemkommunikation mit zwei Runnables in einer Activity.
Kopieren Sie den mitgelieferten include-Ordner mit den zugehörigen Header-Dateien in den Projektordner. Für Testzwecke können Sie die main.cpp und die CMakeLists.txt verwenden.
Es ist wichtig Dateinamestruktur „activity.yaml“ zu beachten. Wir können unsere Activity beliebig benennen, aber „activity.yaml“ ist festdefiniert.
imports: []
timeoutMs: 1000
runnableInstances: []
Damit ist die Vorarbeit erledigt. Jetzt können wir mit dem ScomEditor ein Kommunikationsmodell entwickeln.
Mit einem Doppelklick auf die ScomEditor.exe starten wir den ScomEditor. Beim Start wählen wir den Ordner YamlModel aus. Die Datei Activity1.activity.yaml wird automatisch eingelesen.
Klicken Sie auf "Settings-Button".
In den "SettingOptions" konfigurieren wir die Pfade, wie auf der Abbildung 1 zu sehen.
Markieren Sie Activity1 in der Baumstruktur und wählen Sie per Rechtsklick "Create new runnable".
Das erste Runnable ist fertig. Erstellen Sie das zweite Runnable auf dieselbe Weise. Benennen Sie die erstellten Runnables in Runnable1 und Runnable2 um. Sie können einfach per Doppelklick mit der linken Maustaste auf ein Runnable klicken, um die Namen neu zu vergeben. In jedem Runnable werden automatisch zwei Ports (Input und Output) erstellt. Benennen Sie diese Ports in PortIn und PortOut um.
Generell können Sie Verbindungen nur von einem Output-Port zu einem Input-Port erstellen. Klicken Sie auf Runnable1:PortOut1 und wählen Sie mit der rechten Maustaste "Create new Connection".
Wählen Sie im neuen Dialogfenster den Verweis zu Runnable2:PortIn aus:
Schließlich speichern Sie die Connection mit dem „Save Connection“.
Die erste Port-Verbindung ist fertig. Erstellen Sie die zweite Port-Verbindung zwischen Runnable2:PortOut und Runnable1:PortIn auf dieselbe Weise wie die erste.
Speichern Sie dieses Kommunikationsmodell über den Button "Save Yaml".
Das Kommunikationsmodell ist damit erstellt. Im Ordner YamlModel finden Sie alle zum Kommunikationsmodell zugehörigen Yaml-Dateien. Wenn Sie in der Übersicht des Kommunikationsmodells auf Runnable1 klicken, sehen Sie alle Verbindungen zwischen den Runnables über Ports, die farblich gekennzeichnet sind. Klicken Sie auf portOutput, um alle Verbindungen von diesem Port zu sehen.
Klicken Sie auf den Button „Generate Code“.
Der C++ Code wurde auf Basis von Templates generiert.Wenn in den Settings die Option „CMake Build aktiv“ aktiviert ist, wird CMake ausgeführt und der Code kompiliert.
In Abbildung 7 sehen Sie den generierten Content: