Quantcast
Channel: All LabVIEW posts
Viewing all articles
Browse latest Browse all 203351

"One header only" for TDMS writes?

$
0
0

I will be writing some labview code to produce TDMS files where there will be frequent writes of small amounts of data of long periods of time.  After doing some research on TDMS files, I am concerned about all the additional headers that may be created and about the file size and fragmentation as a result of this use case.  It seems that TDMS is optimized for streaming data and not as I mentioned.

 

I read this in a forum “Every time you call TDMS Write you will create a header on disc. “  I have verified this in the following in the NI KnowledgeBase but that was for Labview version 8.5. http://digital.ni.com/public.nsf/allkb/63DA22F92660C7308625744700781A8D“Any time data is written to a TDMS file a header is written along with the data to the TDMS index file.  This means if you write 1 point at a time to the TDMS file then there is header information for every data point in your file. ” I have also read in a different forum that with LV 2009 came a feature called “one header only” for TDMS (if you keep writing to the same channels, every time with the same number of values, you'll have only one header in the file), however I can only find that property when it comes to using the Write to Measurement File Express VI. Even looking at the table of properties in the 2013 Help for the TDMS Set Properties Function, I do not see a “one header only” property.  Can anyone tell me how to do this with standard and/or advanced TDMS functions?

 

From the Labview 2013 Help “Standard versus Advanced TDMS Functions” “The standard TDMS VIs and functions write meta data and raw data at the same time. The Advanced TDMS VIs and functions enable you to write meta data and raw data separately.” So, again, does this mean that Advanced TDMS functions DO NOT create a header on disc each time you write? Or is this solely dependent on setting the minimum buffer size NI_MinimumBufferSize? What about interleaved write vs decimated write? How does this effect when/if a header gets re-written to the TDMS file? Do I even need to do anything different or just, as quoted, “keep writing to the same channels, every time with the same number of values” to avoid creating a new header?

 

Thanks in advance!


Viewing all articles
Browse latest Browse all 203351