02-28-2020 03:57 AM
Hello everyone,
I have multiple analog and digital signals which are logged in separate statemachines. The analog signals can directly wired to the 'TDMS_Write' function (even as array). All attributes (timestamp, name,...) are still intact.
I am having trouble logging the digital signals. The signals are also in an array but it is not allowed to wired them directly. After some search one suggestions was to convert it to U8 and wire it to the 'TDMS_Write'. Now the timestamp information is gone.
How can I save a digital signal (arrray) to TDMS and still have the same functionality as the analog signal datatype?
Solved! Go to Solution.
02-28-2020 04:20 AM
Hi sh,
by converting to a plain U8 array you remove all attributes stored in the waveform.
You could
02-28-2020 05:12 AM
Would this not effect performance?
When I trigger my signals I start continuously measuring and especially digital signals I want to read as fast as they appear. When I start transforming huge arrays into another huge arrays I may slow down my statemachines.
Or do I underestimate the data handling of LV?
02-28-2020 05:42 AM
Hi sh,
@s.h._tech wrote:
Would this not effect performance?
Yes.
Why don't you use TDMSWrite to save your digital waveforms? I just succeeded to connect a digital waveform to TDMSWrite and it gave no error:
02-28-2020 05:43 AM
I wrote a little vi which converts a digital array to analog array with all the attributes based on @Gerd_W suggestion. I tested it with increasing busload and samplerates. So far I did not notice a performance issue or missing frames.
02-28-2020 05:48 AM
Ok. Thats better. It just does not accept digital arrays. Looping over the array and setting the proper channel (in the digital group of my tdms) for each signal should do the trick
Thank you.