1. 整体架构

2. 组件详解
2.1 CommonAPI
-
作用: 提供标准化的、类型安全的服务接口
-
特性:
-
接口定义语言 (Franca IDL)
-
自动生成客户端代理 (Proxy) 和服务器存根 (Stub)
-
支持异步/同步调用
-
与传输协议解耦
-
2.2 CommonAPI-SOME/IP 绑定
-
作用: 桥接 CommonAPI 和 SOME/IP
-
功能:
-
将 CommonAPI 方法调用转换为 SOME/IP 消息
-
处理 SOME/IP 事件到 CommonAPI 广播的映射
-
管理订阅/取消订阅
-
2.3 vsomeip
-
作用: SOME/IP 协议栈实现
-
功能:
-
SOME/IP 服务发现 (SD)
-
消息序列化/反序列化
-
TCP/UDP 传输
-
服务注册和发现
-
3、前置条件准备
3.1、依赖项说明
需要安装的包(Ubuntu/Debian)
bash
# 安装编译工具
sudo apt-get update
sudo apt-get install -y build-essential cmake git
# 安装依赖库
sudo apt-get install -y libboost-system-dev libboost-thread-dev libboost-log-dev
3.2、从源码编译依赖库和代码生成工具
bash
#从源码安装 CommonAPI 和 vsomeip
# 1. 安装 vsomeip
git clone https://github.com/COVESA/vsomeip.git
cd vsomeip
mkdir build && cd build
cmake -DENABLE_SIGNAL_HANDLING=1 ..
make
sudo make install
# 2. 安装 CommonAPI Core
git clone https://github.com/COVESA/capicxx-core-runtime.git
cd capicxx-core-runtime
mkdir build && cd build
cmake ..
make
sudo make install
# 3. 安装 CommonAPI SOME/IP
git clone https://github.com/COVESA/capicxx-someip-runtime.git
cd capicxx-someip-runtime
mkdir build && cd build
cmake ..
make
sudo make install
# 4. 安装 CommonAPI SOME/IP 代码生成工具
# commonapi-core-generator
https://github.com/eclipse/capicxx-core-tools
# commonapi-someip-generator
https://github.com/eclipse/capicxx-someip-tools
都编译成功后 我们将获得如图所示的依赖:

capicxx-core-runtime、capicxx-someip-runtime、vsomeip 为编译依赖库
commonapi_core_generator、commonapi_someip_generator 代码生成工具
这些重点关注 后面要考 接下来就是实战