赞
踩
汽车领域SOA比较热门的通信中间件主要有DDS和SOMEIP,本次主要做一下SOMEIP的实践,vsomeip是BMW实现的开源someip库,目前主要实现了someip的通信和服务发现功能。
1. 下载vsomeip源代码
地址:https://github.com/COVESA/vsomeip
下载最新的软件包,这里使用3.3.0版本
2. 安装依赖的软件包
打开源码documentation下的vsomeipUserGuide,可以看见编译的依赖要求。
vsomeip 依赖boost库,不同版本的boost库对vsomeip的编译影响都不一样,在这里我们不指定版本。
安装相关指令如下
- sudo apt-get install libboost-system-dev libboost-thread-dev libboost-log-dev
- sudo apt-get install asciidoc source-highlight doxygen graphviz
- sudo apt-get install gcc g++ make
3. vsomeip编译
根据代码的文档按照下面的指令编译
- mkdir build
- cd build
- cmake ..
- make
- sudo make install
执行大概需要几分钟,如果虚拟机支持多个线程一起编译,可以使用make -j4 代替make,提高编译速度。编译后生成相关的库文件。
其中:
libvsomeip3-cfg.so 配置库
libvsomeip3-e2e.so 安全库
libvsomeip3-sd.so 服务发现库
libvsomeip3.so 通信相关协议库
4. 编译helloworld例子
cd <root directory of vSomeIP-Lib>/examples/hello_world$:
- mkdir build
- cd build
- cmake ..
- make
然后分别执行服务端和客户端
在这里为了方便使用两个sh文件
server.sh:
- VSOMEIP_CONFIGURATION=../helloworld-local.json \
- VSOMEIP_APPLICATION_NAME=hello_world_service \
- ./hello_world_service3
client.sh
- VSOMEIP_CONFIGURATION=../helloworld-local.json \
- VSOMEIP_APPLICATION_NAME=hello_world_client \
- ./hello_world_client
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。