1 pointI've spent my fair share of time dealing with the Advanced TDMS API to achieve the same thing: decimating the data to plot them in a graph. My benchmarking showed that there is a sweet spot where performing one Read operation for each sample you want to keep (using the Offset hooovahh was talking about) starts being more efficient than performing a single Read operation returning a giant amount of data and then keeping only 1 every 100 samples for example. So I'd recommend looking into that if you go with a TDMS-based solution. And since we are dealing with files on disk: SSD drive!! Forget about HDD, way too slow, your users will have to wait several seconds each time they need to refresh the graphs. And yes, cut the file size by half by using SGL instead of DBL! This only poses an issue for the timestamp since LabVIEW uses DBL. I worked around this by using 3 SGL columns to represent the timestamp. You're on the right track!
3,761 downloadsCopyright © 2007, David Saunders All rights reserved. Author: David Saunders --see readme file for contact information. Description: Provides an intuitive interface for tabular controls containing multiple data types. Users can use various controls and datatypes. Users can also use provided functions for registering and looking up type parameters by control (as well as by column, row, or cell). When you click on a cell, a correctly positioned and sized popup appears allowing for a controlled and intuitive input. Appears like it is a built-in feature, not an annoying popup window. Features: - Supports tables, listboxes, multicolumn listboxes, trees, and string controls. - Implements many data types : string, integer, float, color, ring, boolean, captioned string, etc. - Can use multiple tabular controls in same program with no programming changes - Can pre-register controls with certain data types - Register the entire control, or columns, rows, and cells. - Can edit the registered data type by registering again at any time - Allows for different font sizes - Works even on modal windows Instructions: Run the Demo program to see example usage. To recreate -- 1. Drop 'TSPopup.Popup Cluster.ctl' anywhere on your front panel. 2. Create program logic, similar to the demo MANDATORY elements a. TSPopup.Initialize.vi (register for the user event in your event structure) b. TSPopup.Lookup.vi (returns positioning information, looks up any registered controls) c. TSPopup.Show Popup.vi (called in a Mouse Down? event case) d. an event case for the user event output from (a.) e. TSPopup.Close.vi (called at end of program) OPTIONAL elements f. TSPopup.Register.vi (register controls with popup type parameters) g. TSPopup.Update Cell String.vi (provided to show how to change the cell string after popup is completed) 3. Bring the Popup Cluster to the front on the front panel. Otherwise the popup will show up behind some of the other controls on your User Interface. Limitations: - Can't programmatically bring popup cluster to front. Must do this manually. Change Log: 1.0.0: Initial release of the code. 1.0.1: Added another demo using dynamically changing data types in a tree Removed LV version specific event handling (only dealt with LV 7.1) Fixed bug where headers defaulted to have same type as their column/row Fixed cluster scanning from text Fixed ring to default to index 0 if string unrecognized Changed the background event monitor to always be hidden