vsomeip icon indicating copy to clipboard operation
vsomeip copied to clipboard

Multiple routing managers error.

Open Shangwei1024 opened this issue 2 years ago • 2 comments

I have enabled ENABLE_MULTIPLE_ROUTING_MANAGERS when building. when i run "env VSOMEIP_CONFIGURATION=./vsomeip01.json VSOMEIP_APPLICATION_NAME=service01 ./subscribe" first and run "env VSOMEIP_CONFIGURATION=./vsomeip02.json VSOMEIP_APPLICATION_NAME=service02 ./subscribe" second in the terminal . When the second program runs, the first program will report an error.But running the second one first and then running the first one works.I am running both programs on the same linux computer. My computer has two network cards.

The log: [root@ihawk examples]# env VSOMEIP_CONFIGURATION=./vsomeip01.json VSOMEIP_APPLICATION_NAME=service01 ./subscribe 2022-02-24 10:51:13.842122 [info] Parsed vsomeip configuration in 0ms 2022-02-24 10:51:13.842694 [info] Using configuration file: "./vsomeip01.json". 2022-02-24 10:51:13.842839 [info] Initializing vsomeip application "service01". 2022-02-24 10:51:13.843487 [info] Instantiating routing manager [Host]. 2022-02-24 10:51:13.843878 [info] create_local_server Routing endpoint at /tmp/vsomeip-0 2022-02-24 10:51:13.844361 [info] Service Discovery enabled. Trying to load module. 2022-02-24 10:51:13.845020 [info] Service Discovery module loaded. 2022-02-24 10:51:13.846752 [info] Application(service01, 0001) is initialized (11, 100). Client settings [protocol=UDP] 2022-02-24 10:51:13.847467 [info] REGISTER EVENT(0001): [3030.0001.8001:is_provider=false] 2022-02-24 10:51:13.847618 [info] REGISTER EVENT(0001): [3030.0001.8004:is_provider=false] 2022-02-24 10:51:13.847759 [info] REGISTER EVENT(0001): [3030.0001.8002:is_provider=false] 2022-02-24 10:51:13.847891 [info] REGISTER EVENT(0001): [3030.0001.8003:is_provider=false] 2022-02-24 10:51:13.848075 [info] SUBSCRIBE(0001): [3030.0001.0001:ffff:1] 2022-02-24 10:51:13.848294 [info] SUBSCRIBE(0001): [3030.0001.0002:ffff:1] 2022-02-24 10:51:13.848490 [info] Starting vsomeip application "service01" (0001) using 2 threads I/O nice 255 2022-02-24 10:51:13.850277 [info] Watchdog is disabled! 2022-02-24 10:51:13.850758 [info] io thread id from application: 0001 (service01) is: 7ffff7f8a8c0 TID: 17698 2022-02-24 10:51:13.850797 [info] io thread id from application: 0001 (service01) is: 7ffff2492700 TID: 17702 2022-02-24 10:51:13.851341 [info] shutdown thread id from application: 0001 (service01) is: 7ffff3494700 TID: 17700 2022-02-24 10:51:13.851027 [info] main dispatch thread id from application: 0001 (service01) is: 7ffff3c95700 TID: 17699 Service [3030.1] is NOT available. 2022-02-24 10:51:13.852679 [info] REQUEST(0001): [3030.0001:255.4294967295] 2022-02-24 10:51:13.853635 [info] Listening at /tmp/vsomeip-1 2022-02-24 10:51:13.859062 [info] vSomeIP 3.1.20.3 | (default) 2022-02-24 10:51:13.859816 [info] Network interface "eth4.3" state changed: up 2022-02-24 10:51:13.860786 [info] Route "224.0.0.0/4 if: eth4.3 gw: n/a" state changed: up 2022-02-24 10:51:13.861228 [info] udp_server_endpoint_impl: SO_RCVBUF is: 212992 2022-02-24 10:51:13.861429 [debug] Joining to multicast group 239.127.3.1 from 172.31.3.48 2022-02-24 10:51:13.861595 [info] udp_server_endpoint_impl: SO_RCVBUF (Multicast) is: 212992 2022-02-24 10:51:13.863373 [info] SOME/IP routing ready. 2022-02-24 10:51:17.144672 [warning] Didn't receive a multicast SD message for 1100ms. 2022-02-24 10:51:17.145332 [debug] Leaving the multicast group 239.127.3.1 from 172.31.3.48 *** Error in `./subscribe': free(): invalid pointer: 0x00007fffec000a08 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x81329)[0x7ffff6952329] /usr/local/lib/libvsomeip3.so.3(+0x48ecb)[0x7ffff79edecb] /usr/local/lib/libvsomeip3.so.3(_ZN10vsomeip_v324udp_server_endpoint_impl14leave_unlockedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x2b1)[0x7ffff7a77421] /usr/local/lib/libvsomeip3.so.3(_ZN10vsomeip_v324udp_server_endpoint_impl13join_unlockedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x63)[0x7ffff7a77753] /usr/local/lib/libvsomeip3.so.3(_ZN10vsomeip_v324udp_server_endpoint_impl4joinERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x3f)[0x7ffff7a777af] /usr/local/lib/libvsomeip3-sd.so.3(+0x2eebe)[0x7ffff777debe] /usr/local/lib/libvsomeip3-sd.so.3(+0x37b41)[0x7ffff7786b41] /usr/local/lib/libvsomeip3.so.3(+0x16ba46)[0x7ffff7b10a46] /lib64/libstdc++.so.6(+0xb6bd0)[0x7ffff726dbd0] /lib64/libpthread.so.0(+0x7ea5)[0x7ffff753aea5] /lib64/libc.so.6(clone+0x6d)[0x7ffff69cfb0d] ======= Memory map: ======== 00400000-0040a000 r-xp 00000000 fc:00 1482261 /root/Desktop/ysw/vsomeip-master/examples/subscribe 0060a000-0060b000 r--p 0000a000 fc:00 1482261 /root/Desktop/ysw/vsomeip-master/examples/subscribe 0060b000-0060c000 rw-p 0000b000 fc:00 1482261 /root/Desktop/ysw/vsomeip-master/examples/subscribe 0060c000-0064d000 rw-p 00000000 00:00 0 [heap] 7fffe4000000-7fffe4021000 rw-p 00000000 00:00 0 7fffe4021000-7fffe8000000 ---p 00000000 00:00 0 7fffe8000000-7fffe8021000 rw-p 00000000 00:00 0 7fffe8021000-7fffec000000 ---p 00000000 00:00 0 7fffec000000-7fffec021000 rw-p 00000000 00:00 0 7fffec021000-7ffff0000000 ---p 00000000 00:00 0 7ffff1c92000-7ffff1c93000 ---p 00000000 00:00 0 7ffff1c93000-7ffff2493000 rw-p 00000000 00:00 0 7ffff2493000-7ffff2494000 ---p 00000000 00:00 0 7ffff2494000-7ffff2c94000 rw-p 00000000 00:00 0 7ffff2c94000-7ffff2c95000 ---p 00000000 00:00 0 7ffff2c95000-7ffff3495000 rw-p 00000000 00:00 0 7ffff3495000-7ffff3496000 ---p 00000000 00:00 0 7ffff3496000-7ffff3c96000 rw-p 00000000 00:00 0 7ffff3c96000-7ffff3ca5000 r-xp 00000000 fc:00 201394865 /usr/lib64/libbz2.so.1.0.6 7ffff3ca5000-7ffff3ea4000 ---p 0000f000 fc:00 201394865 /usr/lib64/libbz2.so.1.0.6 7ffff3ea4000-7ffff3ea5000 r--p 0000e000 fc:00 201394865 /usr/lib64/libbz2.so.1.0.6 7ffff3ea5000-7ffff3ea6000 rw-p 0000f000 fc:00 201394865 /usr/lib64/libbz2.so.1.0.6 7ffff3ea6000-7ffff3ebb000 r-xp 00000000 fc:00 201394769 /usr/lib64/libz.so.1.2.7 7ffff3ebb000-7ffff40ba000 ---p 00015000 fc:00 201394769 /usr/lib64/libz.so.1.2.7 7ffff40ba000-7ffff40bb000 r--p 00014000 fc:00 201394769 /usr/lib64/libz.so.1.2.7 7ffff40bb000-7ffff40bc000 rw-p 00015000 fc:00 201394769 /usr/lib64/libz.so.1.2.7 7ffff40bc000-7ffff40d3000 r-xp 00000000 fc:00 201395093 /usr/lib64/libelf-0.166.so 7ffff40d3000-7ffff42d2000 ---p 00017000 fc:00 201395093 /usr/lib64/libelf-0.166.so 7ffff42d2000-7ffff42d3000 r--p 00016000 fc:00 201395093 /usr/lib64/libelf-0.166.so 7ffff42d3000-7ffff42d4000 rw-p 00017000 fc:00 201395093 /usr/lib64/libelf-0.166.so 7ffff42d4000-7ffff4334000 r-xp 00000000 fc:00 201394755 /usr/lib64/libpcre.so.1.2.0 7ffff4334000-7ffff4533000 ---p 00060000 fc:00 201394755 /usr/lib64/libpcre.so.1.2.0 7ffff4533000-7ffff4534000 r--p 0005f000 fc:00 201394755 /usr/lib64/libpcre.so.1.2.0 7ffff4534000-7ffff4535000 rw-p 00060000 fc:00 201394755 /usr/lib64/libpcre.so.1.2.0 7ffff4535000-7ffff4539000 r-xp 00000000 fc:00 201395589 /usr/lib64/libattr.so.1.1.0 7ffff4539000-7ffff4738000 ---p 00004000 fc:00 201395589 /usr/lib64/libattr.so.1.1.0 7ffff4738000-7ffff4739000 r--p 00003000 fc:00 201395589 /usr/lib64/libattr.so.1.1.0 7ffff4739000-7ffff473a000 rw-p 00004000 fc:00 201395589 /usr/lib64/libattr.so.1.1.0 7ffff473a000-7ffff477f000 r-xp 00000000 fc:00 201395782 /usr/lib64/libdw-0.166.so 7ffff477f000-7ffff497f000 ---p 00045000 fc:00 201395782 /usr/lib64/libdw-0.166.so 7ffff497f000-7ffff4981000 r--p 00045000 fc:00 201395782 /usr/lib64/libdw-0.166.so 7ffff4981000-7ffff4982000 rw-p 00047000 fc:00 201395782 /usr/lib64/libdw-0.166.so 7ffff4982000-7ffff4998000 r-xp 00000000 fc:00 202103958 /usr/lib64/libresolv-2.17.so 7ffff4998000-7ffff4b98000 ---p 00016000 fc:00 202103958 /usr/lib64/libresolv-2.17.so 7ffff4b98000-7ffff4b99000 r--p 00016000 fc:00 202103958 /usr/lib64/libresolv-2.17.so 7ffff4b99000-7ffff4b9a000 rw-p 00017000 fc:00 202103958 /usr/lib64/libresolv-2.17.so 7ffff4b9a000-7ffff4b9c000 rw-p 00000000 00:00 0 7ffff4b9c000-7ffff4ba0000 r-xp 00000000 fc:00 201394960 /usr/lib64/libgpg-error.so.0.10.0 7ffff4ba0000-7ffff4d9f000 ---p 00004000 fc:00 201394960 /usr/lib64/libgpg-error.so.0.10.0 7ffff4d9f000-7ffff4da0000 r--p 00003000 fc:00 201394960 /usr/lib64/libgpg-error.so.0.10.0 7ffff4da0000-7ffff4da1000 rw-p 00004000 fc:00 201394960 /usr/lib64/libgpg-error.so.0.10.0 7ffff4da1000-7ffff4e1e000 r-xp 00000000 fc:00 201394638 /usr/lib64/libgcrypt.so.11.8.2 7ffff4e1e000-7ffff501d000 ---p 0007d000 fc:00 201394638 /usr/lib64/libgcrypt.so.11.8.2 7ffff501d000-7ffff501e000 r--p 0007c000 fc:00 201394638 /usr/lib64/libgcrypt.so.11.8.2 7ffff501e000-7ffff5021000 rw-p 0007d000 fc:00 201394638 /usr/lib64/libgcrypt.so.11.8.2 7ffff5021000-7ffff5022000 rw-p 00000000 00:00 0 7ffff5022000-7ffff5047000 r-xp 00000000 fc:00 201394912 /usr/lib64/liblzma.so.5.2.2 7ffff5047000-7ffff5246000 ---p 00025000 fc:00 201394912 /usr/lib64/liblzma.so.5.2.2 7ffff5246000-7ffff5247000 r--p 00024000 fc:00 201394912 /usr/lib64/liblzma.so.5.2.2 7ffff5247000-7ffff5248000 rw-p 00025000 fc:00 201394912 /usr/lib64/liblzma.so.5.2.2 7ffff5248000-7ffff526c000 r-xp 00000000 fc:00 201443062 /usr/lib64/libselinux.so.1 7ffff526c000-7ffff546b000 ---p 00024000 fc:00 201443062 /usr/lib64/libselinux.so.1 7ffff546b000-7ffff546c000 r--p 00023000 fc:00 201443062 /usr/lib64/libselinux.so.1 7ffff546c000-7ffff546d000 rw-p 00024000 fc:00 201443062 /usr/lib64/libselinux.so.1 7ffff546d000-7ffff546f000 rw-p 00000000 00:00 0 7ffff546f000-7ffff5473000 r-xp 00000000 fc:00 201395591 /usr/lib64/libcap.so.2.22 7ffff5473000-7ffff5672000 ---p 00004000 fc:00 201395591 /usr/lib64/libcap.so.2.22 7ffff5672000-7ffff5673000 r--p 00003000 fc:00 201395591 /usr/lib64/libcap.so.2.22 7ffff5673000-7ffff5674000 rw-p 00004000 fc:00 201395591 /usr/lib64/libcap.so.2.22 7ffff5674000-7ffff5676000 r-xp 00000000 fc:00 202103936 /usr/lib64/libdl-2.17.so 7ffff5676000-7ffff5876000 ---p 00002000 fc:00 202103936 /usr/lib64/libdl-2.17.so 7ffff5876000-7ffff5877000 r--p 00002000 fc:00 202103936 /usr/lib64/libdl-2.17.so 7ffff5877000-7ffff5878000 rw-p 00003000 fc:00 202103936 /usr/lib64/libdl-2.17.so 7ffff5878000-7ffff587f000 r-xp 00000000 fc:00 202103960 /usr/lib64/librt-2.17.so 7ffff587f000-7ffff5a7e000 ---p 00007000 fc:00 202103960 /usr/lib64/librt-2.17.so 7ffff5a7e000-7ffff5a7f000 r--p 00006000 fc:00 202103960 /usr/lib64/librt-2.17.so 7ffff5a7f000-7ffff5a80000 rw-p 00007000 fc:00 202103960 /usr/lib64/librt-2.17.so 7ffff5a80000-7ffff5a81000 r-xp 00000000 fc:00 201814709 /usr/lib64/libboost_atomic-mt.so.1.53.0 7ffff5a81000-7ffff5c80000 ---p 00001000 fc:00 201814709 /usr/lib64/libboost_atomic-mt.so.1.53.0 7ffff5c80000-7ffff5c81000 r--p 00000000 fc:00 201814709 /usr/lib64/libboost_atomic-mt.so.1.53.0 7ffff5c81000-7ffff5c82000 rw-p 00001000 fc:00 201814709 /usr/lib64/libboost_atomic-mt.so.1.53.0 7ffff5c82000-7ffff5c91000 r-xp 00000000 fc:00 201422571 /usr/lib64/libboost_date_time.so.1.53.0 7ffff5c91000-7ffff5e91000 ---p 0000f000 fc:00 201422571 /usr/lib64/libboost_date_time.so.1.53.0 7ffff5e91000-7ffff5e92000 r--p 0000f000 fc:00 201422571 /usr/lib64/libboost_date_time.so.1.53.0 7ffff5e92000-7ffff5e93000 rw-p 00010000 fc:00 201422571 /usr/lib64/libboost_date_time.so.1.53.0 7ffff5e93000-7ffff5e9a000 r-xp 00000000 fc:00 201406657 /usr/lib64/libboost_chrono.so.1.53.0 7ffff5e9a000-7ffff6099000 ---p 00007000 fc:00 201406657 /usr/lib64/libboost_chrono.so.1.53.0 7ffff6099000-7ffff609a000 r--p 00006000 fc:00 201406657 /usr/lib64/libboost_chrono.so.1.53.0 7ffff609a000-7ffff609b000 rw-p 00007000 fc:00 201406657 /usr/lib64/libboost_chrono.so.1.53.0 7ffff609b000-7ffff60b0000 r-xp 00000000 fc:00 201445529 /usr/lib64/libboost_filesystem.so.1.53.0 7ffff60b0000-7ffff62b0000 ---p 00015000 fc:00 201445529 /usr/lib64/libboost_filesystem.so.1.53.0 7ffff62b0000-7ffff62b1000 r--p 00015000 fc:00 201445529 /usr/lib64/libboost_filesystem.so.1.53.0 7ffff62b1000-7ffff62b2000 rw-p 00016000 fc:00 201445529 /usr/lib64/libboost_filesystem.so.1.53.0 7ffff62b2000-7ffff62b5000 r-xp 00000000 fc:00 201395673 /usr/lib64/libboost_system-mt.so.1.53.0 7ffff62b5000-7ffff64b4000 ---p 00003000 fc:00 201395673 /usr/lib64/libboost_system-mt.so.1.53.0 7ffff64b4000-7ffff64b5000 r--p 00002000 fc:00 201395673 /usr/lib64/libboost_system-mt.so.1.53.0 7ffff64b5000-7ffff64b6000 rw-p 00003000 fc:00 201395673 /usr/lib64/libboost_system-mt.so.1.53.0 7ffff64b6000-7ffff64cb000 r-xp 00000000 fc:00 201396172 /usr/lib64/libboost_thread-mt.so.1.53.0 7ffff64cb000-7ffff66ca000 ---p 00015000 fc:00 201396172 /usr/lib64/libboost_thread-mt.so.1.53.0 7ffff66ca000-7ffff66cc000 r--p 00014000 fc:00 201396172 /usr/lib64/libboost_thread-mt.so.1.53.0 7ffff66cc000-7ffff66cd000 rw-p 00016000 fc:00 201396172 /usr/lib64/libboost_thread-mt.so.1.53.0 7ffff66cd000-7ffff66d0000 r-xp 00000000 fc:00 201395681 /usr/lib64/libboost_system.so.1.53.0 7ffff66d0000-7ffff68cf000 ---p 00003000 fc:00 201395681 /usr/lib64/libboost_system.so.1.53.0 7ffff68cf000-7ffff68d0000 r--p 00002000 fc:00 201395681 /usr/lib64/libboost_system.so.1.53.0 7ffff68d0000-7ffff68d1000 rw-p 00003000 fc:00 201395681 /usr/lib64/libboost_system.so.1.53.0 7ffff68d1000-7ffff6a95000 r-xp 00000000 fc:00 201394652 /usr/lib64/libc-2.17.so 7ffff6a95000-7ffff6c94000 ---p 001c4000 fc:00 201394652 /usr/lib64/libc-2.17.so 7ffff6c94000-7ffff6c98000 r--p 001c3000 fc:00 201394652 /usr/lib64/libc-2.17.so 7ffff6c98000-7ffff6c9a000 rw-p 001c7000 fc:00 201394652 /usr/lib64/libc-2.17.so 7ffff6c9a000-7ffff6c9f000 rw-p 00000000 00:00 0 7ffff6c9f000-7ffff6cb4000 r-xp 00000000 fc:00 201450051 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 7ffff6cb4000-7ffff6eb3000 ---p 00015000 fc:00 201450051 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 7ffff6eb3000-7ffff6eb4000 r--p 00014000 fc:00 201450051 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 7ffff6eb4000-7ffff6eb5000 rw-p 00015000 fc:00 201450051 /usr/lib64/libgcc_s-4.8.5-20150702.so.1 7ffff6eb5000-7ffff6fb6000 r-xp 00000000 fc:00 202103938 /usr/lib64/libm-2.17.so 7ffff6fb6000-7ffff71b5000 ---p 00101000 fc:00 202103938 /usr/lib64/libm-2.17.so 7ffff71b5000-7ffff71b6000 r--p 00100000 fc:00 202103938 /usr/lib64/libm-2.17.so 7ffff71b6000-7ffff71b7000 rw-p 00101000 fc:00 202103938 /usr/lib64/libm-2.17.so 7ffff71b7000-7ffff7323000 r-xp 00000000 fc:00 217803115 /usr/lib64/libstdc++.so.6.0.21 7ffff7323000-7ffff7523000 ---p 0016c000 fc:00 217803115 /usr/lib64/libstdc++.so.6.0.21 7ffff7523000-7ffff752d000 r--p 0016c000 fc:00 217803115 /usr/lib64/libstdc++.so.6.0.21 7ffff752d000-7ffff752f000 rw-p 00176000 fc:00 217803115 /usr/lib64/libstdc++.so.6.0.21 7ffff752f000-7ffff7533000 rw-p 00000000 00:00 0 7ffff7533000-7ffff754a000 r-xp 00000000 fc:00 202103956 /usr/lib64/libpthread-2.17.so 7ffff754a000-7ffff7749000 ---p 00017000 fc:00 202103956 /usr/lib64/libpthread-2.17.so 7ffff7749000-7ffff774a000 r--p 00016000 fc:00 202103956 /usr/lib64/libpthread-2.17.so 7ffff774a000-7ffff774b000 rw-p 00017000 fc:00 202103956 /usr/lib64/libpthread-2.17.so 7ffff774b000-7ffff774f000 rw-p 00000000 00:00 0 7ffff774f000-7ffff77a1000 r-xp 00000000 fc:00 84310864 /usr/local/lib/libvsomeip3-sd.so.3.1.20 7ffff77a1000-7ffff79a1000 ---p 00052000 fc:00 84310864 /usr/local/lib/libvsomeip3-sd.so.3.1.20 7ffff79a1000-7ffff79a4000 r--p 00052000 fc:00 84310864 /usr/local/lib/libvsomeip3-sd.so.3.1.20 7ffff79a4000-7ffff79a5000 rw-p 00055000 fc:00 84310864 /usr/local/lib/libvsomeip3-sd.so.3.1.20 7ffff79a5000-7ffff7bcc000 r-xp 00000000 fc:00 84310862 /usr/local/lib/libvsomeip3.so.3.1.20 7ffff7bcc000-7ffff7dcb000 ---p 00227000 fc:00 84310862 /usr/local/lib/libvsomeip3.so.3.1.20 7ffff7dcb000-7ffff7dda000 r--p 00226000 fc:00 84310862 /usr/local/lib/libvsomeip3.so.3.1.20 7ffff7dda000-7ffff7ddb000 rw-p 00235000 fc:00 84310862 /usr/local/lib/libvsomeip3.so.3.1.20 7ffff7ddb000-7ffff7dfd000 r-xp 00000000 fc:00 202104706 /usr/lib64/ld-2.17.so 7ffff7f87000-7ffff7f94000 rw-p 00000000 00:00 0 7ffff7f94000-7ffff7fba000 r-xp 00000000 fc:00 201394683 /usr/lib64/libsystemd.so.0.6.0Aborted

The cpp of the two programs use the same one: // Copyright (C) 2014-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. #ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING #include #endif #include #include <condition_variable> #include #include #include #include

#include <vsomeip/vsomeip.hpp>

#include "sample-ids.hpp"

class client_sample { public: client_sample(bool use_tcp) : app(vsomeip::runtime::get()->create_application()), use_tcp_( _use_tcp) { }

bool init() {
    if (!app_->init()) {
        std::cerr << "Couldn't initialize application" << std::endl;
        return false;
    }
    std::cout << "Client settings [protocol="
            << (use_tcp_ ? "TCP" : "UDP")
            << "]"
            << std::endl;

    app_->register_state_handler(
            std::bind(&client_sample::on_state, this,
                    std::placeholders::_1));

    app_->register_message_handler(
            vsomeip::ANY_SERVICE, 0x0001, vsomeip::ANY_METHOD,
            std::bind(&client_sample::on_message, this,
                    std::placeholders::_1));

    app_->register_availability_handler(0x3030, 0x0001,
            std::bind(&client_sample::on_availability,
                      this,
                      std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));

    std::set<vsomeip::eventgroup_t> its_groups1;
    its_groups1.insert(0x01);
    std::set<vsomeip::eventgroup_t> its_groups2;
    its_groups2.insert(0x02);
    app_->request_event(
            0x3030,
            0x0001,
            0x8001,
            its_groups1,
            vsomeip::event_type_e::ET_UNKNOWN);
    app_->request_event(
            0x3030,
            0x0001,
            0x8004,
            its_groups1,
            vsomeip::event_type_e::ET_UNKNOWN);
    app_->request_event(
            0x3030,
            0x0001,
            0x8002,
            its_groups2,
            vsomeip::event_type_e::ET_UNKNOWN);
    app_->request_event(
            0x3030,
            0x0001,
            0x8003,
            its_groups2,
            vsomeip::event_type_e::ET_UNKNOWN);
    app_->subscribe(0x3030, 0x0001, 0x0001);
    app_->subscribe(0x3030, 0x0001, 0x0002);
    return true;
}

void start() {
    app_->start();
}

#ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING /* * Handle signal to shutdown */ void stop() { app_->clear_all_handler(); app_->unsubscribe(0x3030, 0x0001, 0x0001); app_->unsubscribe(0x3030, 0x0001, 0x0002); app_->release_event(0x3030, 0x0001, 0x8001); app_->release_event(0x3030, 0x0001, 0x8002); app_->release_event(0x3030, 0x0001, 0x8003); app_->release_event(0x3030, 0x0001, 0x8004); app_->release_service(0x3030, 0x0001); app_->stop(); } #endif

void on_state(vsomeip::state_type_e _state) {
    if (_state == vsomeip::state_type_e::ST_REGISTERED) {
        app_->request_service(0x3030, 0x0001);
    }
}

void on_availability(vsomeip::service_t _service, vsomeip::instance_t _instance, bool _is_available) {
    std::cout << "Service ["
            << std::setw(4) << std::setfill('0') << std::hex << _service << "." << _instance
            << "] is "
            << (_is_available ? "available." : "NOT available.")
            << std::endl;
}

void on_message(const std::shared_ptr<vsomeip::message> &_response) {
    std::stringstream its_message;
    its_message << "Received a notification for Event ["
            << std::setw(4)    << std::setfill('0') << std::hex
            << _response->get_service() << "."
            << std::setw(4) << std::setfill('0') << std::hex
            << _response->get_instance() << "."
            << std::setw(4) << std::setfill('0') << std::hex
            << _response->get_method() << "] to Client/Session ["
            << std::setw(4) << std::setfill('0') << std::hex
            << _response->get_client() << "/"
            << std::setw(4) << std::setfill('0') << std::hex
            << _response->get_session()
            << "] = ";
    std::shared_ptr<vsomeip::payload> its_payload =
            _response->get_payload();
    its_message << "(" << std::dec << its_payload->get_length() << ") ";
    for (uint32_t i = 0; i < its_payload->get_length(); ++i)
        its_message << std::hex << std::setw(2) << std::setfill('0')
            << (int) its_payload->get_data()[i] << " ";
    std::cout << its_message.str() << std::endl;
}

private: std::shared_ptr< vsomeip::application > app_; bool use_tcp_; };

#ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING client_sample *its_sample_ptr(nullptr); void handle_signal(int _signal) { if (its_sample_ptr != nullptr && (_signal == SIGINT || _signal == SIGTERM)) its_sample_ptr->stop(); } #endif

int main(int argc, char **argv) { bool use_tcp = false;

std::string tcp_enable("--tcp");
std::string udp_enable("--udp");

int i = 1;
while (i < argc) {
    if (tcp_enable == argv[i]) {
        use_tcp = true;
    } else if (udp_enable == argv[i]) {
        use_tcp = false;
    }
    i++;
}

client_sample its_sample(use_tcp);

#ifndef VSOMEIP_ENABLE_SIGNAL_HANDLING its_sample_ptr = &its_sample; signal(SIGINT, handle_signal); signal(SIGTERM, handle_signal); #endif if (its_sample.init()) { its_sample.start(); return 0; } else { return 1; } }

The json:

vsomeip01.json { "unicast" : "172.31.3.48", "logging" : { "level" : "debug", "console" : "true", "file" : { "enable" : "false", "path" : "/tmp/vsomeip.log" }, "dlt" : "false" }, "applications" : [ { "name" : "service01", "id" : "0x0001" }, {
"name" : "client-sample", "id" : "0x1344" } ], "routing" : "service01", "service-discovery" : { "enable" : "true", "multicast" : "239.127.3.1", "port" : "30490", "protocol" : "udp", "initial_delay_min" : "10", "initial_delay_max" : "50", "repetitions_base_delay" : "50", "repetitions_max" : "3", "ttl" : "3", "cyclic_offer_delay" : "1000", "request_response_delay" : "1500" } }

vsomeip02.json { "unicast" : "172.31.3.2", "logging" : { "level" : "debug", "console" : "true", "file" : { "enable" : "false", "path" : "/tmp/vsomeip.log" }, "dlt" : "false" }, "applications" : [ { "name" : "service02", "id" : "0x0002" }, {
"name" : "client-sample", "id" : "0x1344" } ], "routing" : "service02", "service-discovery" : { "enable" : "true", "multicast" : "239.127.3.1", "port" : "30490", "protocol" : "udp", "initial_delay_min" : "10", "initial_delay_max" : "50", "repetitions_base_delay" : "50", "repetitions_max" : "3", "ttl" : "3", "cyclic_offer_delay" : "1000", "request_response_delay" : "1500" } }

Shangwei1024 avatar Mar 24 '22 04:03 Shangwei1024

Is that ok if you deploy the two process in two board?

journey175 avatar Apr 11 '22 07:04 journey175

have the same applications id on two boards??

ByteXiaoTang avatar Jul 18 '22 06:07 ByteXiaoTang

@Shangwei1024 Does the problem still occur?

goncaloalmeida avatar Mar 03 '23 17:03 goncaloalmeida