Test Controller, script commands

This document list all the script commands grouped by functionality, it will have about the same contents as the build in help.
On all script command parameters it is possible to use parentheses for access to the calculator, i.e. a parameter can be 5 or (a*5) where the a*5 is passed to the calculator and the variable is multiplied by 5 before the result is used as a parameter.
In addition to the #... commands it is possible to send single lines to the calculator by starting them with =, any other commands (i.e. anything not starting with # or =) is supposed to be SCPI commands and send to the selected device or used to select a SCPI device (a handle followed by : will do that). When using SCPI commands it is necessary to select a device first (Except on the command line, that will automatically select one).

Contents
    Device functions
        #OFF
        #VALUES?
        #ID?
        #COMMANDTIME?
        #RECONNECT
        #DISCOVER? {filter}
        #CONNECTED? {filename}
        #VALUEFORMAT name format
        #ASYNC {handle commands}
        #ASYNCCMD handle1{ handle2{ handle3 ...}}} "commands"
        #SCREENDUMP
        #INITCOLUMNS
        #DEBUG handle {area {area {area}}}
    Logging
        #LOG sample_interval {filename}
        #HASLOGGED
        #DEVICELOGGINGDISABLE handles...
        #DEVICELOGGINGENABLE handles...
        #SETLOGEVENT initTime finalTime logInterval mode modeParam1 {modeParam2 {modeParam3}}
        #SETLOGEVENTCMDS onCmds offCmds
        #TRIG mode|state {trig_expression}
        #TRIGN count
    Waiting and delay
        #DELAY seconds
        #WAIT expression
        #WAITREADY
        #WAITUI
    Script control
        #LOGCMDS value
        #IF expression
        #ELSEIF expression
        #ELSE
        #ENDIF
        #WHILE expression
        #ENDWHILE
        #FOREACH var item1{ item2{ item3 ...}}
        #ENDFOREACH
        #CALC {statements}
        #RUNSCRIPT scriptName params...
        #RUNSCRIPTASYNC scriptName params...
        #SCRIPTPRIORITY {level}
        #STOPSCRIPT
        #RETURN
    Script options
        #AUTORUN
        #SCRIPTMENU menuName{;subMenu1{;subMenu2}}
        #SCRIPTSCRIPT scriptName
        #SCRIPTSYSTEMVERSION version
        #SCRIPTHANDLES handle {handle {handle ...}}
        #SCRIPTINTERFACE interfaceType functionRequired {functionRequired {functionRequired ...}}
        #SCRIPTTABLE {columnNames...}
        #SCRIPTNOLOG
        #SCRIPTSHOWIMAGE {image1{ image2{ image3...}}}
    Script user interface popups
        #POPUPINIT "popup_title"
        #POPUPLABEL "prompt" varName "tip"
        #POPUPTEXT "prompt" varName {characters {"tip"}}
        #POPUPNUMBER "prompt" varName {min max {"tip"}}
        #POPUPNUMBERLIST "prompt" varName {min max {"tip"}}
        #POPUPNUMBERINT "prompt" varName {min max {"tip"}}
        #POPUPNUMBERINTLIST "prompt" varName {min max {"tip"}}
        #POPUPCOMBO "prompt" varName {list of values} {"tip"}
        #POPUPRADIO "prompt" varName {list of values} {"tip"}
        #POPUPCOLUMN "prompt" varName {systemColumns{ filter {"tip"}}
        #POPUPDEVICE "prompt" varName {deviceFilter {functionFilter {all} tip}}}
        #POPUPVALUE "prompt" varName{ includeMath{ filter{ tip}}}
        #POPUPCOLOR "prompt" varName{ tip}
        #POPUPCHECKBOX "prompt" varName {"tip"}
        #POPUPFILENAME "prompt" varName {"tip"}
        #POPUPFILE "prompt" varName{ path{ extension{ load {"tip"}}}}
        #POPUPIMAGE "prompt" varName images {tip}
        #POPUPBUTTON "button text" varName {"tip"}
        #POPUPBUTTONS "ok button text" varName "cancel button text" {"tip"}
        #POPUPSHOW {x y}
        #POPUPSHOWINFO "info message"{ icon}
        #POPUPSHOWINFOASYNC "info message"{ icon{ timeout}
        #POPUPSHOWQUESTION "prompt" varName{ button1Text{ button2Text{ button3Text}}}
    Popup windows
        #SHOWPOPUPSYSTEM name {x y {w h}}
        #CLOSEALL
        #READOUT {valueName {x y {fontSize {foregroundColor {backgroundColor transparency {format}}}}}}
        #SHOWPOPUPMODE handle {x y} {onTop}
        #SHOWPOPUPSETUP handle {x y} {onTop}
        #SYNCPOPUPS
        #SETALARM no {off} outputOff retrig expression/{channel min max}
        #ADJUSTALARM no volume/selection
        #CLOSEALARM no
        #SETMPPT no channel {stepCurrent {maxCurrent {minVoltage {UpdateSpeed {Active}}}}}
        #TIMERCOUNTER channel {threshold {tolerance{ onIsLow{ useTable}}}}
        #CLOSEPARAMADJUSTER no
        #SETPARAMADJUSTER no "parameter name" {min max{ "cmd"}}
        #CLOSEPARAMSWEEPER
        #SETPARAMSWEEPER ...
        #FFTView curveName {minFreq maxFreq {options...}}
        #AUTOHOLD channel {tolerance{ lockTime{ minimum}}}
        #SHOWIMAGE {-} image1{ image2{ image3...}}
        #ALIGNGRID {pixels}
    Table settings and handling
        #SAVETABLE name {format}
        #LOADTABLE filename
        #IMPORTTABLE filename referenceColumn columns...
        #CLEARTABLE
        #EXPORTCOLUMNS columnName{ columnName{ columnName{ ...}}}
        #EXPORTCOLUMNSEXCLUDE columnName{ columnName{ columnName{ ...}}}
        #LOADEXPORTFORMAT filename
        #EXPORTREDUCE format {param1{ param2}}
        #EXPORTTABLE filename {format}
        #EXPORTTABLERELOAD
        #EXPORTINIT
    Chart settings and handling
        #SCALE name decimals si log auto {includeZero minRange bottomStep}/{min max}/{includeZero minRange bottomStep min max}
        #SCALEDELETE name {name {...}}
        #SAVECHART filename {width height}
        #CHARTX axisName
        #CHARTSAMPLES first last
        #CHARTCURVES curveName{ curveName{ curveName{..}}}
        #CHARTTITLE title
        #CHARTCOLORS color{ color{ color{...}}}
        #CHARTBACKGROUND backgroundColor{ bordercolor{ gridcolor{ fontColor{ titleColor}}}}
        #CHARTSCALENAME originalName newName
        #CHARTSCALESYNC {reference sync1{ sync2{ ...}}}
        #CHARTRESET
        #CHARTANNOTATE ...
    Histogram settings and handling
        #HISTOGRAMANNOTATE ...
        #SAVEHISTOGRAM filename {width height}
        #HISTOGRAMOPTIONS {count/percent/%} {bins}
        #HISTOGRAMSAMPLES first last
        #HISTOGRAMCURVES curveName {curveName{ curveName}}
    Other settings on TestController pages
        #CLEAR
        #SAVELOG filename log/pgm/{menu menutitle}
        #CURRENTVALUESOPTIONS {samples} {slope} {textSize}
        #RANGESAMPLES first last
        #RANGEOPTIONS {/h/m/s}
        #MATH {name {unit type samples sourceFormula}}
        #MATHDELETE name {name {...}}
        #DEVICE {name {address {baudrate}}}
    Other commands
        #ECHO parameters...
