LabVIEW Array Of Strings

10 posts / 0 new
Last post
Offline
Last seen: 6 years 4 months ago
Joined: 11/26/2017
Posts: 2
LabVIEW Array Of Strings

I'm very new to DDS for LabVIEW (and in general). Am I right in saying that LabVIEW string arrays are not supported? Seems if I try to use one, all the Vi's that are generated are generated in an unexecutable state

Keywords:
sara's picture
Offline
Last seen: 1 year 3 months ago
Joined: 01/16/2013
Posts: 128

Hi Liam,

As you can see in the Getting Started Guide of the LabVIEW toolkit[1]. There are some limitations in the types supported by the toolkit. Some of them, like the array of strings, are due to limitations in the API to access LabVIEW data from functions in C/C++. 
As of today, you would need to workaround the usage of array of strings, but we are working with NI to fix that limitation. A possible option would be to create a cluster that contains multiple strings. Or to use arrays of octets. I know it is not ideal.

Let us know if you have additional requests.
All the best,

Sara

[1] In LabVIEW, click Help --> RTI DDS Toolkit --> Open Getting Started Guide... (pdf) . You can also found it online: https://community.rti.com/static/documentation/connext-dds/5.3.0/doc/manuals/labview/RTI_DDS_Toolkit_GettingStarted.pdf

Offline
Last seen: 1 year 8 months ago
Joined: 08/24/2018
Posts: 14

Are arrays of strings still a problem currently?

Ismael Mendez's picture
Offline
Last seen: 3 weeks 6 days ago
Joined: 07/03/2017
Posts: 74

Hi Josh,

Arrays of strings aren't supported yet. As my colleague Sara said, we have some limitations in the types supported due to the API limitations. We are working on it. As an alternative, you can use an array of octets instead. 

Regards

Ismael

Offline
Last seen: 5 years 4 months ago
Joined: 09/06/2018
Posts: 3

Arrays of clusters are not listed as supported, either.  Is this also something that is being worked on?  Do you have any suggested workarounds for these more complex array types?

Offline
Last seen: 5 years 4 months ago
Joined: 09/06/2018
Posts: 3

Additionally, is there any limitation with the Toolkit specific to usage of optional members within IDL?  I didn't see anything mentioned in the Getting Started Guide, but just want to make sure.

Ismael Mendez's picture
Offline
Last seen: 3 weeks 6 days ago
Joined: 07/03/2017
Posts: 74

Hi Ray

We're currently considering arrays of clusters support for the next release of the Toolkit but we can't commit any release timeline yet. If you are interested to discuss this topic further. We'll be happy to arrange a meeting with you.

In the meantime, as a workaround, you can use separated arrays instead of an array of clusters. For example. If your cluster has three numerical members, you can have three different arrays of numbers.

Regarding IDL file generation and optional members. They are not supported. We are aware of this limitations and studying possibles approaches.

Regards

Ismael

Ismael Mendez's picture
Offline
Last seen: 3 weeks 6 days ago
Joined: 07/03/2017
Posts: 74

Hi Ray

Another workaround, in case you are communicating with an external application not written in LabVIEW. Is to use a Routing Service Adapter that acts as an intermediary and maps arrays of cluster coming from your external application into separated arrays and vice versa. This also works for optional data. Optional data can be mapped into non-optional (and filled with some default value) by the Routing Service adapter, so it can match with the LabVIEW DataReader/DataWriters.

Regards

Ismael

Offline
Last seen: 5 years 4 months ago
Joined: 09/06/2018
Posts: 3

Alright, thanks for the clarification Ismael!

Offline
Last seen: 4 years 4 months ago
Joined: 11/06/2019
Posts: 1

Hi all,

We are working in an application that communicates over a DDS network. This application is developed in C++ and parses a predefined IDL (from customer) that contains the datatypes used by the topics. In this IDL there are structs that contain sequences of structs.

On the other side, we are developing another application in LabView that must be able to communicate with the first application using DDS. For this purpose, we are using the RTI DDS Toolkit. Since the IDL makes use of sequences of structs, we need to define datatypes that contain arrays of clusters in order to create DDS readers and DDS writers in LabView.

So, are there any news on this issue? Is it still not supported?

Regards,

Francisco