0
Under review

Device Adapter Written in C++

Alejandro Figar 10 years ago in DDS updated by Jeff Plourde 10 years ago 1
I'm writing my own device adapter in C++. I've been able to receive demo_apps supervisor HeartBeat data. Also I'm able to publish my own HeartBeat topic data every two seconds, along with DeviceIdentity topic, with the image icon and all. I haven't published to TimeSync topic from my c++ app yet.
Could you point me in the right direction?
What are the steps I should follow to be able to see my c++ app as a connected device on your MDPnP demo_app? 

Thanks,
DDS OpenICE demo-apps
Under review
Alejandro,

I know I am delinquent in my response but there is better, more up-to-date information available now that I can link you to.

By all means C++ is well supported by DDS and there is no reason whatsoever that a participant in OpenICE cannot use C++ for development.  For the benefit of others I will point out that the first step is to generate C++ objects using our IDL definitions.
http://sourceforge.net/p/mdpnp/code/ci/master/tree/data-types/x73-idl/src/main/idl/ice/ice.idl
And optionally strings we use for nomenclature can be generated into constants in code with
http://sourceforge.net/p/mdpnp/code/ci/master/tree/data-types/x73-idl/src/main/idl/rosetta/

Next it's important to remember to use Quality of Service settings that are compatible with the demo-apps.  Our QoS profile are stored at
http://sourceforge.net/p/mdpnp/code/ci/master/tree/interop-lab/demo-apps/src/main/resources/META-INF/ice_library.xml
The easiest way to use this would be to copy this file to a file named USER_QOS_PROFILES.xml in the working directory of your program.  Once you've done that you can access the profiles by name with calls like create_XXX_with_profile.

Sounds like you figured out the semantics of the system on your own but for the benefit of others I maintain an architectural survey of the various topics that are published and the expectations of devices and apps at 
https://docs.google.com/a/jeffplourde.com/document/d/1g1zYd3kdxk8tL3zzkTJM38ied9Mi-prGTvvsf9LkDJw/edit

Getting back to your specific question you were spot on.  Publishing of HeartBeat and DeviceIdentity ought to cause your device to appear in the OpenICE demo-apps user interface.  I suspect that an incompatibility of QoS settings was causing your C++ based device not to be seen.

For a long while I had hoped to furnish a full example but have not had the time available; I apologize that it dramatically delayed my response to this really great question.  

Thanks
Jeff Plourde