- Ubuntu 14.04 - Orocos Toolchain 2.8 - omniORB4
I want to create a non-component client to communicate (operations/ports) with a component server across the network using CORBA.
I manage to get two components through the network using CORBA, which is rather straightforward to set up, since the deployer registers CORBA transports for the typekits.
So I am pretty much covered from the server side. However, the client is proving not to be so easy.
I followed the example you provided (main code): TaskContextProxy::InitOrb(argc, argv); TaskContextProxy *mtask = TaskContextProxy::Create( servername, is_ior ); TaskBrowser browser( mtask ); browser.loop(); delete mtask; TaskContextProxy::DestroyOrb();
I only have a OutputPort<int> from the server side, but when I run the client I get "0.010 [ Warning][TaskContextProxy] remote port test_port has a type that cannot be marshalled over CORBA: int. It is ignored by TaskContextProxy"
I saw the http://www.orocos.org/forum/rtt/rtt-dev/rttcorbataskcontextproxy-usage post, and I guess they had a similar problem, but I cannot work out a solution from what is commented. So, I understand that I need to use something along the lines of: RTT::types::TypekitRepository::Import( new RTT:: types/corba :: ... );
But I don't know which headers/libs to link, to get just the basic types to be marshalled. What about my typekits I generate? Is there any example or piece of information about this?