Test controller, intro
This is software to control and log data from many different devices (Like: DMM, power supplies, electronic load). It is not designed to use devices to their limit, but to run test where different brands of devices is used together and make a common logfile in CSV format from all of them. It can also be used for some data analyses and make charts.
It has a command line, but that is only necessary to use for more advanced stuff, for simple setup, logging and looking at data the line is not needed.
Scales for chart
Notes & Download
This document is only a introduction, the documents below will contain more details:
Commands page documentation
Current value page documentation
Chart page documentation
Configuration of a SCPI devices
Configuration of a non SCPI devices
TestController, scripting example
This is the initial screen that is shown, it may look boring, but there is a lot of functions hidden on it. For SCPI devices it will directly pass commands to them, for other devices it has build in command parse, making it possible them.
- The log window can be used to write small script in and they can be run with RUN
- Select device by right clicking on it or type handle with a colon after.
- Pressing INS while typing will show a popup menu of possible commands or when there is only on possibility finish the command.
- Help window list possible commands, it will be filtered when typing (I have not written help files for standard SCPI devices).
- Using "Load and run" external files can be run as scripts.
- Save is used to save the log window, either a script or output from some commands.
- Clean will remove all output from the log window, leaving command back.
- Clear will clear the log window completely.
- About will stop a running script.
- Log will start/stop logging data, this does not block for commanding the devices.
- Output off is a kill button that will turn output off power supplied and loads off.
- Popups controls the device popup (Makes the stay on top or not) and can also show a couple of other popups.
- Mode & Setup is for controlling some devices.
Setup popup for an electronic load (These popups are customized for each brand/device).
Setup popup for a power supply.
Mode popup for a DMM.
This popup shows all connected devices with their serial number and software version, a copy of this can be used to keep record of what devices was used to generate a dataset.
A timer that can be used to manually time events.
A calculator, it can do all standard operations and functions. It do also have a few electronic related functions:
- par(resistor1,resistor2,...) Calculate parallel value of the resistors.
- findE12(value) Find the nearest value in the E12 series (All E series are supported)
- findRpar(Eseries,value) Find best parallel combination of two resistors to get this value
- findRser(Eseries,value) Find best serial combination of two resistors to get this value
- findR(Eseries,value) Find best combination of two resistors to get this value, tolerance will be better than 0.8% for E12
Next page is the current values, when it is selected it will request values from all devices a few times each second and show them.
Some calculations are also done.
This is used for the logged values or for a loaded CSV file. The largest dataset I have tested with until now is 5.5 million samples with 3 devices (The 3 internal), it took 55 hours to log.
There is support for two CSV formats and a TAB format for saving and loading. The export button do also use CSV formats, but allows customizing formats, columns and select part of the data.
The chart screen is used to view and select part of the data
The chart has a cursor that can do a couple of things. It is used to locate and copy position to the two boxes below the chart, this can then be used to zoom the chart and be transferred to some other pages. The cursor works directly on the raw data, not the data shown in the chart, i.e. search functions will work at any zoom.
When the cursor is visible a small popup will show the values at the curser.
Scales for chart
The get the best charts there is a rather elaborate setting for the scale, they can be automatic with some restriction or manually.
This shows the distribution of values over a range of data.
Up to 3 histograms can be shown at once.
This will do calculations over a range of the data, it can be all the data or a small part of them.
Want Ah, but you only have the current, this page can add columns to the table that is calculated from the other data in the table.
The formula is one or more column names and the standard mathematical operators and functions. The result is then passed to the the type that can sum over time, filter and many other things.
These calculates do also work on "Current values".
All devices get a short handle to use for references to it, this may not work well if there are multiple of the same device. This page makes it possible to give devices any handle and if possible it will track the device on serial number.
This is the inventory of the devices you have, check the ones that is connected. The devices is found in the combobox at the bottom.
On the configuration it is possible to adjust over handling, font size, chart export sizes and setup a fixed screen layout.
Settings are automatic saved to disk, this includes: Math, Remap handles, Load devices and configuration.
Many tables can be right clicked and copied as text that can be pasted into a spreadsheet.
The shown window size is the minimum, the program can scale to a larger window.
Number input to expressions support SI prefixes, i.e. 33k or 4.7n is valid value.
The software is tested on a fairly fast Windows machine with lots of ram where is works very smoothly.
I have also tested with a limited virtual Linux machine on the same computer, doing fast logging is not a good idea there.
This is a very short instruction in how to connect some device and use them.
Before the program can be used Java must be installed on the computer and on Linux access to serial port must be enabled (For serial devices).
In windows the program can be started with a click on TestController.jar or testController.bat, depending on Windows configuration. In Linux the execute bit must be set and the it can be started with a click on TestController.jar
First go the the "Load devices" page, find the devices and add them to the list. To test without any actual hardware connected select one or more of the virtual devices.
Type in serial port or IP address and for some devices a baudrate.
Secure the ones that you want to use is checkmarked and press "Reconnect"
Change to command page and check they show up (The presence of some handheld DMM is not verified as long as the COM port is present).
Change to "Current values" and check that you get readings from the devices.
To log go back to command page and press "Log" and select interval (I like 1 second).
Now data is logging and can be viewed in the table, on the chart, histogram and range pages. The current values page will also work.
All the screens show above works and I have tested with a lot of different equipment and have added what I believe to be equipment with the same protocol. I have not retested after each change, i.e. some equipment may not work anymore (But will be fixed when I discover a problem).
For now this software is a alpha version, it is missing some functionality, documentation, testing and there is probably lots of bugs in it.
The software frequently get updates, this can fix bugs or add new functions. New devices are also added to the software.
Adding new devices can not only be done by me, the configuration of a device is a plain text file that is used to configure a device driver (Multiple are included). There are some articles on configuring devices.
Notes & Download
Ideas and bug rapport can be send to my email: firstname.lastname@example.org