1. vsomeip开源协议栈编译环境搭建
1.1 虚拟机网络配置
虚拟机 ubuntu20.04 ,因为使用进行双机通讯,所以需要把主机的防火墙给关了,而且虚拟机要配置城桥接模式,使2台ubuntu系统的机器处于同一网段,保证两台ubuntu设备能互相ping通。
比如我的两台ubuntu设备,一台是虚拟机,ip为:172.20.10.7,另一台是ubuntu设备(非虚拟机),ip为:172.20.10.6,处于同一局域网内,互相ping下,保证能ping通。
双机通讯需要支持路由组播功能,我们确认下是否支持组播,如下图,有 MULTICAST,表示支持组播
后面进行双机通讯的时候再介绍如何将组播地址加入到路由中
1.2 安装相关工具链
安装boot库和编译工具链
sudo apt-get install libboost-system-dev libboost-thread-dev libboost-log-dev
sudo apt-get install gcc g++ make cmake
cmake 推荐使用下面安装,可以安装高版本的cmake
sudo snap install cmake --classic
下面这些文档工具可安装也可以不安装
sudo apt-get install asciidoc source-highlight doxygen graphviz
安装git
sudo apt-get install git
通过git 克隆下载vsomeip源码工程
git clone https://github.com/GENIVI/vsomeip.git
github经常无法访问,就用国内的gitee
git clone https://gitee.com/mirrors/vsomeip.git
2. vsomeip开源协议栈编译和样例demo编译
2.1 编译vsomeip开源协议栈和安装
在git clone所在的文件夹内执行以下命令,进行编译和安装
cd vsomeip
mkdir build
cd build
cmake -DENABLE_SIGNAL_HANDLING=1 ..
make
sudo make install
-DENABLE_SIGNAL_HANDLING=1 是为了响应ctrl+c来手动终止进程
2.2 编译helloworld的样例
进入hello word目录下后,创建build目录
mkdir build
cd build
cmake ..
make
最后在build目录下生成,1个客户端,1个服务端
3. helloworld样例双机通讯配置
以上操作,2台ubuntu设备都是一样的,下面分别为服务端PC 和 客户端PC进行分别配置
3.1 helloworld 服务端配置(虚拟机,IP:172.20.10.7)
我们需要编写下helloworld-service 服务端的json配置文件,然后将该json文件重命令 “helloworld-service.json”并保存到helloworld / build 目录下即可
{