RTI DDS Toolkit for LabVIEW Support

cancel
Showing results for 
Search instead for 
Did you mean: 

DDS- Non-polling read

So I have a test system that is probably going to get complicated rather quickly. Looking at the LabVIEW implimentation of DDS, it appears the only read method it supports polling. This doesn't thrill me because if I want the data fast, I have to hammer the CPU with constant reads. I can't seem to find a nice efficient way to have the function wait for valid data much like DAQmx or VISA.

 

The only way I've seen to do this in C is using the waitset function. I have found examples of this, but it includes a lot of classes and methods. As someone who is mildly C challenged, this doesn't thrill me.

 

I would start digging into the nddscore.dll (which appears to be the main set of functions) and just start tinkering but I'm at a loss for finding the header file to do a wizard import. Meaning I'm at the mercy of making all the functions/inputs I need myself (again, C challenged). Has anyone seen the matching header files?

Josh
Software is never really finished, it's just an acceptable level of broken
0 Kudos
Message 1 of 8
(7,611 Views)

Hey Josh,

 

As someone else who often times feel's C challenged, I feel you.  However, I have seen DDS used to stream, but the only example of this that I found is here.  

 

I'd recommend posting on RTI's forums as well as I know they have users that work in C that may be better fit to answer this!

 

-Bear

Regards,

Ben Johnson
ʕง•ᴥ•ʔง
Message 2 of 8
(7,603 Views)

 

 

Hi Josh,

The RTI DDS Toolkit for LabVIEW doesn't support a non-polling way of reading so far. However, as you mentioned C/C++, Java, C#, Ada or other languages do. There are 2 different ways of doing it, waitsets and listeners. Here an example of how listeners work: https://community.rti.com/examples/listeners 

 

Regarding the idea that programming C doesn't thrill you, there is a tool to create simple DDS examples in C (or other languages). It is rtiddsgen, here you have the documentation of it: https://community.rti.com/static/documentation/connext-dds/5.3.0/doc/manuals/connext_dds/code_genera...

 

About the nddscore.dll, you cannot use it outside LabVIEW, that's why we don't ship the header files. If you want to use C/C++ (or other languages) you may want to have a look at this: https://www.rti.com/downloads

 

I hope this helps,

Angel.

 

 

Message 3 of 8
(7,568 Views)

wrote:

 

 

Hi Josh,

The RTI DDS Toolkit for LabVIEW doesn't support a non-polling way of reading so far. However, as you mentioned C/C++, Java, C#, Ada or other languages do. There are 2 different ways of doing it, waitsets and listeners. Here an example of how listeners work: https://community.rti.com/examples/listeners 

 

Regarding the idea that programming C doesn't thrill you, there is a tool to create simple DDS examples in C (or other languages). It is rtiddsgen, here you have the documentation of it: https://community.rti.com/static/documentation/connext-dds/5.3.0/doc/manuals/connext_dds/code_genera...

 

About the nddscore.dll, you cannot use it outside LabVIEW, that's why we don't ship the header files. If you want to use C/C++ (or other languages) you may want to have a look at this: https://www.rti.com/downloads

 

I hope this helps,

Angel.

 

 


Thanks for the response! I did plan on using the nddscore.dll within LabVIEW. The reason for needing the header file is that LabVIEW's wizard will import the function calls with the input variables/types.

 

Since it appears you know more or are affiliated, is set of DLLs included in the RTI LabVIEW package are a complete set of the RTI DDS functions. Enough to fully implement a waitset functionality?

Josh
Software is never really finished, it's just an acceptable level of broken
0 Kudos
Message 4 of 8
(7,558 Views)

Hi Josh,

 

Sorry for the delay. The libraries that the RTI DDS Toolkit includes only can be used through the VIs of the RTI DDS Toolkit. Otherwise, you will see a license error.

You may want to contact support@rti.com to see other solutions to your specific use case.

 

Regards,

Angel.

Message 5 of 8
(7,098 Views)

Hi Josh - I was wondering if you have made any progress on the non polling read in LV.  I would like to design a DDS data manager tool similar to the NI Distributed Systems Manager that depicts an entire network of processes and all their topics in a tree.  Additionally would like to be able to see any topics data value (simple numerics only) in real time.  One of the keys to this is non polling reads, the other being the ability to query DDS internal topics for a list of all processes and topic names.  Would be interested to know more about the types of applications you and other LV folks have had success with.

0 Kudos
Message 6 of 8
(6,847 Views)

Well its been a year so I thought I would check in to see if there has been any progress on Non-Polling Reads...

0 Kudos
Message 7 of 8
(6,018 Views)

Hi Josh,

 

Our latest version (3.0.0.109) includes support for non-polling reads. Now you can set a timeout and perform a blocking read operation that will remain blocked until a sample is received or the timeout expires. More information in the included Getting Started Guide.

 

Regards

Ismael

0 Kudos
Message 8 of 8
(5,994 Views)