Main page



Device functions

This group is mostly commands that ask devices or send commands to devices.


#OFF
Will turn all loads, power supplies and generators off, it is the same as "Output off" button


#VALUES?
List all values from each device.
This is the same values as are logged or showed with a LIST command for devices support this.


#ID?
List the full name and version string from each device.
If the device has a id number it will also be shown.


#COMMANDTIME?
List the communication time for each device when querying for a value or other parallel commands.
Both the last and the maximum since last #COMMANDTIME? is listed.
There will only be valid values when some type of readout is used.
This can be used to analyze for fastest logging time and see what slow devices that can be excluded to make logging faster.

See also #LOG #DEVICELOGGINGDISABLE #DEVICELOGGINGENABLE


#RECONNECT
Unload all current loaded devices and load all selected one from the "Load devices" page.
This procedure takes time, use a #WAITREADY command before using any command that interacts with devices


#DISCOVER? {filter}
Do a LXI/VXI-11 discovery scan on the network and list the result in the log window.
This can be used to find any LXI compatible network device on the local network.
filter is any text and only devices where the id string contains that text is listed.

Note: Not all network devices are LXI compatible and TestController do not require it.


#CONNECTED? {filename}
List all connected devices, this is basically the same as the connected popup, but will also include information about the computer.
When a filename is specified the list is saved in the file. This can be used to record the computer and devices used to do a specific test.


#VALUEFORMAT name format
Change format for a value, this will affect all readouts and table, but not chart and histogram.
name: Column/value name with handle.name
format: Use D0..D9, X0..X9, SI, SI4..SI9, SI4x..SI9x (x is one of _munpfazy)


#ASYNC {handle commands}
Will send commands to the device in the background. Multiple #ASYNC can be used in sequence and each device will get its own queue of commands.
By using ; between commands, it is possible to send many commands with a single #ASYNC
When sending command to multiple devices there is no guarantee about the timing between devices, but each device will get its command in listed order.

Using #ASYNC without parameters will wait for all active #ASYNC/#ASYNCCMD to finish.

Using (array(...)) instead of a handle will send to all handles in the array.

See also #ASYNCCMD


#ASYNCCMD handle1{ handle2{ handle3 ...}}} "commands"
Send the same command to multiple devices. The last parameter is the command.
Usually the command will be in quotes to avoid problems with spaces in it.
When sending command to multiple devices there is no guarantee about the timing between devices, but each device will get its command in listed order.

With this command it is possible to start multiple devices nearly simultaneous.

See also #ASYNC


#SCREENDUMP
Shows a screen dump.
The command is fairly slow to execute, for this reason it cannot be used while logging and will always be performed in the background.
Only Keysight DMM and HMC8043 support the command at the current time


#INITCOLUMNS
Reinit the columns to match the current selected modes for meters. This command will check all loaded devices for modes.
This is done automatically when using the mode menu, but may not always work when using scripts.
To secure all columns match the selected modes it is always best to add a #INITCOLUMNS after using script to change mode on devices.


#DEBUG handle {area {area {area}}}
Enable debug logging, it can be enabled for specific devices and specific communication areas.
Generally it is much easier to start TestController in debug mode, instead of using this option.
List debug state and areas for a device:
#DEBUG handle

Turn on debug for a device (It is possible to prefix area with a + or - sign):
#DEBUG handle area {area {area}}

For initial communication use the *IDN device.



Logging

Control of the logging function in TestController.


#LOG sample_interval {filename}
Starts collecting data from all devices, these are stored in a large table.
sample_interval is how frequent to sample in seconds, is is possible to specify with 0.1 second resolution
The sample interval will be slowed down automatically if there are problems maintaining it.

See also #DEVICELOGGINGENABLE #DEVICELOGGINGDISABLE #COMMANDTIME?


#HASLOGGED
Wait until a new sample is logged. This command works slightly different in Normal mode and in triggered modes.
In Normal mode it will always wait for next sample after the current #HASLOGGED command.
In other modes it will wait for first sample after the #TRIG command and then for next sample after previous the #HASLOGGED command


#DEVICELOGGINGDISABLE handles...
Exclude devices from collecting logging data, instead null data will be used.
The purpose of this command is to exclude slow devices from fast logging, but still be able to control the slow devices.
To allow fast logging this command must be issued before the logging is started.

See also #DEVICELOGGINGENABLE #LOG #COMMANDTIME?


#DEVICELOGGINGENABLE handles...
Resume logging from devices

Use a * parameter to enable all devices at once

See also #DEVICELOGGINGDISABLE #LOG #COMMANDTIME?


#SETLOGEVENT initTime finalTime logInterval mode modeParam1 {modeParam2 {modeParam3}}
Set the parameters for the LogEvent popup, except on/off commands.
Controls this popup
initTime Time from turn on until logging starts
finalTime  Time from devices turn off until logging stops.
logInterval Log interval
mode How to terminate logging can be one off: time, minmax, exp
modeParam1 {modeParam2 {modeParam3}} Parameters for mode

See also: #SHOWPOPUPSYTEM, #SETLOGEVENTCMDS, #SETPARAMSWEEPER


#SETLOGEVENTCMDS onCmds offCmds
Define on/off commands, this will override the usage of setOn().
Controls this popup

onCmds Commands to turn devices on, will usually required quotes around them.
offCmds Commands to turn devices off, will usually required quotes around them.

