Vehicle Services Interface Definition Language (VSIDL) è un linguaggio specifico del dominio basato su protocol buffer. VSIDL è progettato per definire le interfacce e le interazioni tra i bundle di servizi in un veicolo definito dal software (SDV). Per informazioni sui pacchetti di servizi, vedi Unità di servizio e pacchetti di servizi.
VSIDL fornisce l'interfaccia per interagire con i servizi di livello inferiore nell'ecosistema SDV. Puoi utilizzare VSIDL per specificare le unità di servizio che comunicano utilizzando
chiamate di procedure remote (RPC), (inclusi streaming unari, client e server),
un tunnel di dati o mappature di servizi SOME/IP per l'interoperabilità con
le centraline elettroniche (ECU) AUTOSAR e gli stack SOME/IP (come COVESA
vsomeip). Il codice generato da VSIDLC gestisce la registrazione delle unità di servizio con
SDV Service Discovery.
Utilizzando file di configurazione aggiuntivi, il codice VSIDLC generato per i bundle di servizi può essere pacchettizzato come APEX, che vengono gestiti dagli agenti di Orchestrator, Update Manager e Vehicle Mode and Power Management (VPM).
Implementare i servizi SDV
Di seguito sono riportati i passaggi di alto livello per definire le interfacce e le interazioni tra i bundle di servizi in un'auto definita dal software e per creare pacchetti APEX per il deployment:
- Definisci le strutture di dati nei file protobuf (file con estensione
.proto). Utilizza protobuf per definire le strutture di dati scambiate tra le unità di servizio definite da VSIDL. - Definisci l'architettura del servizio nei file VSIDL (file con estensioni
.vsidl). VSIDL viene utilizzato per definire i bundle di servizi e le unità di servizio. VSIDL fa riferimento ai tipi dichiarati da protobuf (passaggio 1). - Genera middleware. Il middleware fornisce un modo standardizzato per la comunicazione e l'interazione tra i servizi.
- Implementa la logica di business personalizzata in Rust.
- Pacchettizza i bundle di servizi, incluso il codice della logica di business generata e personalizzata, in un pacchetto APEX per il deployment.
- Configura il catalogo per gli aggiornamenti automatici e il supporto IDE in Android Studio for Platform (ASfP).
Il sistema di tipi di VSIDLC opera a due livelli: Protobuf e VSIDL. Protobuf viene utilizzato per definire le strutture di dati scambiate tra le unità di servizio definite da VSIDL. Questa sezione spiega come vengono definite le strutture di dati in VSIDL e protobuf.
Passaggi successivi
Di seguito sono riportati alcuni documenti che potresti leggere:
- Per scoprire come definire le strutture di dati in protobuf, vai a Definire le strutture di dati.
- Per comprendere gli elementi principali del linguaggio VSIDL, consulta le specifiche del linguaggio.
- Per mappare i servizi VSIDL a ECU SOME/IP e AUTOSAR esterne, consulta la Panoramica dell'integrazione di SOME/IP.