[audio-manager] CAPI Wrapper

Oleksandr Grytsov al1img at gmail.com
Mon May 15 10:31:30 EDT 2017


Hi Christian,


On Mon, May 15, 2017 at 4:23 PM,  <Christian.Linke at bmw.de> wrote:
> Hi,
>
> CAPI is not so easy to use unfortunately. The interfaces documented in the FIDL files need to be generated into c++ code that it then linked against the Plugins.

In general it is clear.

> The generated code needs to fit with the capi daemon that is used. You can generate the code fitting to your versions of CAPI and SOMEIP separately and just link against the generated libs

I see that it could be provided by org.genivi.am.commandinterfaceStub
package. Is there any example project of this package?

> Or use the script to generate the sources. For the latter, the generators need to be installed on your build environment.

I have generators installed (for CAPI DBus and SomeIP).

>
> To make the plugin generate the code, use the switch:
>
> OPTION (WITH_COMMAND_INTERFACE_GENERIC_LIB
> "build command interface common-api glue code" OFF )

Which binding does it generate in this case (DBus or SomeIP)?
Also it looks that in case WITH_COMMAND_INTERFACE_GENERIC_LIB = ON
libCommandInterfaceProviderSomeIpStub.so is
not linked with the plugin in the script. Should be something like this:

--- a/PluginCommandInterfaceCAPI/CMakeLists.txt
+++ b/PluginCommandInterfaceCAPI/CMakeLists.txt
@@ -120,6 +120,8 @@ IF(WITH_COMMAND_INTERFACE_GENERIC_LIB )

        configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/plugin.pc.in
${CMAKE_BINARY_DIR}/${COMMANDCONTROL_CAPI}.pc @ONLY )
        install(FILES ${CMAKE_BINARY_DIR}/${COMMANDCONTROL_CAPI}.pc
DESTINATION lib/pkgconfig COMPONENT plugin)
+
+       set(AM_LINK_LIBS ${COMMANDCONTROL_CAPI})
 ENDIF()


> The deployment decides if vsomeip or dbus code is generated.

Thanks.

>
> Christian
>
>
> -----Ursprüngliche Nachricht-----
> Von: genivi-audio-manager [mailto:genivi-audio-manager-bounces at lists.genivi.org] Im Auftrag von Oleksandr Grytsov
> Gesendet: Montag, 15. Mai 2017 15:06
> An: genivi-audio-manager at lists.genivi.org
> Betreff: [audio-manager] CAPI Wrapper
>
> Hi All,
>
> I'm investigation AudioManager in order to be used in our project as
> an audio arbiter.
> So far I was able to build and run it with DBus wrapper.
>
> Now I would like to control it with CAPI but I have issues with
> AudioManagerPlugins:
>
> 1. Build CommandInterfacePlugin: cmake ../ -DWITH_COMMAND_INTERFACE_CAPI=ON
>
> I have following error when start AudioManager:
>
> [DEF] [Info] getCreateFunction : Trying to load library with name:
> /usr/local/lib/audiomanager
> /command/libPluginCommandInterfaceCAPI.so
> [DEF] [Erro] getCreateFunction : dlopen failed
> /usr/local/lib/audiomanager/command
> /libPluginCommandInterfaceCAPI.so: undefined symbol:
> _ZN2v13org6genivi2am16commandinterface25CommandControlStubDefault19getInterfaceVersionESt10shared_ptrIN9CommonAPI8ClientIdEE
>
> 2. I see that by default CommandInterfacePlugin tries to use SomeIP.
> How to switch between SomeIP and DBUS bindings?
>
> 3. According to the document [1] I need .fedl file to implement the client app
> but it is missing for CommandInterfacePlugin. Where can I get it?
>
> Thank you.
>
> [1] https://at.projects.genivi.org/wiki/pages/viewpage.action?pageId=5472320
> --
> Best Regards,
> Oleksandr Grytsov.
> _______________________________________________
> genivi-audio-manager mailing list
> genivi-audio-manager at lists.genivi.org
> http://lists.genivi.org/mailman/listinfo/genivi-audio-manager



-- 
Best Regards,
Oleksandr Grytsov.



More information about the genivi-audio-manager mailing list