PackageDescription: NITDMSReader


NITDMS Reader

Last published: May 23, 2020 by 'nice'

Defines 17 Classes
Extends 16 Classes


NITDMSReader is a package for reading files abiding to National Instrument TDMS format 1.0 and 2.0.

TDMS is an acronym for Technical Data Management Streaming.
This file format is used for acquisition of time series with the family of National Instrument softwares like LabView (TM) & al

The format is described here:
https://www.ni.com/fr-fr/support/documentation/supplemental/07/tdms-file-format-internal-structure.html

The reader can scan the metaData index, and answer a NITDMSFile object reflecting the hierarchical structure of the file: file / group / channel
it can also extract data on a per channel basis.
Future extensions, will extract several channels in a single bulk read.

For exploring the list of objects in the file, use it with:

(NITDMSReader new filename: '/my_directory/my_file.tdms'; scan) inspect.

For extracting data for a single channel, use it with:

(NITDMSReader new filename: '/my_directory/my_file.tdms'; scan; readValuesForChannel: #('my_group' 'my_channel')) inspect.

If data channels are homogeneous with same data type and size, then it's possible to read all the channels at once wirh:

(NITDMSReader new filename: '/my_directory/my_file.tdms'; scan; readValuesForAllsChannels) inspect.

**Author Note:**
National Instrument also provides an API and distribute binary DLL for reading such files on Windows and Macos.
I have also interfaced this library in VW.
This package does not use this library for several reasons:

- there are some restrictions in usage and redistribution;
- tthe binaries are quite huge compared to what is really needed for a quick start;
- distributing binaries is always a pain for packaging reasons;
- redistributing copywrited libraries can raise legal problems
- we can code a reader in Smalltalk with decent time efficiency