See also: #SETLOGEVENT


#TRIG mode|state {trig_expression}
The trig commands adds a condition to logging, this makes it possible to sample only when specific conditions are present. Logging needs to be started before this function is active.
There is one big caveat when using these modes: The chart can be very misleading, because the curve is drawn as one line.
Using a #TRIG command while logging is active will reset the triggered state and set the trigger mode and expression to the specified values.
Controls this popup

mode:
Normal: Logging continuous when started, this is the default.
StartStopOnCommand: Logging can be started and stopped with the #trig command.
SingleOnCommand: Each #TRIG command will log one sample.
NOnCommand: Each #TRIG command will log N samples
SingleOnTrig: Each time the trig_expression is true one sample will be logged.
SecondOnTrig: Each time the trig_expression is true one sample will be logged one interval later.
NOnTrig: Each time the trig_expression is true N samples will be logged.
WhileTrig: While the trig_expression is true samples will be logged.
WhileTrigOrN: While the trig_expression is true and N samples after data will be logged.
StartOnTrig: Logging will start first time trig_expression is true
StopOnTrig: Logging will stop first time trig_expression is true
StopOnTrigOrN: Logging will stop N samples after trig_expression is true

state: A 1 (or no parameter) will start start logging, a 0 will stop logging when startStopOnCommand is active

trig_expression: A expression, it will usual be one or more of the column names compared to a value, but can also be a date/time expression.


#TRIGN count
Define the number of samples that is logged with NOnCommand and NOnTrig modes.
This count can be retriggered while active.
Controls this popup



Waiting and delay

A couple of different ways to wait, depending on what is necessary to wait for.


#DELAY seconds
Wait for specified number of seconds, this only works when running commands in background
Seconds can be specified with decimals.


#WAIT expression
Wait for a specified condition, the expression can use the names from all devices. Use #VALUES to list them.
The #wait will be waiting until the expression turns false, i.e. read it as "wait while expression".
This only works when running commands in background.
It is possible to use common operators.
The data is fetched every second from the devices or according to selected log interval.


#WAITREADY
Wait until devices are initialized, this is for scripts that are started from the command line or that do a reconnect.

#WAITUI
Wait while all UI pages updates, this can be necessary before manipulating the UI from script.
This is needed after changing or adding math columns, if any operations has to be done on these columns.



Script control

Control and simple program flow control statements.


#LOGCMDS value
Enable or disable showing #... commands in the log.
If value is any non-zero value #... will be shown.
For "Run" button and menus the default is to log commands, but for run commands it is not.

See also #RUNSCRIPT, #RUNSCRIPTASYNC


#IF expression
Perform the next lines if expression is non-zero else go to the next #ELSEIF, #ELSE, #ENDIF.
It is not possible to nest #IF statements

See also #ELSEIF, #ELSE, #ENDIF


#ELSEIF expression
Perform the next lines if expression is non-zero and no previous block has executed else go to the next #ELSE, #ENDIF.
It is possible to have a chain of #ELSEIF statements

See also #IF, #ELSE, #ENDIF


#ELSE
Perform the next lines if none of the above #IF or #ELSEIF was executed, else go to #ENDIF

See also #IF, #ELSEIF, #ENDIF


#ENDIF
Termination of #IF, #ELSEIF, #ELSE sequence. When one block has execute they will all go to here.
See also #IF, #ELSEIF, #ELSE


#WHILE expression
Perform a sequence of lines repeatedly while expression is true.
The #WHILE must be matched with a #ENDWHILE
It is possible to use multiple levels of #WHILE inside each other.


#ENDWHILE
The termination of a #WHILE sequence


#FOREACH var item1{ item2{ item3 ...}}
Perform a sequence of lines for each of the listed items assigned to var
This construct is designed to perform a test for a couple of specific values.
Var can be any variable name, it will be created as a local variable.
item1... can be a number or text, if it is a array each element will be added.

Note: A local variable created by "Run" cannot be seen from the command line.


#ENDFOREACH
End of the #FOREACH loop, will start over if more items need to be run else continue.


#CALC {statements}
From this command and until next # command all lines will be executed by the same parser as the calculator uses.
In command mode this is equivalent to starting all lines with =
In scripts this is not exactly the same as placing a = at the start of each line, with #calc no data collection is performed first and when used as a script the full list of lines is handled as one block.
This allows for some more advanced programming inside the block.


#RUNSCRIPT scriptName params...
Run a named script, when done from the command line it will be in the background contents, when done from background the script will stop the current background script while running, then resume again after running it.
Scripts will inherit variables from the contents they are started in, but any variables created in the script will only be available in the script.
Scripts started with this command will follow the log setting from the starting thread, except for the command line where it will not log commands.

scriptName Name of the script to run, it can be from #SCRIPTMENU or #SCRIPTSCRIPT definitions or it can be a filename, if the name starts with # it is assumed to be the script.

params... is zero or more params, they will all be accessible as params[0], params[1] etc. in the script. Use "size(params)" to get number of params.

Using #RUNSCRIPT without parameters will list how many scripts are running.

See also #RUNSCRIPTASYNC, #STOPSCRIPT, #SCRIPTPRIORITY, #SCRIPTMENU, #SCRIPTSCRIPT, #LOGCMDS, #RETURN


#RUNSCRIPTASYNC scriptName params...
Run a named script in a "silent" background contents, any number of these script can be running simultaneous. They will not enable the "Abort" button, but can be stopped with #STOPSCRIPT
Scripts will inherit variables from the contents they are started in, but any variables created in the script will only be available in the script.
Scripts started with this command will as default not log commands.

scriptName Name of the script to run, it can be from #SCRIPTMENU or #SCRIPTSCRIPT definitions or it can be a filename, if the name starts with # it is assumed to be the script.

params... is zero or more params, they will all be accessible as params[0], params[1] etc. in the script. Use "size(params)" to get number of params.


See also #RUNSCRIPT, #STOPSCRIPT, #SCRIPTPRIORITY, #SCRIPTMENU, #SCRIPTSCRIPT, #LOGCMDS, #RETURN


#SCRIPTPRIORITY {level}
Sets the priority of scripts above or below the standard/user interface priority. Highest priority will be executed first.
User interface and scripts without priority specifications runs at medium level.

level:
low: Below user interface
normal: Supposed to be same level as user interface
normal+: But it looks like this is the normal level.
high: Above user interface

See also #RUNSCRIPT, #RUNSCRIPTASYNC


#STOPSCRIPT
Stop all running script, can be used both in script and from command line.
This will also stop any async scripts.

See also #RUNSCRIPT, #RUNSCRIPTASYNC, #RETURN


#RETURN
Exit the current script, but do not affect other scripts.
This is similar to the script reaching the end.
This is typical used with a #if statement to stop a script from running with invalid parameters:
#if parameter>5
#return
#endif



Script options

These commands are not exactly commands, but are placed at the start of script files (Most are only for menu script files) and will affect how the script is listed and used.


#AUTORUN
Is a marking that is placed first in saved files to make them run automatic when loaded. This marking is used by both the menu and the "Load and run" button. The menu will mark autorun entries with ">>"
As a script element it is ignored.


#SCRIPTMENU menuName{;subMenu1{;subMenu2}}
Is a marking that is used in files for the menu (in ..\Documents\TestController\ScriptLibrary) to define the start of a script and the menu name used. A file can contain multiple scripts, each starting with this tag.
As a script element it is ignored.


#SCRIPTSCRIPT scriptName
Saves scripts the same way as script #SCRIPTMENU, but they are not accessible in any menus. I.e. this is a hidden script that can only be accessed by a #RUNSCRIPT command.
Be careful with naming, all scripts are in one pool, i.e. no duplicate names are allowed across all loaded menu script files.
As a script element it is ignored.

See also #RUNSCRIPT or #RUNSCRIPTASYNC


#SCRIPTSYSTEMVERSION version
Is a optionally marking that is used in files for the menu (in ..\Documents\TestController\ScriptLibrary) to define the minimum version of TestController that is required for this script.

#SCRIPTHANDLES handle {handle {handle ...}}
Is a optionally marking that is used in files for the menu (in ..\Documents\TestController\ScriptLibrary) to define the required handles to be present before this script can be used.
As a script element it is ignored.

See also: #SCRIPTTABLE, #SCRIPTINTERFACE, #SCRIPTNOLOG


#SCRIPTINTERFACE interfaceType functionRequired {functionRequired {functionRequired ...}}
Is a optionally marking that is used in files for the menu (in ..\Documents\TestController\ScriptLibrary) to define the required interfaces to be present before the script can be used.
As a script element it is ignored.

See also: #SCRIPTTABLE, #SCRIPTHANDLES, #SCRIPTNOLOG


#SCRIPTTABLE {columnNames...}
Is a optionally marking that is used in files for the menu (in ..\Documents\TestController\ScriptLibrary) to require a table must be loaded, it can request that specific columns must be present.
As a script element it is ignored.


See also: #SCRIPTINTERFACE, #SCRIPTHANDLES, #SCRIPTNOLOG


#SCRIPTNOLOG
Is a optionally marking that prevent a script from being listed while logging is active.
As a script element it is ignored.

See also: #SCRIPTTABLE, #SCRIPTINTERFACE, #SCRIPTHANDLES


#SCRIPTSHOWIMAGE {image1{ image2{ image3...}}}
Works similar to #SHOWIMAGE but is executed when the script containing the line is loaded.
Will not work while script is running or from command line.

See #SHOWIMAGE for full explanation.
See also #POPUPIMAGE



Script user interface popups

Most of these commands is used to build a dialog to ask for parameters.


#POPUPINIT "popup_title"
Initialize a new popup.
Nothing is shown, but the construction of a popup is started.

Use these command to populate the popup:
#POPUPLABEL #POPUPNUMBER #POPUPNUMBERLIST #POPUPNUMBERINT #POPUPNUMBERINTLIST #POPUPCOMBO #POPUPRADIO #POPUPCHECKBOX #POPUPFILENAME #POPUPFILE #POPUPBUTTON #POPUPBUTTONS

Then use #POPUPSHOW to finally show it.


#POPUPLABEL "prompt" varName "tip"
Shows the prompt text, the varName is ignored.


#POPUPTEXT "prompt" varName {characters {"tip"}}
Ask for a text value

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the text in the input field.


#POPUPNUMBER "prompt" varName {min max {"tip"}}
Ask for a number value

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the number in the input field.


#POPUPNUMBERLIST "prompt" varName {min max {"tip"}}
Ask for a list of number values, the return result will be an array of numbers.
This works nicely with the #FOREACH construct.

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the number list in the input field.


#POPUPNUMBERINT "prompt" varName {min max {"tip"}}
Ask for a number value, but decimals are not allowed

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the number in the input field.


#POPUPNUMBERINTLIST "prompt" varName {min max {"tip"}}
Ask for a list of number values without decimals, the return result will be an array of numbers.
This works nicely with the #FOREACH construct.

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the number list in the input field.


#POPUPCOMBO "prompt" varName {list of values} {"tip"}
Shows a combobox with a predefined set of values to select from.
The "list of values" can either be a couple of separate values, then the last value will be assumed to be the tip or it can be an array.

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the selected value from the combobox

See also #POPUPCOLUMN, #POPUPDEVICE, #POPUPVALUE


#POPUPRADIO "prompt" varName {list of values} {"tip"}
Shows a list of radio buttons with a predefined set of values to select from. This is best used for only a few items.
The "list of values" can either be a couple of separate values, then the last value will be assumed to be the tip or it can be an array.

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the value of the selected radio button


#POPUPCOLUMN "prompt" varName {systemColumns{ filter {"tip"}}
Shows a list of table columns, this list will be empty if the table is empty.

systemColumns when non-zero the columns index, time, etc will be included.
filter can be used to filter the column names, * and ? can be used as wild cards.
tip the tool tip to show.

See also #POPUPDEVICE, #POPUPVALUE, #POPUPCOMBO


#POPUPDEVICE "prompt" varName {deviceFilter {functionFilter {all} tip}}}
Shows a list of handles for loaded devices with specified interfaces.

deviceFilter is a filter of device to show, use * for all.
functionFilter list required interface functions, use * for any.
all is a word they says to list multiple units in a device.

See also #POPUPCOLUMN, #POPUPVALUE, #POPUPCOMBO


#POPUPVALUE "prompt" varName{ includeMath{ filter{ tip}}}
Shows a list of actual values for loaded devices.

includeMath when non-zero math columns will be included
filter can be used to filter the value names, * and ? can be used as wild cards.
tip the tool tip to show.

See also #POPUPCOLUMN, #POPUPDEVICE, #POPUPCOMBO


#POPUPCOLOR "prompt" varName{ tip}
Enter or select a color

