Setup DDS Communication using Shared Memory

6 posts / 0 new
Last post
Offline
Joined: 05/02/2018
Posts: 3
Setup DDS Communication using Shared Memory

Hello,

I am trying to setup the DDS communication (between a LabVIEW application and a Java application) using the shared memory as both are running on the same machine (goal is to avoid the netwrok IP address as the machine has multiple IP addresses assigned for different tasks).

How do I specify to use the shared memory for the LabVIEW application? Please provide me the steps if there is a way to do it. I am using RTI DDS Toolkit v2.0.0.104.

 

Thanks,

Suresh

 

 

Organization:
Offline
Joined: 04/23/2014
Posts: 45

Hi Suresh,

By default Shared Memory and UDP are enabled. If the communication may happen through Shared Memory, DDS will use it instead of UDP. So it should work out-of-the-box. 

In the case that you want to disable all the transports but Shared Memory, you have to add the following to the participant QoS:

<transport_builtin>
    <mask>SHMEM</mask>
</transport_builtin>

You have more information about how to load custom QoS profiles in LabVIEW in the following link: https://community.rti.com/kb/how-can-i-load-personalized-qos-profile-rti-dds-toolkit-labview

I hope this helps,

Angel.

Offline
Joined: 05/02/2018
Posts: 3

Hi Angel,

Thanks for replying back to me. I am using RTI DDS Toolkit version 2.0.0.104. I couldn't find the QoS profile under the LabVIEW folder. I am using LabVIEW 2017 and installed the DDS Toolkit using JKI VIPM. So please let me know what changes that I need to make to use shared memory.

Thanks,

Suresh

 

 

Offline
Joined: 04/23/2014
Posts: 45

Hi Suresh,

LabVIEW has some predefined QoS profiles, so those profiles cannot be modified. To see how these profiles look like, you can find the following file: C:\Program Files (x86)\National Instruments\LabVIEW 2016\vi.lib\RTI DDS Toolkit\RTI_LABVIEW_CONFIG.documentationONLY.xml

Then, if you are not using any specific QoS profile, you can copy the DefaultProfile included in the LabVIEWLibrary. Once you have copied it, modify your QoS, change the Library and Profile names, otherwise, you may see errors because those names already exist. Finally, save your xml file.

After that, follow the instructions about how to load QoS in LabVIEW (link in the previous post, or "Chapter 5 Loading Quality of Service Profiles" of the GSG). As you are loading custom QoS profile, you have to provide them in the format "LibraryName::ProfileName" in the Advanced Create Reader/Writer subVI.

Let us know whether this helps you. 

Angel.

Offline
Joined: 05/02/2018
Posts: 3

Hi Angel,

Thanks for the information provided, I would like to see where exactly the Default Profile is located? You mentioned that it's in the LabVIEW Library, but I couldn't find the xml file. I am using LabVIEW 2017 version. If I can find the file, then definitely I can modify and reload it for my purpose.

Thanks,

Suresh

 

 

sara's picture
Offline
Joined: 01/16/2013
Posts: 118

Hi Suresh,

The DefaultProfile is built-in in the RTI DDS Toolkit, so it cannot be modified.

However, as Ángel explained, you can load your own profile when creating your LabVIEW application as explained in this post: https://community.rti.com/kb/how-can-i-load-personalized-qos-profile-rti-dds-toolkit-labview

All the best,
Sara