LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

TDMS Properties do not sync across sessions

I'm using TDMS as the basis for a set of file types in LV 2011 SP1, and I need to be able to concurrently access properties in the files from different sessions. The documentation and examples show that data can be accessed concurrently, so I figured it would work for properties, too. I even called "TDMS Flush" after every instance of "TDMS Set Properties" to guarantee that nothing was stuck in a write buffer. Unfortunately, it isn't working in my application, and the attached POC doesn't work, either.

 

Is it possible to perform synchronous writes and reads on properties in a TDMS file from multiple session wires?

Does TDMS flush execute synchronously, or is it an asynchronous call?

0 Kudos
Message 1 of 7
(3,503 Views)

CAR 388525 is filed to track this issue.

0 Kudos
Message 2 of 7
(3,468 Views)

So it's a bug? And not fixed in any current version of LV?

0 Kudos
Message 3 of 7
(3,454 Views)

A CAR at NI is a "Corrective Action Report". It means we know about the problem and were able to replicate it. This one has not been implimented yet in LabVIEW. You can read more about bug reporting here

Kurt P
Automated Test Software R&D
0 Kudos
Message 4 of 7
(3,438 Views)

Thanks, Kurt. When you say, "This has not been implemented in LV", what is "this"? A fix to the bug? Or the feature of synchronizing properties across TDMS sessions? I built an entire set of file IO APIs on TDMS under the assumption that this would work (my mistake, I guess), so I'm trying to understand exactly what the situation is as I might need to make  some major changes to my design.

0 Kudos
Message 5 of 7
(3,433 Views)

Attached please find a wordaround to solve this issue.

Workaround: Call one more "TDMS Get Properties".

Message 6 of 7
(3,415 Views)

Thank you Bo Xie! I played with the VI you posted, and I've deduced:

 

  1. TDMS Flush is synchronous.
  2. The problem can be circumvented by reading any File or Group property once first, even if that property doesn't exist.
  3. The problem is not circumvented by attempting to read a Channel property first, even if that Channel property is the same one you actually want to read. (This might be due to the fact that there are no actual data channels in this example's file.)
0 Kudos
Message 7 of 7
(3,392 Views)