Title: LV2IDL, a software package for automatic data transfer between LabVIEW and IDL
1LV2IDL, a software package for automatic data
transfer between LabVIEW and IDL
- Gelu M. Nita
- New Jersey Institute of Technology
2Purpose
- To provide several means of in-line or off-line
automatic data transfer between the LabVIEW and
IDL programming environments.
3Retrieving LabVIEW datalog records
- Any LabVIEW 7.x datalog file record can be
restored as an IDL structure without any prior
knowledge of the original record template. Since
this option is not currently provided by the
LabVIEW environment, one may also use this
feature to recover data stored in undocumented
LabVIEW datalog files.
4(No Transcript)
5Retrieving and returning LabVIEW variant records
using temporary files
- Any arbitrary LabVIEW data structure converted in
a variant variable and stored as a data file
record may be restored as an IDL structure,
processed inside IDL, and saved as a LabVIEW
variant record. - Provided that IDL does not change the original
template of the data, one may return the
processed variant variable back to the LabVIEW
application.
6Storing the variant record in LabVIEW
7Restoring and processing the variant record in IDL
8Retrieving in LabVIEW the variant record
processed by the IDL application
9Adding flexibility to the IDL Scriptnode for
LabVIEW
- The IDL Scriptnode for LabVIEW allows the user to
perform in-line data transfer between LabVIEW 7.x
and IDL. However, the user has to explicitly
define at the development stage the data types of
input and output terminals of the script node,
which are limited to a few basic unstructured
data types. - This package allows the user to pass any LabVIEW
data structure in a variant format, dynamically
process it inside the script, and pass the result
back to LabVIEW, as well as any dynamically
created variables, as variant structures.
10(No Transcript)
11Data type incompatibility issues
- The LV2IDL package does not provide support for
special data types that would be out of scope
outside the LabVIEW environment, such as variable
or file references. - Since IDL does not support the unsigned short
integer data type (i8), such LabVIEW variables
are automatically converted to unsigned IDL byte
variables, while a warning message is issued. It
is the full responsibility of the user to convert
these variables to any of the available IDL
signed integer data types (integer or long). - LabVIEW empty arrays are converted to a special
IDL structure named empty_array which contains
only the element descriptor. - LabVIEW variants are converted to anonymous IDL
structures that combine the variant data fields
and its attributes. Empty variants are converted
to a special IDL structure named empty_variant
which contains only a null pointer field. - The LabVIEW extended numerical data types (8
bytes) are not supported by the current version,
but they could be converted in a Lo32,Hi32 IDL
structure in a future release.
12LabVIEW 8.x compatibility
- Starting with version 8.0, National Instruments
changed the LabVIEWs internal type descriptors,
which makes the current version of the LV2IDL
package being incompatible with the LabVIEW 8.x
data types. - However, any data structure may be still passed
between the LabVIEW 8.x and IDL applications as a
variant file record provided it is explicitly
converted to the 7.x format by using the LabVIEW
8.x flatten to string function with the
appropriate option selected.
13Saving a variant structure as a LabVIEW 7.x
variant record using the flatten to string
LabVIEW 8.x function. Restoring the variant
record as an IDL structure, modifying its
contents while preserving its original template,
and saving it as an LabVIEW 7.x variant
record. Restoring the LabVIEW 7.x variant record
as a binary string, converting it to a LabVIEW
8.x variant using the unflatten from string
function, and to its original data format using
the variant to data function.