Color formats are:
name (Use html color names)
(r,g,b) r,g,b can each be from 0 to 255
#rrggbb (html format)
number  number is r*65536+g*256+b


#POPUPCHECKBOX "prompt" varName {"tip"}
Shows a checkbox.
A checked checkbox returns 1, a unchecked one returns 0.

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the state of the checkbox


#POPUPFILENAME "prompt" varName {"tip"}
Shows a text input field, it will be analyzed for a valid filename.

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the filename

See also #POPUPFILE


#POPUPFILE "prompt" varName{ path{ extension{ load {"tip"}}}}
This input field will open a file select dialog when clicked.
Default is a save file dialog, but using a 1 for load will switch to open dialog.

if varName exist its value will be shown as default, when ok is pressed the varName will be created and assigned the filename

See also #POPUPFILENAME for a more simple file input field.


#POPUPIMAGE "prompt" varName images {tip}
Shows one or more images when pressed  The varName variable will be 1 if the button has been pressed.

images is one or more filenames with optional wildcards or urls, when more than one parameter is used the last parameter is assumed to be the tip.

See also #SHOWIMAGE, #SCRIPTSHOWIMAGE


#POPUPBUTTON "button text" varName {"tip"}
By default a "Ok" button is added to the popup when no other button is specified.
With this control it is possible to define the text on the button and get an answer back if it was pressed.

varName will always be create and initialized to 0, if the button is pressed it will be changed to 1 and the popup closed.

See also #POPUPBUTTONS


#POPUPBUTTONS "ok button text" varName "cancel button text" {"tip"}
By default a "Ok" button is added to the popup when no other button is specified.
With this control both a ok and a cencel button is shown and it is possible to define the text on them.

varName will always be create and initialized to 0, if the ok button is pressed it will be changed to 1 and the popup closed. If the cancel button is pressed the popup will just be closed.

See also #POPUPBUTTON


#POPUPSHOW {x y}
Show the popup constructed by the popup commands.
The x and y are relative to the top left corner of the main window of TestController.

It is possible to use #SHOWPOPUP multiple times when a popup has been defined, but only one popup can be defined at a time.

Start by using: #POPUPINIT then use these command to populate the popup:
#POPUPLABEL #POPUPNUMBER #POPUPNUMBERLIST #POPUPNUMBERINT #POPUPNUMBERINTLIST #POPUPCOMBO #POPUPRADIO #POPUPCHECKBOX #POPUPFILENAME #POPUPFILE #POPUPBUTTON #POPUPBUTTONS #POPUPIMAGE
Finally use the #POPUPSHOW to show the popup


#POPUPSHOWINFO "info message"{ icon}
This is a single line popup that will show the info message with an optional icon. This popup will stop everything until OK is pressed.
The message will usually be a single line, but there is a trick where starting the message with it is possible to use
for more lines.

The icons are: 1=Information, 2=Question, 3=Warning, 4=Error

See also #POPUPSHOWINFOASYNC


#POPUPSHOWINFOASYNC "info message"{ icon{ timeout}
This is a single line popup that will show the info message with an optional icon. This popup will not block anything and if the timeout is specified it will close after that many seconds.
The message will usually be a single line, but there is a trick where starting the message with it is possible to use
for more lines.

When a timeout is specified a tiny progress bar is showed at the top of the popup.

The icons are: 1=Information, 2=Question, 3=Warning, 4=Error

See also #POPUPSHOWINFO


#POPUPSHOWQUESTION "prompt" varName{ button1Text{ button2Text{ button3Text}}}
Ask a simple question that can be answered by a button press.
Default is Yes/no, but other answers can be defined with the buttonText parameters.

The varName will be assigned 1 for first button, 0 for second button and 2 for third button.

This is also available as a function: popupShowQuestion(message{,varName{,button1,button2{,button3}}}) that directly returns the the value, i.e. it is possible to do:
#if popupShowQuestion("Continue")



Popup windows

Commands to open and configure the different popups in TestController, these can be generated automatic by opening the popup, fill it and then save the layout in the log window. Popup windows closely related to other functions in TestController is listed with that function.


#SHOWPOPUPSYSTEM name {x y {w h}}
Show a system popup.
Names supported: Calculator, Timer, LogTrigger, AdjustScale, Alarm, ParamAdjuster, AutoHold, ParamSweeper, VarDispay, Image, ScriptList, Main,  LogEvent, , TimerCounter, MPPT
Note: Main can be used to move the location of the main window, but will not show any popup
The x and y is screen coordinates for the upper left corner and will override any other position.
Can be used in scripts to configure screen layout


#CLOSEALL
Close all popups
This can be used before doing a custom layout with:
#READOUT
#SHOWPOPUPMODE
#SHOWPOPUPSETUP
#SHOWPOPUPSYSTEM
and other popup functions.


#READOUT {valueName {x y {fontSize {foregroundColor {backgroundColor transparency {format}}}}}}
Show a readout popup
Controls this popup
Parameters are optional, but must be given in the above sequence
valueName Name of the value to show, if no value exist with the name the readout will show ----
x y Screen location, it is allowed to used negative value to get the readout closer to the screen border
fontSize Relative size to the current fontSize used in TestController
foregroundColor Color of the letters
backgroundColor Color of the background, when using transparency background use same color as foregroundColor for best text quality
transparency Background for text, 0=no background at all, 1..255 from invisible to full background.
format Format override, use one of: SI, SI3..SI9, D0..D9, X0..X9

There is a significant difference  between transparency 0 and 1. With 0 the cursor must point to the letter to open the configuration menu, with 1 some area around the letters will work.

See also: #SHOWPOPUPSYTEM


#SHOWPOPUPMODE handle {x y} {onTop}
Show a mode selection popup for a loaded device.
The x and y is screen coordinates for the upper left corner and will override any other position.
When onTop  is present the popup will stay on top of other windows
Can be used in scripts to configure screen layout
This command is ignore while connecting to devices, use #WAITREADY before it.


#SHOWPOPUPSETUP handle {x y} {onTop}
Show a setup popup for a loaded device.
The x and y is screen coordinates for the upper left corner and will override any other position.
When onTop  is present the popup will stay on top of other windows
Can be used in scripts to configure screen layout
This command is ignore while connecting to devices, use #WAITREADY before it.


#SYNCPOPUPS
Synchronize all open setup popups to the current device state, this is the same synchronization that happens when a popup is opened.


