# Service Oriented Middleware over IP (SOME/IP) DEMO ![Hardware setup](.resources/Setup_01.jpg)\ Instead of RAD-Pluto (discontinued) also RAD-Epsilon could be taken\ ## 1. Preparing neoVI-PIs (working on Ubuntu20.04 OS laptop and Raspberry Pi 4 Model B) * Use [PuTTY](https://www.putty.org/) or [MobaXterm](https://mobaxterm.mobatek.net) to connect to the PIs ### 1.1 Building VSOMEIP Stack (Extract from [SOME_IP User Manual.docx](.resources/SOME_IPUser_Manual.docx) * Install dependencies:\ ``` sudo apt-get install g++ cmake make libboost-all-dev asciidoc source-highlight doxygen graphviz ``` * Download VSOMEIP from GENIVI into your home directory:\ ``` git clone https://github.com/GENIVI/vsomeip ``` * Build process:\ ``` cd vsomeip ```\ ``` mkdir build ```\ ``` cd build ```\ ``` cmake -DENABLE_SIGNAL_HANDLING=1 ..``` * Creates the libraries for VSOMEIP: ``` make ``` - libvsomeip3: for SOME/IP - libvsomeip3-sd: for SOME/IP Service Discovery * ``` sudo make install ``` ### 1.2 Setting up the network * Set static IP addresses - IP Address:\ 192.168.10.100 - Server\ 192.168.10.101 - Client 1 and\ 192.168.10.102 - Client 2 - Netmask:\ 255.255.255.0 - Gateway: \ 192.168.10.101 * Add routing for supporting multicast messages \ ``` sudo route add -nv 224.224.224.245 dev eth0 ``` ### 1.3 Copy examples to PIs * Copy the [configuration examples](./resources/DEMO_EXAMPLES) to the PIs (e.g. into ./vsomeip/DEMO_EXAMPLES) * take care and change the ``` "unicast" ``` entrys in the JSON files, so they fit to the devices IP address * Build appications (starting in folder ./DEMO_EXAMPLES):\ ``` cd CLIENT1 ```\ ``` mkdir build ```\ ``` cd build ```\ ### 1.4. Preparing Jupyter You need to load the switch configuration into the Jupiter using the automotive switch utility. The utility has the filename ending in ``.scf`` it will mirror all the ports to the CoreMini. Otherwise the vspy configuration won't work. ## 2. Running setup ### 2.1 Starting Server and clients * [Enable SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/) access on the PIs * Use [PuTTY](https://www.putty.org/) or [MobaXterm](https://mobaxterm.mobatek.net) to connect to the PIs * Run application using the shell script e.g. ```nohup ./EX1.sh ### 2.2 Starting Vehicle Spy ![VSpy setup](./resources/someip_vspy.jpg)