2. www.luxoft.com
General architecture of the majority the automotive projects
HMI
CTRL
SDK
HMI(Human machine interface) - this is our View.
The original source of all events associated with the
user.
CTRL(Controller) - this is our business logic. The
decision about what to do with the information coming
from the user and the SDK we accept on the
controller.
SDK - the lowest level of our architecture. Performs
many tasks to build a route, search, render, etc.
3. www.luxoft.com
The problem of communication
HMI
CTRL
SDK
Each component have own thread and there is no
way to get a pointer for a direct call. And if it does, it
will not be very safe.
What to do ???
5. www.luxoft.com
CommonAPI
● Create a FrancaIDL file with the specification of an interface with methods and attributes.
● Generate code for client and service by starting the CommonAPI code generator.
● Implement the service by implementing the methods in the generated skeleton.
● Implement the client by creating proxies and calling these methods by using the proxy.
7. www.luxoft.com
Event Loop vs CommonAPI
➕ Simplicity
➖ Blocking
➖ Depends on the programming language
➕ Just implement IPC
➕ With fidl we can generate interfaces on
different programming languages
➕ Doesn't affect on runtime
➖ Increases building time
➖ Difficult configurable
8. www.luxoft.com
So what is the actual difference
• CommonAPI is the common solution for IPC and ITC communication
• CommonAPI can generate his interfaces on different programming languages
• CommonAPI rather cumbersome