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-184.108.40.206152-0+f0.lp150.noarch.rpm plus updates from ni-daqmx-19.5.0-220.127.116.11152-0+f0.lp150.noarch.rpm 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:
unit_string: Deg C
NI_UnitDescription: Deg C
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.
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: