
0
Under review
Device Adapter Written in C++
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,
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,
Customer support service by UserEcho
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