Linux Users

Showing results for 
Search instead for 
Did you mean: 

Generated TDMS missing channels waveform properties

Hi All,

I have a Python app using nidaqmx 0.5.7 library running on OpenSUSE 15.1 and collecting data from cDAQ9189 with multiple analogue modules.
Application is using call to configure_logging() method to configure logging to TDMS file, which is a wrapper around C API DAQmxConfigureLogging.
Version of NI software is 19.5 (ni-software-2019- plus updates from ni-daqmx-19.5.0- along with LabVIEW2020RTE_Linux).


We were successfully running this code on Windows for a while without issues, but when this code was migrated to Linux I noticed that resulting TDMS files are missing important waveform properties needed to compute time series timestamp (among others less important missing fields). The full list of missing channel properties is:


  • NI_ChannelName: .....
  • unit_string: Deg C
  • NI_UnitDescription: Deg C
  • wf_start_time: 2020-02-10T18:58:29.608293
  • wf_increment: 1.9531249999999963e-05
  • wf_start_offset: 0.0
  • wf_samples: 1

I looked into the TDMS docs and couldn't find any reference to Linux limitations. Properties Autogenerated by the TDMS Library doc was the closest one I could find on this topic, however it mentions Measurement Studio product and not TDMS C API which I guess what nidaqmx is using.


I will be happy to provide more technical details on the setup, but firstly wanted to ask the community with this high level info hoping that I am just missing some obvious config.


Best regards,

0 Kudos
Message 1 of 2

Answering myself - looks like I was pulling TDMS file a bit early (~0.3s) - after log file was redirected to a new log file (which finishes writing current log) but before NI driver could fully write the last chunk of data and metadata. I found out (in hex editor) that my TDMS file has next structure:

- channels scaling metadata (e.g. NI_Scaling_Status, etc)

- data

- waveform metadata which I was missing


I am not sure whether there is any callback I can use to see whether log file is fully written, I am planning just to add a check that file is not growing anymore during some sane period of time (1s).

0 Kudos
Message 2 of 2