#SETALARM no {off} outputOff retrig expression/{channel min max}
Optionally create a new alarm.
Controls this popup
The settings will always be hidden and the alarm testing turned on (Except if off is present).
no: Alarm number 1 is the first, will create a new alarm if necessary
off: A keyword saying not to enable the alarm, this is used when making screen layouts.
outputOff: 0 or 1 to select option. When 1 a alarm will do a "Output off" and turn everything off.
retrig: 0 or 1 to select option. When 1 the alarm will rearm if the alarm condition goes away.
expression: A expression that uses the value names:
channel: A value name
min: There will be alarm if value goes below this
max: There will be alarm if value goes above this

See also: #SHOWPOPUPSYTEM, #ADJUSTALARM

#ADJUSTALARM no volume/selection
Will adjust the selected sound and visual settings
Controls this popup
no: Alarm number 1 is the first, will create a new alarm if necessary
selection: Select the first setting that matches this text

See also: #SETALARM


#CLOSEALARM no
Close alarm windows.
Controls this popup
no: Alarm number 1 is the first, use -1 or all to close all alarms windows

See also: #SETALARM


#SETMPPT no channel {stepCurrent {maxCurrent {minVoltage {UpdateSpeed {Active}}}}}
Will adjust the settings on the numbered MPPT popup
Controls this popup
no: MPPT no, 1 is first
channel: Load handle, all loaded loads that is supported will be shown in this combobox
stepCurrent: Minimum current step MPPT uses
maxCurrent: Maximum current MPPT can select.
minVoltage: Reduce current if voltage below this value.
UpdateSpeed: How frequent to update load current.
Active: When checked the MPPT control will control the load.

See also: #SHOWPOPUPSYTEM


#TIMERCOUNTER channel {threshold {tolerance{ onIsLow{ useTable}}}}
Show and configures the timer counter popup.
Controls this popup
Channel name of input channel, either directly from a device or from the table/chart.
threshold value where reading changes between on and off.
tolerance add a dead zone around the threshold, half the tolerance will be used above threshold and the other half below threshold.
onIsLow when checked a low value is assumed to be on state, default is a high value.
useTable input data is take from table, this can be used to analyze loaded data.

See also: #SHOWPOPUPSYTEM


#CLOSEPARAMADJUSTER no
Close a ParamAdjuster popup
Controls this popup


#SETPARAMADJUSTER no "parameter name" {min max{ "cmd"}}
Open a ParamAdjuster popup.
Controls this popup

parameter name is some setting from the setup popups or a setting to use a SCPI command
min minimum value on slider, this cannot be lower than the defined minimum for the parameter.
max maximum value on slider, this cannot be higher than the defined maximum for the parameter.
cmd a SCPI command, this is only used of "parameter name" is "SCPI command for ..."
It may be a good idea to use a #OFF first when used in scripts.

See also: #SHOWPOPUPSYTEM


#CLOSEPARAMSWEEPER
Close ParamSweeper popup

See also: #SETPARAMSWEEPER


#SETPARAMSWEEPER ...
Sweep one or more parameters over a range, optionally recording a log file and generate a chart.
Controls this popup
M "type" prepareTime pauseTime
ML saveLog saveChart pause interval {name}
[PST]C "channel" {cmd}
[PST]S lin/log/step time steps start stop idle
[PST]V {v1{ v2{... v8}}}
B[123] all off/ab/exp {expression}/{channel below above}

The first parameter is one or two characters and defines the page and section of the page affected.
M: Main page
PST: Primary/Secondary/Tertiary page
B: Breaker page

See also: #SHOWPOPUPSYTEM, #SETLOGEVENT


#FFTView curveName {minFreq maxFreq {options...}}
Show the FFT View, the view only works if there is data in the table.
Controls this popup

curveName A data column from the table
minFreq maxFreq Restrict the analysed frequency range, uses - for empty field.
options One or more of: rms, rmslog, peak, peakLog, dBV, dBu, linHz, logHz, linMin, logMin, linHour, logHour, linDay, logDay, None, Hanning, Hamming, Blackman, FlatTop

See also: #SHOWPOPUPSYTEM


#AUTOHOLD channel {tolerance{ lockTime{ minimum}}}
Opens a auto hold popup that will collect measurements in a list.
Controls this popup
It is possible to manually trigger with the SPACE bar.
The list can be copied to the clipboard in two formats.

See also: #SHOWPOPUPSYTEM


#SHOWIMAGE {-} image1{ image2{ image3...}}
Opens a image browser that will show the listed images. This can be used to show how to connect a test setup or show schematic and/or PCB layout of something that is tested often.
Controls this popup

