OTX-Scripting Support
- Jörg Supke

- vor 3 Tagen
- 3 Min. Lesezeit

Rechenintensive Aufgaben effizient auslagern - In vielen Projekten der Fahrzeugdiagnose und Testautomatisierung hat sich OTX als leistungsfähige Beschreibungssprache etabliert. OTX ist bewusst als domänenspezifische Sprache (DSL) für Test- und Diagnoseabläufe in der Automobilindustrie konzipiert. Die Sprache ist Turing-vollständig, sodass sich prinzipiell jede Art von Logik in OTX formulieren lässt. In der Praxis zeigt sich jedoch: Nicht jede Aufgabe sollte auch tatsächlich in OTX implementiert werden. Gerade bei rechenintensiven Algorithmen oder bei Funktionen, die außerhalb der eigentlichen Diagnoseprozesse liegen, ist der Einsatz einer spezialisierten Skriptsprache oft deutlich effizienter, ohne dabei die Prozesssicherheit zu vernachlässigen. Daher wurde die OTX-Toolkette um einen Scripting-Support erweitert.
Inhalt
Warum OTX nicht immer die beste Wahl ist
OTX wurde primär dafür entwickelt um:
Diagnose- und Testabläufe zu beschreiben
Fahrzeugkommunikation zu orchestrieren
Prüfabläufe strukturiert und nachvollziehbar zu modellieren
Für diese Aufgaben ist OTX hervorragend geeignet. Anders sieht es bei Aufgaben aus wie:
komplexe mathematische Berechnungen
Datenanalyse oder Signalverarbeitung
spezialisierte Algorithmen
Nutzung vorhandener Bibliotheken
Solche Funktionen lassen sich oft in klassischen Skriptsprachen deutlich kompakter und performanter implementieren.
Erweiterung der OTX-Toolkette
Um diese Lücke zu schließen, wurde die EMOTIVE OTX-Toolkette erweitert. OTX-Sequenzen können nun externe Skripte in Lua und Python aufrufen:
Wenn es um Schlankheit und Performance geht, insbesondere beim Einsatz von OTX in embedded Systemen, ist Lua die beste Wahl. Da die OTX-Runtime Lua bereits verwendet, sind keine weiteren Systemvoraussetzungen notwendig.
Aufgrund des großen Ökosystems an Bibliotheken lassen sich komplexe Berechnungen effizient in Python implementieren.
Somit lassen sich spezialisierte Funktionen einfach aus der OTX-Sequenz heraus nutzen. Das Prinzip ist bewusst einfach gehalten:
Die OTX-Sequenz ruft eine definierte Skriptfunktion auf
Parameter werden übergeben
Das Skript führt die Berechnung aus
Ergebnisse werden an OTX zurückgegeben
So bleibt die Orchestrierung weiterhin vollständig in OTX, während spezialisierte Logik in einer geeigneten Sprache umgesetzt wird.
Neutrale Anbindung über das OTX Mapping
Die Verbindung zwischen OTX und dem Skript erfolgt über das OTX-Mapping. Dabei werden die aufzurufende Funktion, die Parameter und die Rückgabewerte plattformneutral an OTX-Signaturen gebunden.

Der Vorteil dieses Ansatzes:
klare Schnittstelle zwischen OTX und Skript
keine Abhängigkeit zu einer spezifischen Funktion
wiederverwendbare Integrationsmechanismen
Skripte werden mit dem PTX verteilt
Ein weiterer wichtiger Punkt ist die Verteilung der Skripte. Die Skriptdateien werden innerhalb der PTX-Datei self-contained transportiert. Sie können somit direkt ausgeführt werden. Eine separate Installation ist nicht erforderlich. Der Anwender erhält also ein vollständig lauffähiges PTX, inklusive aller benötigten Skripte.
Typische Einsatzfälle
Die Integration der Skriptsprachen in OTX eröffnet eine Reihe praktischer Möglichkeiten:
Rechenintensive Algorithmen - beispielsweise:
Kryptographie
Signalverarbeitung
statistische Auswertungen
sicherheitskritische Berechnungen
Nutzung vorhandener Bibliotheken - Gerade Python bietet ein großes Ökosystem an Bibliotheken für:
Datenanalyse
Visualisierung
mathematische Berechnungen
Erweiterung der OTX-Funktionalität - Aufgaben, die aktuell nicht direkt in OTX abbildbar sind, können unkompliziert ausgelagert werden.
Beispiel
Das Beispiel zeigt ein Lua-Skript zur Berechnung einer Liste aus Zufallszahlen, siehe Funktion RandomList. Diese Liste wird dann in der Funktion QuickSort sortiert. Der Kommentar oberhalb der Funktionen dient dem Mapping der Lua-Funktionen auf die DeviceServiceSignature von OTX.
Im folgenden OTX-Beispiel werden die beiden Lua-Funktionen an zwei DeviceServiceSignature gebunden und über die OTX-Action ExecuteDeviceService aufgerufen.
Best of Both Worlds
Mit der neuen Scripting-Unterstützung kombiniert die OTX-Toolkette die Stärken zweier Welten:
OTX für strukturierte Test- und Diagnoseabläufe
Skriptsprachen für spezialisierte und rechenintensive Funktionen
Das Ergebnis ist eine flexiblere, leistungsfähigere Testarchitektur, ohne die Vorteile der standardisierten OTX-Beschreibung aufzugeben.


