COVESA / capicxx-someip-tools

Common API C++ SOMEIP tooling
Mozilla Public License 2.0
76 stars 55 forks source link

Facing communication issue in SOME/IP between FRANCA Common API C++ Server and Python client #13

Open Shruthe-96 opened 4 years ago

Shruthe-96 commented 4 years ago

Hello,

I am working on establishing inter-process communication between a CommonAPI Some/IP C++ server (Which uses FRANCA IDL and associated deployment files) and a Some/IP python client.

Python Some/IP client

Library used for python Some/IP client:

someip 0.1.0, Pysomeip (https://pypi.org/project/someip/ )

import someip.header

from someip.sd import SOMEIPDatagramProtocol

Franca C++ Server

The C++ server that is used was setup as per the following link:

https://at.projects.genivi.org/wiki/pages/viewpage.action?pageId=5472320

Work done till now:

(C++ vsomeip server) <-------------------------- > (python client) Result: RPC Worked here.

Tried Some/IP IPC using a basic C++ vsomeip server (Which does not include CommonAPI and Franca) and the python client.

Server C++

Used the “Request/Response” example from the following link as the C++ server:

https://github.com/GENIVI/vsomeip/wiki/vsomeip-in-10-minutes

Snapshot 1 has log message on the Server Terminal Side.

Client Python

And the following example as the python client:

https://github.com/afflux/pysomeip/blob/master/tools/get.py

Snapshot 2 has the python side terminal log

I am attaching the snapshot of the IPC between the server and client:

Server:

image Fig: Snapshot 1

Client:

image Fig: Snapshot 2

Issue Details:

On using the same client code to establish communication with the C++server code (Containing franca and commonAPI as mentioned in https://at.projects.genivi.org/wiki/pages/viewpage.action?pageId=5472320) the C++ server returns back an error saying “Malformed Message” as shown in snapshot 3:

image Fig: Snapshot 3

The server here uses a .fidl file while the client does not contain any franca file for binding.

Since the server used in this case requires CommonAPI is there a way to use commonAPI at the python side.

Also, Are there any code generators for python which would take .fidl files and generate python codes for the same which could then be used at the client end?

Any other suggestion as to what direction to proceed on would be very much appreciated.

Thanks in advance.