Vehicle Services Interface Definition Language(VSIDL)は、プロトコル バッファの上に構築されたドメイン固有の言語です。VSIDL は、ソフトウェア定義車両(SDV)のサービス バンドル間のインターフェースとインタラクションを定義するように設計されています。サービス バンドルの詳細については、サービス単位とサービス バンドルをご覧ください。
VSIDL は、SDV エコシステムの低レベル サービスとやり取りするためのインターフェースを提供します。VSIDL を使用して、リモート プロシージャ コール(RPC)(単項、クライアント ストリーミング、サーバー ストリーミングを含む)、データ トンネル、または AUTOSAR 電子制御ユニット(ECU)および SOME/IP スタック(COVESA vsomeip など)と相互運用するための SOME/IP サービス マッピングを使用して通信するサービス ユニットを指定できます。VSIDLC によって生成されたコードは、SDV サービス ディスカバリによるサービス ユニットの登録を処理します。
追加の構成ファイルを使用すると、VSIDLC がサービス バンドル用に生成するコードを APEX としてパッケージ化できます。これは、オーケストレーターと SDV ライフサイクル マネージャーによって制御できます。
SDV サービスを実装する
SDV でサービス バンドル間のインターフェースとインタラクションを定義し、デプロイ用の APEX パッケージを作成する大まかな手順は次のとおりです。
- protobuf ファイル(
.proto拡張子のファイル)でデータ構造を定義します。protobuf を使用して、VSIDL で定義されたサービス ユニット間で交換されるデータ構造を定義します。 - VSIDL ファイル(
.vsidl拡張子のファイル)でサービス アーキテクチャを定義します。VSIDL は、サービス バンドルとサービス ユニットの定義に使用されます。VSIDL は、protobuf で宣言された型を参照します(ステップ 1)。 - ミドルウェアを生成します。ミドルウェアは、サービスが相互に通信してやり取りするための標準化された方法を提供します。
- Rust でカスタム ビジネス ロジックを実装します。
- 生成されたビジネス ロジック コードとカスタム ビジネス ロジック コードを含むサービス バンドルを、デプロイ用の APEX パッケージにパッケージ化します。
- 自動更新と IDE サポート用にカタログを構成します。
VSIDLC の型システムは、Protobuf と VSIDL の 2 つのレベルで動作します。Protobuf は、VSIDL で定義されたサービス ユニット間で交換されるデータ構造を定義するために使用されます。このセクションでは、VSIDL と protobuf でデータ構造を定義する方法について説明します。
次のステップ
次に読むドキュメントを以下にご紹介します。
- protobuf でデータ構造を定義する方法については、データ構造を定義するに進んでください。
- VSIDL 言語の主な要素については、言語仕様をご覧ください。
- VSIDL サービスを外部の SOME/IP および AUTOSAR ECU にマッピングするには、SOME/IP 統合の概要をご覧ください。