A image file specification (not URL'S) can contain wild cards, it support: * ?
For files it is not necessary to specify .jpg or .png extensions
The image name can be:
A name: It will look in .../documents/Images/ and on lygte-info.dk
A path: Anywhere on the local computer or accessible file servers.
A URL: The file will be loaded from the internet.
The optional - character will prevent the popup changing to a newly loaded image.

If called without parameters it will ask for images to load.

Because loading is asynchronous it is a bit random what image will be shown when loading multiple images.

See also: #SHOWPOPUPSYTEM, #SCRIPTSHOWIMAGE, #POPUPIMAGE


#ALIGNGRID {pixels}
Align nearly all open windows/popups onto a grid.
Default is a 16 pixel grid, but the pixels parameter can override that.
The Readout popups have their own alignment (Right click on it) that tries to align the Readouts in columns/rows that is independent of this function.



Table settings and handling

Control of the table page and associated popups.


#SAVETABLE name {format}
Saves data in table in a file.
Controls this page
name is the filename, path and a csv extension will be automatic added if missing.
format is one of ,; ., tab ctab

A few code generating formats are also support: int/long/float/double these will make a .java file with the data as a initialized array.

See also #EXPORTTABLE

#LOADTABLE filename
Load a file into the data table
Controls this page
filename is the filename, path and a csv extension will be automatic added if missing.

See also #IMPORTTABLE


#IMPORTTABLE filename referenceColumn columns...
Import a csv file into the table, data is aligned on the referenceColumn. This function will also load selected columns from a csv file into an empty table (In that case index & time columns will always be included).
Controls this popup
Be very careful when using this function, the referenceColumns defines what matches between the data.
Imported data is interpolated to get the best match to the reference points.

referenceColumn the column to align data on, it must either be increasing or decreasing values.

columns one or more column names to import, name will be adjusted to be unique in the table.

column names must match the csv file to import, use exportName/currentName, i.e. with a slash between if the names in in the table and import csv file need to be different. Modifying names will affect format and unit setup.

This function will fail if the names do not match or the reference column jumps around in values.

See also #CLEARTABLE, #LOADTABLE


#CLEARTABLE
Clears the table, this also include disabling math, clearing exporter and annotations.
Controls this page

See also #IMPORTTABLE, #LOADTABLE


#EXPORTCOLUMNS columnName{ columnName{ columnName{ ...}}}
List columns to export, calling without parameters will remove all columns.
Controls this popup
The sequence they are listen in also defines the sequence in the exported .csv file.
Any non-existing columnNames are ignored.
Using "handle." will include all columns for that device.
See also #EXPORTCOLUMNSEXCLUDE

When opening the export popup all missing columns will be added, but not included.

Command is only valid when there is data in the table.

See also #EXPORTTABLE


#EXPORTCOLUMNSEXCLUDE columnName{ columnName{ columnName{ ...}}}
List columns not to include, this can be used instead of #EXPORTCOLUMNS when only a few columns must be removed and there is no need to change the column sequence.
Controls this popup
Command is only valid when there is data in the table.

See also #EXPORTTABLE


#LOADEXPORTFORMAT filename
Load a file with an export format, these files are generated from the export popup.
Controls this popup

This is an alternative to use #EXPORTCOLUMNS, #EXPORTCOLUMN, #EXPORTREDUCE to define a format. Here the export popup can be used to define the format and then save it. These commands can be auto generated by closing the export windows and use the "Generate scripts, export" menu option in the log window.

Command is only valid when there is data in the table.

See also #EXPORTTABLE


#EXPORTREDUCE format {param1{ param2}}
Define all the reduce parameters for exporting.
Controls this popup
format: One of AllData, ReduceBySampling, ReduceByAveraging, ReduceOnChange
param1, param2: Depends on format:
ReduceBySampling, ReduceByAveraging: param1 is number of samples
ReduceOnChange: params1 is column name and param2 is change

See also #EXPORTTABLE


#EXPORTTABLE filename {format}
Export the table.
Controls this popup
format can be ,; ., tab ctab

Command is only valid when there is data in the table.


#EXPORTTABLERELOAD
Export the table to a temporary file, then try to reload it. The function will fail if incompatible formats are selected.
Controls this popup
This function is makes it possible to use the export functions to make data reduction.

Command is only valid when there is data in the table.


#EXPORTINIT
Initialize export settings to default.
Controls this popup
In praxis the exporter settings will be delete in the same way a reconnect or load table does. First reference to the exporter will construct a new one using the current names in the table.

See also #EXPORTTABLE



Chart settings and handling

Control of the chart and associated popups.


#SCALE name decimals si log auto {includeZero minRange bottomStep}/{min max}/{includeZero minRange bottomStep min max}
Define a scale, the parameters match the "Scales for chart" page and either parameters for auto/manual or all parameters can be specified.
Controls this page
Scales are used when needed and will be automatic created if they are missing.
Unused scales are ignored.


#SCALEDELETE name {name {...}}
Remove scales, if needed they will be automatic created again with default parameters.
Controls this page
There is one shortcut, using handle. will delete all scales for that device.


#SAVECHART filename {width height}
Save chart to specified filename, default is to use the first defined size, but other sizes can be specified
Controls this page

Command is only valid when there is data in the table.

Save also #CHARTTITLE


#CHARTX axisName
The axisName is any value from the table, not hms will use time scale and checkmark hh:mm:ss
Controls this page

Command is only valid when there is data in the table and the specified axisName must match a name from the table.


#CHARTSAMPLES first last
Clear or fill limites into the first/last sample checkbox, use "" for an empty value.
Controls this page

Command is only valid when there is data in the table.


#CHARTCURVES curveName{ curveName{ curveName{..}}}
List names of the value to show curves for.
It is possible to use a array variable for parameter: (arrayName)
Controls this page

Command is only valid when there is data in the table and the specified curveName must match a name from the table.


#CHARTTITLE title
Will define a title for chart and histogram (only with one histogram), this title is used with #SAVECHART and #SAVEHISTOGRAM, but not from the "Save" button.
Controls this page
The title will be cleared when starting a log or loading a csv file.


#CHARTCOLORS color{ color{ color{...}}}
Define a new set of curve colors, there is no limit on the number of colors that can be defined, one is used for each curve shown. If there is not enough colors defined they will be used from the start again.
Controls this popup

Histogram uses the first color from this list for all histograms.

Color formats are:
name (Use html color names)
(r,g,b) r,g,b can each be from 0 to 255
#rrggbb (html format)
number  number is r*65536+g*256+b

See also #CHARTBACKGROUND


#CHARTBACKGROUND backgroundColor{ bordercolor{ gridcolor{ fontColor{ titleColor}}}}
Change color on the different elements in the chart/histogram, except the curves/scales.
Controls this popup
backgroundColor is the color behind the curvers
borderColor is the space around the actual chart where the scales are shown.
gridColor is the grid in the chart
fontColor is the X scale, legends and the title on saved charts
titleColor will override fontcolor for the title.

Color formats are:
name (Use html color names)
(r,g,b) r,g,b can each be from 0 to 255
#rrggbb (html format)
number  number is r*65536+g*256+b

See also #CHARTCOLORS


#CHARTSCALENAME originalName newName
Rename a scale on the chart/histogram, but not in the checklist box.
Controls this popup
The original name is the name shown initially and in the checklist box, the new name can be anything and will only be used on the charts.
Unknown or misspelled scales will be created.

Without parameters all overrides will be removed
With only the originalName that scale will be returned to originalName


#CHARTSCALESYNC  {reference sync1{ sync2{ ...}}}
Force curves to use the same scale. All sync1 sync2 etc. will be synchronized to reference and there will be fewer scales on the chart.
Controls this popup
Synchronization will only work when the reference is shown first, i.e. it may be necessary to disable/enable the "sync" curves to activate the synchronization.
Synchronized curves will not affect the scale on the reference curve, this means it may be necessary to use manual scaling on it.
For best presentation it may be necessary to use #CHARTCOLORS and #CHARTSCALENAME

This do not change the maximum number of curves that can be shown.
Calling without parameters will remove any synchronization


#CHARTRESET
Will undo coloring and scale renames/synchronization and title overrides
Controls this popup
I.e. these commands: #ChartTitle, #ChartColors, #ChartBackground, #ChartScaleName, #ChartScaleSync


#CHARTANNOTATE ...
Adds lines, shapes, arrows and text to a chart, formats varies:
Controls this popup
{+curveName} line x1 y1 x2 y2 {color{ width{ style}}}
{+curveName} linex x {color{ width{ style}}}
{+curveName} liney y {color{ width{ style}}}
{+curveName} circle x y rx ry {color{ width{ style{ background}}}
{+curveName} box x y xs ys {color{ width{ {style{ background}}}
{+curveName} boxrounded x y xs ys {color{ width{ style{ background}}}
{+curveName} polyline x0 y0 array {color{ width{ style}}}
{+curveName} curve x0 y0 array {color{ width{ style}}}
{+curveName} polygon x0 y0 array {color{ width{ style{ background}}}
{+curveName} shape x0 y0 array {color{ width{ style{ background}}}
{+curveName} arrow label x y angle {color{ size{ background}}}
{+curveName} value x angle {color{ size{ background}}}
{+curveName} text message attach x y {color{ size{ background}}}

polygon/shape will always draw a closed shape
curve/shape are rounded versions of polyline/polygon
It is possible to stack annotations, they are drawn in the same sequence as they are defined.

+curveName the Y coordinates are referenced to specified curveName, instead of the left axis

x,y is locations in data coordinates, X is the bottom axis (usually time) and Y the left axis (See +curveName).

attach is the reference corner for the text, use a combination of LRTBC (Left/right/top/bottom/center)

size can be 1, 2, 3 and 4 and will change between the four font sizes used on the chart.

array a list of x,y values constructed with array() used to draw a line.

style defines line/space with ./- and space/w (- & w is 5 unit)

Color formats are (Default is curve color):
name (Use html color names)
(r,g,b) r,g,b can each be from 0 to 255
#rrggbb (html format)
number  number is r*65536+g*256+b

background is background color and will a fill the shape or add box around the message

Note: When changing between curves with different scales the annotations will move around.



Histogram settings and handling

Control of the histogram page.


#HISTOGRAMANNOTATE ...
Adds lines, shapes, arrows and text to a histogram, formats varies:
Controls this page
{+curveName} line x1 y1 x2 y2 {color{ width{ style}}}
{+curveName} linex x {color{ width{ style}}}
{+curveName} liney y {color{ width{ style}}}
{+curveName} circle x y rx ry {color{ width{ style{ background}}}
{+curveName} box x y xs ys {color{ width{ {style{ background}}}
{+curveName} boxrounded x y xs ys {color{ width{ style{ background}}}
{+curveName} polyline x0 y0 array {color{ width{ style}}}
{+curveName} curve x0 y0 array {color{ width{ style}}}
{+curveName} polygon x0 y0 array {color{ width{ style{ background}}}
{+curveName} shape x0 y0 array {color{ width{ style{ background}}}
{+curveName} arrow label x y angle {color{ size{ background}}}
{+curveName} value x angle {color{ size{ background}}}
{+curveName} text message attach x y {color{ size{ background}}}

polygon/shape will always draw a closed shape
curve/shape are rounded versions of polyline/polygon
It is possible to stack annotations, they are drawn in the same sequence as they are defined.

+curveName the Y coordinates are referenced to specified curveName, instead of the left axis

x,y is locations in data coordinates, x is the count axis and y the bottom axis.

attach is the reference corner for the text, use a combination of LRTBC (Left/right/top/bottom/center)

size can be 1, 2, 3 and 4 and will change between the four font sizes used on the chart.

array a list of x,y values constructed with array() used to draw a line.

style defines line/space with ./- and space/w (- & w is 5 unit)

Color formats are (Default is curve color)
name (Use html color names)
(r,g,b) r,g,b can each be from 0 to 255
#rrggbb (html format)
number  number is r*65536+g*256+b

background is background color and will a fill the shape or add box around the message

Note: When changing between histograms with different scales the annotations will move around. Use +curveName to lock it to a single histogram


#SAVEHISTOGRAM filename {width height}
Save histogram to specified filename, default is to use the first defined size, but other sizes can be specified
Controls this page

Command is only valid when there is data in the table.

See also #CHARTTITLE


#HISTOGRAMOPTIONS {count/percent/%} {bins}
Select options for the histogram.
Controls this page

Command is only valid when there is data in the table.


#HISTOGRAMSAMPLES first last
Clear or fill limites into the first/last sample checkbox, use "" for an empty value.
Controls this page

Command is only valid when there is data in the table.


#HISTOGRAMCURVES curveName {curveName{ curveName}}
List names of the value to show histograms for, up to 3 curveNames can be specified
Controls this page

Command is only valid when there is data in the table and the specified curveName must match a name from the table.



Other settings on TestController pages

Control of other pages (i.e. not Table, Chart & Histogram) in TestController.

#CLEAR
Clears the log window, but will not affect the restore option when a script is running.


#SAVELOG filename log/pgm/{menu menutitle}
Saves the contens of the log window as either:
log: Saves the fill contents of the window in a .log file
pgm: Strips ;; lines and saves the contents in a .txt file
menu: Requires a menu tile and saves the file in the ...\Documents\TestController\ScriptLibrary directory as a menu script

The menu title can contain submenus by using ; between elements.


#CURRENTVALUESOPTIONS {samples} {slope} {textSize}
Sets the options on the "Current values" page. The options can be place in any sequence and none are required.
Controls this page

Samples: from 10 to 1000 samples in the statistic buffer
slope: /s /m /h as period for slope calculations
textSize: large or small text size


#RANGESAMPLES first last
Clear or fill limites into the first/last sample checkbox, use "" for an empty value.
Controls this page

Command is only valid when there is data in the table.


#RANGEOPTIONS {/h/m/s}
Set slope calculation time period.
Controls this page

Command is only valid when there is data in the table.


#MATH {name {unit type samples sourceFormula}}
Create a math entry or modify an existing math entry.
Controls this page

The entry will be enabled.

When called without parameters all math entries will be disabled


#MATHDELETE name {name {...}}
Delete one or more math entries, can be used in a script that creates math entries to remove them again
Controls this page

Removing math entries means information about unit is lost.


#DEVICE {name {address {baudrate}}}
Secure a device is loaded and enabled. A #RECONNECT must be used to do the actual connection.
Controls this page

name: This can be either a handle or a device name in quotes (like "Fluke 289")
address: Address of the device
baudrate: For devices requiring a baudrate this will define it.

Using this command without parameters will disable all devices.



Other commands


#ECHO parameters...
Copies the parameters to the log window, will process expressions first:
#ECHO 4*5   shows ";; 4*5"
#ECHO (4*5)  shows ";; 20"
Another way to process a expression is to start the line with =