车辆服务接口定义语言 (VSIDL) 是一种基于协议缓冲区的特定于领域的语言。 VSIDL 旨在定义软件定义车辆 (SDV) 中服务软件包之间的接口和交互。如需了解服务软件包,请参阅 服务单元和服务软件包。
VSIDL 提供与 SDV 生态系统中的较低级别服务进行交互的接口。您可以使用 VSIDL 指定使用 RPC(包括一元、客户端流式传输和服务器流式传输)或数据隧道进行通信的服务单元。 VSIDLC 生成的代码负责向 SDV 服务发现注册服务单元。
借助其他配置文件,VSIDLC 为服务软件包生成的代码可以打包为 APEX,这些 APEX 可以由 Orchestrator 和 SDV 生命周期管理器控制。
实现 SDV 服务
以下是在 SDV 中定义服务软件包之间的接口和交互,并创建 APEX 软件包以进行部署的高级步骤:
- 在 protobuf 文件(扩展名为
.proto的文件)中定义数据结构。使用 protobuf 定义由 VSIDL 定义的服务单元之间交换的数据结构。 - 在 VSIDL 文件(扩展名为
.vsidl的文件)中定义服务架构。VSIDL 用于定义服务软件包和服务单元。 VSIDL 引用由 protobuf 声明的类型(第 1 步)。 - 生成中间件。中间件为服务提供了一种标准化的方式来相互通信和交互。
- 在 Rust 中实现自定义业务逻辑。
- 将服务软件包(包括生成的和自定义的业务逻辑代码)打包到 APEX 软件包中以进行部署。
- 配置目录以实现自动更新和 IDE 支持。
VSIDLC 的类型系统在两个级别运行:Protobuf 和 VSIDL。Protobuf 用于定义由 VSIDL 定义的服务单元之间交换的数据结构。本部分介绍了如何在 VSIDL 和 protobuf 中定义数据结构。
后续步骤
接下来,您可以阅读以下文档: