genivi-ipc@lists.genivi.org

Development list for inter process communication (IPC) related topics

View all threads

Re: [Genivi-ipc] CommonAPI-SomeIP, externally connect to service

MB
Manfred.Bathelt@bmw.de
Wed, Apr 19, 2017 1:59 PM

Hi Bence,

the ordering of deployment sections "method" and "attribute" is a special feature of Franca 0.9 which had been fixed in later versions.
As CommonAPI relies on Franca 0.9.1 this won´t help you much for now, but might be good to know.

For general infos about CommonAPI please refer to https://github.com/GENIVI/capicxx-core-tools/wiki
For SOME/IP configuration https://github.com/GENIVI/vsomeip/wiki/vsomeip-in-10-minutes might help to find out proper JSON options.

Best regards

Manfred

From: genivi-projects [mailto:genivi-projects-bounces@lists.genivi.org] On Behalf Of FIXED-TERM Kocsis Bence (AE/EEC4)
Sent: Wednesday, April 19, 2017 1:26 PM
To: genivi-projects@lists.genivi.org
Subject: CommonAPI-SomeIP, externally connect to service

Dear Colleagues,

Thank you for the tips. It seems that there is some lexical order to the parser.

For example, this will generate a syntax error:

define org.genivi.commonapi.someip.deployment for interface commonapi.HelloWorld {

 SomeIpServiceID = 4660

method sayHello {
SomeIpMethodID = 3300
}

attribute Bob {
SomeIpGetterID = 100
SomeIpSetterID = 200
SomeIpNotifierID = 33000
SomeIpEventGroups = { 33002 }
}
}

But the following will not.

define org.genivi.commonapi.someip.deployment for interface commonapi.HelloWorld {
SomeIpServiceID = 4660

 attribute Bob {
       SomeIpGetterID = 100
       SomeIpSetterID = 200
    SomeIpNotifierID = 33000
       SomeIpEventGroups = { 33002 }
}

method sayHello {
SomeIpMethodID = 3300
}
}

This was tested on the SOMEIP generator 3.1.11.0

With that solved, I managed to generate the code, and now the service is running on the Raspberry Pi 3, and I am able to see the SOME/IP packets. If I run the client application locally on the RPi, it can connect to the service too.

My current problem is that I need the client application on a remote device, but I had no success. In the virtualbox GDP I can capture the offered network packets with wireshark (so the routing is properly configured for the broadcast packets), but the client remains in a listen state.

My best guess is that the .json configuration file is not proper, so I would like to ask for your help, how this file should look like. It is not clear to me, for example, what IP should be set on the client side.

I attach my current file.

Thank you for your answer in advance.

Üdvözlettel / Best regards

Bence Kocsis
AE/EEC4

Hi Bence, the ordering of deployment sections "method" and "attribute" is a special feature of Franca 0.9 which had been fixed in later versions. As CommonAPI relies on Franca 0.9.1 this won´t help you much for now, but might be good to know. For general infos about CommonAPI please refer to https://github.com/GENIVI/capicxx-core-tools/wiki For SOME/IP configuration https://github.com/GENIVI/vsomeip/wiki/vsomeip-in-10-minutes might help to find out proper JSON options. Best regards Manfred From: genivi-projects [mailto:genivi-projects-bounces@lists.genivi.org] On Behalf Of FIXED-TERM Kocsis Bence (AE/EEC4) Sent: Wednesday, April 19, 2017 1:26 PM To: genivi-projects@lists.genivi.org Subject: CommonAPI-SomeIP, externally connect to service Dear Colleagues, Thank you for the tips. It seems that there is some lexical order to the parser. For example, this will generate a syntax error: define org.genivi.commonapi.someip.deployment for interface commonapi.HelloWorld { SomeIpServiceID = 4660 method sayHello { SomeIpMethodID = 3300 } attribute Bob { SomeIpGetterID = 100 SomeIpSetterID = 200 SomeIpNotifierID = 33000 SomeIpEventGroups = { 33002 } } } But the following will not. define org.genivi.commonapi.someip.deployment for interface commonapi.HelloWorld { SomeIpServiceID = 4660 attribute Bob { SomeIpGetterID = 100 SomeIpSetterID = 200 SomeIpNotifierID = 33000 SomeIpEventGroups = { 33002 } } method sayHello { SomeIpMethodID = 3300 } } This was tested on the SOMEIP generator 3.1.11.0 With that solved, I managed to generate the code, and now the service is running on the Raspberry Pi 3, and I am able to see the SOME/IP packets. If I run the client application locally on the RPi, it can connect to the service too. My current problem is that I need the client application on a remote device, but I had no success. In the virtualbox GDP I can capture the offered network packets with wireshark (so the routing is properly configured for the broadcast packets), but the client remains in a listen state. My best guess is that the .json configuration file is not proper, so I would like to ask for your help, how this file should look like. It is not clear to me, for example, what IP should be set on the client side. I attach my current file. Thank you for your answer in advance. Üdvözlettel / Best regards Bence Kocsis AE/EEC4