Test controller, import popup

Import

This popup is used to import data into a loaded table, it can also be used to load some columns from a csv file.
This function will often change data with interpolation while importing it to match the reference column.
This function can combine unrelated data in useful or confusing ways!

Contents
    Control elements
        Select file
        Reference
        Fields/columns
        Clear
        Import
    Using
    An example
    Scripting
Main page

Control elements

Select file

SelectFile

Before doing anything a file to import must be selected, click on the button and select it.



Reference

Reference

This controls how to imported, the two selected columns will track in the loaded file. The reference column from the import file is not loaded, but may be used to extend the original reference column, this is required if the reference columns is used a x-axis (As it usually will).
TestController will try to match the reference values in the loaded table with reference values from the import table. If it is impossible to match the columns the import will fail.
The import function has a couple of different strategies to match the reference values. It do not matter if the two datasets uses the same sample rate or only partially overlaps, but there must be some overlap.
For a good import they sample rate must be stable in the two files, variable sample rate will usually mess up the data.



Fields/columns

Column

Select what columns to import and optionally enter a new name for them.
Specifying a new name will often disable format and unit tracking, only by using the original name and adding _number (i.e. _1 _23 _678) will TestController be able to locate the format from the imported device.
TestController will perform automatic renaming if required to avoid equal names in the table. This renaming will add a _number to all names and the number will be the same for all names in a import.



Clear

Clear

When checked the table will be cleared before importing the data, this makes it a way to load selected columns from a csv file.
Note: index & time will always be included if they are present.



Import

DoImport

Do the actual importing, if there is an error a message will be shown and the popup will stay open.
When import succeeds the popup will close.



Using

EmptyPopup

This is the popup when no file is select, but a table exists in TestController.

FileSelected

Here a file has been selected and a row is shown for each column in the file.

MergeData

Merging a couple of discharge curves, here I use Ah as the reference and rename the voltage column to show the discharge current.

AlignAhAxisTime

This is a very misleading chart, the different curves do not discharge at the time shown in the x-axis.

AlignAhAxisAh

But switching to Ah as x-axis and it is a useful curve. V is 1A discharge V_2 is 2A discharge and V_3 is 3A discharge.

MergeTable

When data is missing there will be a couple of ? in the table.
To handle this the best way on charts set the configuration setting "Overload Chart handling" as "Filter"

ClearTable

Checking the "Clear table" will switch to the same layout as for an empty table, i.e. no reference column can be selected in the table and index/time will always be included.


An example

One application where import can be used is when logging with two PC's and wanting to correlate the results. Before doing this it is import to synchronize the clocks on the PC's (When they are connection to internet it can be done with a button push). I did a test before synchronizing the PC clock, there the difference was about 40 seconds.

DualPCChart1
DualPCChart2

For this example I measured on the same source: A ARB set to a 0.1Hz sinus output and measured it with two different PC's. The data is not synchronized here, the two charts are nearly 180 degree out of phase, but that is probably not the only time difference.

DualPCTable1
DualPCTable2

The two tables. The sample rate is different, DMM6500 gets 10 samples a second, BM829 gets 5 samles a second. The BM829 curve ends four seconds after the DMM6500 curve (Look in the dateTime column).

DualPCImportSettings

Then I imported the BM829 data into the DMM6500 data while using dateTime as reference (I did also include time, but that is not needed).

DualPC

The chart for the combined data. The BM829 was started about 6.5 seconds later than the DMM6500.
Because I included time and it matches a already existing column, both imported columns gets a _1 at the end, I could have avoided that if I manually had renamed the time column.

DualPCCombinedTable

And the table. The data from the BM829 do not match the original table in values, because they are interpolated to match the sample point in the already loaded file. This means doubling up the points for the BM829 to match the 10 samples/sec and then interpolating the BM829 voltages to these points.

DualPCDiff

The difference between the two data sets is less than 1 second, some of it due to the meters and some of it may be because the clocks where not synchronized perfectly.

DualPCDiffValues

The measurement with the relative cursor (The voltages are absolute).

DualPCSimilarDMMs

Same test, here done with more similar meters and fairly fast sample rate on the meters (1PLC).

DualPCDiffValuesSimilarMeters

But the synchronization was not significantly better, this probably means the PC are not synchronized much better than 0.7 second.

SamePCSimilarDMMs

Same meters on a single PC, this time the curves match perfectly.



Scripting

The import can be directly performed with:

#IMPORTTABLE filename referenceColumn columns...