VSIDL und Middleware – Übersicht

Vehicle Services Interface Definition Language (VSIDL) ist eine domainspezifische Sprache, die auf Protocol Buffers basiert. VSIDL wurde entwickelt, um die Schnittstellen und Interaktionen zwischen Service-Bundles in einem Software Defined Vehicle (SDV) zu definieren. Informationen zu Dienstpaketen finden Sie unter Diensteinheiten und Dienstpakete.

VSIDL bietet die Schnittstelle für die Interaktion mit Diensten auf niedrigerer Ebene im SDV-Ökosystem. Mit VSIDL können Sie Service-Units angeben, die über Remote Procedure Calls (RPCs) kommunizieren, einschließlich Unary-, Client-Streaming- und Server-Streaming-RPCs, eines Datentunnels oder SOME/IP-Dienstzuordnungen für die Interoperabilität mit AUTOSAR-Steuergeräten (ECUs) und SOME/IP-Stacks (z. B. COVESA vsomeip). Der von VSIDLC generierte Code übernimmt die Registrierung von Service-Units bei SDV Service Discovery.

Mithilfe zusätzlicher Konfigurationsdateien kann der von VSIDLC für Service-Bundles generierte Code als APEX-Dateien verpackt werden, die von den Agents „Orchestrator“, „Update Manager“ und „Vehicle Mode and Power Management“ (VPM) verwaltet werden.

SDV-Dienste implementieren

Im Folgenden finden Sie die allgemeinen Schritte zum Definieren der Schnittstellen und Interaktionen zwischen Service-Bundles in einem SDV und zum Erstellen von APEX-Paketen für die Bereitstellung:

  1. Definieren Sie Datenstrukturen in Protobuf-Dateien (Dateien mit der Erweiterung .proto). Verwenden Sie Protobuf, um die Datenstrukturen zu definieren, die zwischen den durch VSIDL definierten Serviceeinheiten ausgetauscht werden.
  2. Definieren Sie die Dienstarchitektur in VSIDL-Dateien (Dateien mit der Erweiterung .vsidl). VSIDL wird verwendet, um Dienstbündel und Diensteinheiten zu definieren. VSIDL verweist auf Typen, die von Protobuf deklariert werden (Schritt 1).
  3. Middleware generieren Die Middleware bietet eine standardisierte Möglichkeit für Dienste, miteinander zu kommunizieren und zu interagieren.
  4. Benutzerdefinierte Geschäftslogik in Rust implementieren
  5. Packen Sie Ihre Service-Bundles, einschließlich des generierten und benutzerdefinierten Geschäftslogikcodes, in ein APEX-Paket für die Bereitstellung.
  6. Konfigurieren Sie Ihren Katalog für automatische Updates und IDE-Unterstützung in Android Studio for Platform (ASfP).

Das Typsystem von VSIDLC arbeitet auf zwei Ebenen: Protobuf und VSIDL. Mit Protobuf werden Datenstrukturen definiert, die zwischen den von VSIDL definierten Serviceeinheiten ausgetauscht werden. In diesem Abschnitt wird erläutert, wie Datenstrukturen in VSIDL und Protobuf definiert werden.

Nächste Schritte

Hier finden Sie weitere Dokumente, die Sie lesen könnten: