LV2IDL, a software package for automatic data transfer between LabVIEW and IDL Gelu M. Nita New Jersey Institute of Technology.

Slides:



Advertisements
Similar presentations
Introduction to C Programming
Advertisements

Introduction to C Programming
PHP I.
Programming Languages and Paradigms The C Programming Language.
Data Manipulation Overview and Applications. Agenda Overview of LabVIEW data types Manipulating LabVIEW data types –Changing data types –Byte level manipulation.
Object Oriented Programming COP3330 / CGS5409.  C++ Automatics ◦ Copy constructor () ◦ Assignment operator =  Shallow copy vs. Deep copy  DMA Review.
The Web Warrior Guide to Web Design Technologies
Managing Memory Static and Dynamic Memory Type Casts Allocating Arrays of Dynamic Size Resizing Block of Memory Returning Memory from a Function Avoiding.
Road Map Introduction to object oriented programming. Classes
Inline Assembly Section 1: Recitation 7. In the early days of computing, most programs were written in assembly code. –Unmanageable because No type checking,
MIRC Matthew Forest. Introduction mIRC itself is a program designed for text based messaging via the IRC (internet relay chat) protocol. (Link:
Software and Software Vulnerabilities. Synopsis Array overflows Stack overflows String problems Pointer clobbering. Dynamic memory management Integer.
Fortran 9x HTML version. New F90 features Free source form Modules User-defined data types and operators Generic user-defined procedures Interface blocks.
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
Applying OO Concepts Using Java. In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The.
C++ fundamentals.
Introduction to Array The fundamental unit of data in any MATLAB program is the array. 1. An array is a collection of data values organized into rows and.
Review of C++ Programming Part II Sheng-Fang Huang.
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
Operator Overloading and Type Conversions
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
By Sidhant Garg.  C was developed between by Dennis Ritchie at Bell Laboratories for use with the Unix Operating System.  Unlike previously.
1 C - Memory Simple Types Arrays Pointers Pointer to Pointer Multi-dimensional Arrays Dynamic Memory Allocation.
Introduction to Computer Programming Using C Session 23 - Review.
25th & 26th August 2009ICAT developer workshop 1.
MATLAB for Engineers 4E, by Holly Moore. © 2014 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. This material is protected by Copyright.
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 11 Structured Data.
Pointers OVERVIEW.
UBI >> Contents Chapter 2 Software Development tools Code Composer Essentials v3: Code Debugging Texas Instruments Incorporated University of Beira Interior.
Type Conversions Implicit Conversion Explicit Conversion.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley STARTING OUT WITH Python Python First Edition by Tony Gaddis Chapter 7 Files.
Object-Oriented Programming in C++
Overview and Applications
Chapter 15 Introduction to PL/SQL. Chapter Objectives  Explain the benefits of using PL/SQL blocks versus several SQL statements  Identify the sections.
Data TypestMyn1 Data Types The type of a variable is not set by the programmer; rather, it is decided at runtime by PHP depending on the context in which.
4.4 JavaScript (JS) Deitel Ch. 7, 8, 9, JavaScript & Java: Similarities JS (JavaScript) is case-sensitive Operators –arithmetic: unary +, unary.
Lecture 19 Serialization Richard Gesick. Serialization Sometimes it is easier to read or write entire objects than to read and write individual fields.
Apr. 8, 2002Calibration Database Browser Workshop1 Database Access Using D0OM H. Greenlee Calibration Database Browser Workshop Apr. 8, 2002.
Two Forms Please use speaker notes for additional information!
Slides created by: Professor Ian G. Harris Hello World #include main() { printf(“Hello, world.\n”); }  #include is a compiler directive to include (concatenate)
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
CSI 3125, Preliminaries, page 1 Data Type, Variables.
Programming Configuration Files in LabVIEW David Thomson Systems Integrator Original Code Consulting National Instruments Alliance Member Research Scientist.
PQDIF PQDIF: A Technical Overview Prepared by: Erich Gunther, Bill Dabbs, and Rob Scott Electrotek Concepts, Inc. NEW! IMPROVED!
Data Types and Conversions, Input from the Keyboard CS303E: Elements of Computers and Programming.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
1 CSC103: Introduction to Computer and Programming Lecture No 28.
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 11: Structured Data.
ENEE150 – 0102 ANDREW GOFFIN More With Pointers. Importance of Pointers Dynamic Memory (relevant with malloc) Passing By Reference Pointer Arithmetic.
In this class, we will cover: Overriding a method Overloading a method Constructors Mutator and accessor methods The import statement and using prewritten.
Files A collection of related data treated as a unit. Two types Text
Lecture 20: C File Processing. Why Using Files? Storage of data in variables and arrays is temporary Data lost when a program terminates. Files are used.
JavaScript and Ajax (JavaScript Environment) Week 6 Web site:
1.3 The ZigBee application framework Jae Shin Lee.
FILES AND EXCEPTIONS Topics Introduction to File Input and Output Using Loops to Process Files Processing Records Exceptions.
DBW - PHP DBW2017.
Keyboard Input and Screen Display ––––––––––– Interactive Programming
Ken D. Nguyen Department of Computer Science Georgia State University
Topics Introduction to File Input and Output
Chapter 7 Files and Exceptions
Chapter 14 - Advanced C Topics
WEB PROGRAMMING JavaScript.
File Input and Output.
Applying OO Concepts Using Java
7 Arrays.
Methods.
Functions continued.
Ken D. Nguyen Department of Computer Science Georgia State University
Topics Introduction to File Input and Output
Presentation transcript:

LV2IDL, a software package for automatic data transfer between LabVIEW and IDL Gelu M. Nita New Jersey Institute of Technology

Purpose To provide several means of in-line or off-line automatic data transfer between the LabVIEW and IDL programming environments.

Retrieving 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.

Retrieving 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.

Storing the variant record in LabVIEW

Restoring and processing the variant record in IDL

Retrieving in LabVIEW the variant record processed by the IDL application

Adding 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.

Data 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.

LabVIEW 8.x compatibility  Starting with version 8.0, National Instruments changed the LabVIEW’s 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.

Saving 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.