User-defined Controls

Commander Online Help Contents

 

Increasingly, modern radios provide for computer control beyond VFO, mode, and filter selection. To provide access to these capabilities, Commander lets you specify 

To enable access to all Command Sequences and Command-generating Sliders, check the Show by expanding Main window box in the User-defined Controls panel on the General tab of Commander's Configuration window; Commander's Main window will be expanded in height to display a panel containing two rows of eight buttons and two rows of four horizontal slider controls; if you don't need all four rows of buttons and sliders, you can adjust the bottom border of Commander's Main window upward by dragging it with the left mouse button depressed. Alternatively, you can check the Show within Main window box, which will

Each Command Sequence can optionally display a "LED-like display" beneath its button, and specify this LED's color.

If you specify Command Sequences or Command-generating Sliders, and are controlling more than one transceiver, you must specify a User-defined Control Set for each transceiver.

Command Sequences

A Command Sequence specifies 64 commands, where each command can accomplish one of several things:

Command Sequences are  numbered 1 through 32, and organized as two banks of sixteen sequences. Two rows of eight buttons are used to activate the sequences in the current bank; you can also activate sequences in the current bank by striking the F5 through F12 function keys for the bank's first row of eight sequences, and SH-F5 through SH-F12 function keys for the bank's second row eight sequences (depress this SHIFT key while striking a function key between F5 and F12). The ALT checkbox located between the sequence buttons determines which bank is current. To switch banks, check or uncheck the ALT checkbox. Depressing the ALT key while clicking a sequence button or striking one of F5 through F12 activates a sequence in the first row of the second bank;  depressing the ALT key while clicking a sequence button or depressing both the ALT and and SHIFT keys while striking one of F5 through F12 activates a sequence in the second row of the second bank 

An Initial Command Sequence can be optionally executed when Commander starts, or when a new radio Model  is selected. To define, edit, or test this sequence, click the Edit button in the Initial Command Sequence Panel on the Config window's General tab.

To define, edit, or test a Command Sequence for a button in the User-defined Controls panel, right-click the button; you can also depress the CTRL key while clicking that button or while striking it's associated function key (F5 through F12, as designated above each button). To define a Command Sequence in the second bank, check the ALT box and then right-click the appropriate button, or depress both the ALT and CTRL keys while clicking on the button or while striking its associated function key. Commander will display a window that enables you to name and document a sequence of up to 32 radio commands to be sent to your transceiver when the associated Command Sequence button is clicked, when its associated function key is struck, or when a directive is received from another application (e.g. WinWarbler). Each Command Sequence is composed by a list of 32 Commands and Notes, a Name, and a Function:

Name specifies the name of the sequence; this name serves as the caption on the associated User-defined Command Sequence button, so choose a name of appropriately-short length
  • if you plan to use conditional branching commands (see Command table below), the name cannot contain a comma

Note: if you wish to include the ampersand character in the name, use a pair of back-to-back ampersands, e.g. R&&B.

Commands
  • click the 1 - 32 button to display the first 32 commands in the sequence

  • click the 33 - 64 button to display the second 32 commands in the sequence

LED Display if the Enabled box is checked, a LED-like display appears beneath the associated User-defined Command Sequence button; the color displayed by this LED is specified by the Initial Color selector
Function describes the function of the Command Sequence; this information will appear in a popup explanation window when the mouse cursor lingers above the associated Command Sequence button if the display of control explanations is enabled.
Command (1-32) a sequence of radio commands to be executed, beginning with Command 1
Note (1-32) optional information used to document the associated command; this information is not sent to your radio

 

Valid commands are enumerated in the following table:

Command Function
an even number of hexadecimal characters, e.g.

FEFE26E00700FD

hexadecimal radio command -- characters are sent to your radio via the primary CAT serial port, two per byte (useful for Icom, TenTec, and Yaesu radios)
a sequence of ascii characters preceded by a single apostrophe, e.g.

'AN1;

ASCII radio command -- each character following the apostrophe will be sent to your radio via the primary CAT serial port (useful for Kenwood and Elecraft radios)
a sequence of ascii characters preceded by a single tilde, e.g.

~slice set 0 rxant=ant1

ASCII radio command -- each character following the tilde will be sent to your radio via the TCP/IP connection (useful for Flex Signature radios)
<DataSignalsEnable On>

<DataSignalsEnable Off>

<DataSignalsEnable On> checks the Parallel Port Data Signals panel's Enable box, thereby enabling frequency-based control of the parallel port data output.

<DataSignalsEnable Off> un-checks the Parallel Port Data Signals panel's Enable box, thereby disabling frequency-based control of the parallel port data output.

When the value of the Parallel Port Data Signals panel's Enable box is changed by either of these commands, the new Enable box setting is not saved in the Windows Registry.

<Band mHz> activates the Bandspread window's Band Stack for the specified band, setting the radio's frequency to the most recent frequency used on that band, setting its mode to the mode in use at that time, and clearing Split

    mHz Band
  1 160 m
  3 80 m
  5 60 m
  7 40 m
  10 30 m
  14 20 m
  18 17 m
  21 15 m
  24 12 m
  28-29 10 m
  50-53 6 m
  70 4 m
  144-147 2 m
  222-224 1.25 m
  420-449 70 cm
  902-927 33 cm

For example, the command

<Band 14>

will QSY to the most recent 20m frequency and mode, and clear Split.
<End> termination
  • execution of the Command Sequence terminates.
<FreqDepDevEnable On, N>

<FreqDepDevEnable Off, N>

<FreqDepDevEnable On, N> enables Frequency-dependent Device N, where N is a number the range of 0 to 2.

FreqDepDevEnable Off, N> enables Frequency-dependent Device N, where N is a number the range of 0 to 2.

<Goto N> unconditional branch
  • execution proceeds with command N.

  • be careful to avoid an infinite loop

<IfBand bandname, N> conditional branch based on the current transceiver's current band
  • if the current transceiver's current band is bandname, then execution proceeds with command N

  • if the current transceiver's current band is not bandname, then execution proceeds with the following command

  • bandname is a valid band name specified in the current sub-band definition file; the names 1.25m, 33cm, and 23cm are also accepted

  • be careful to avoid an infinite loop

<IfLED color, N> conditional branch based on the Command Sequence's current LED color
  • if the Command Sequence's LED color is color, then execution proceeds with command N

  • if the Command Sequence's LED color is not color, then execution proceeds with the following command

  • be careful to avoid an infinite loop

<IfMode modename, N> conditional branch based on the current transceiver's mode as last reported to Commander
  • if the current transceiver's last reported mode is modename, then execution proceeds with command N

  • if the current transceiver's last reported mode is not modename, then execution proceeds with the following command

  • modename is AM, CW, CW-R, Data-L, Data-U, FM, LSB, PKT, PKT-R, RTTY, RTTY-R, USB, or WBFM

  • be careful to avoid an infinite loop

<IfName name, N> conditional branch based on the Command Sequence's current button caption
  • if the Command Sequence's button caption is name, then execution proceeds with command N

  • if the Command Sequence's button caption is not name, then execution proceeds with the following command

  • the comparison between button caption and name is case-independent.

  • name can contain spaces, but not a comma

  • be careful to avoid an infinite loop

<IfRadioName name, N> conditional branch based on the current primary transceiver's name
<IfSeqName Q, name, N> conditional branch based on the specified Command Sequence's current button caption
  • Q is a number between 0 and 31 that specifies one of the 32 Command Sequences (0 for command sequence #1, 1 for command sequence #2, etc)

  • if the specified Command Sequence's button caption is name, then execution proceeds with command N

  • if the specified Command Sequence's button caption is not name, then execution proceeds with the following command

  • the comparison between button caption and name is case-independent.

  • name can contain spaces, but not a comma

  • be careful to avoid an infinite loop

<IfSplit N> conditional branch based on whether the current transceiver is operating split
  • if the current transceiver is operating split, then execution proceeds with command N

  • current transceiver is not operating split, then execution proceeds with the following command

<LED color> sets the current Command Sequence's LED color to color
  • color can be red, blue, green, black, white, yellow, cyan, or magenta
<LED Q, color> sets the specified Command Sequence's LED color to color
  • color can be red, blue, green, black, white, yellow, cyan, or magenta

  • Q is a number between 0 and 31 that specifies one of the 32 Command Sequences (0 for command sequence #1, 1 for command sequence #2, etc)

<Mode modename> sets the current transceiver's mode to modename
  • modename is AM, CW, CW-R, DATA-L, DATA-U, DIGL, DIGU, FM, LSB, PKT, PKT-R, RTTY, RTTY-R, USB, or WBFM
<Name text> sets the current Command Sequence's button caption to text
<Name Q, text> sets the specified Command Sequence's button caption to text
  • Q is a number between 0 and 31 that specifies one of the 32 Command Sequences (0 for command sequence #1, 1 for command sequence #2, etc)
<ParData N> sets the specified parallel port's eight data bits (pins 9 through 2) to the least significant 8 bits of N
<ParClearBit B> clears the specified parallel port's data bit B
  • B is a value between 7 and 0

  • B=7 selects pin 9; B=0 selects pin 2

  • clearing a data bit sets its output to ~0 VDC

  • after starting Commander, at least one <ParData N> command must be executed before executing a <ParClearBit B> command

<ParSetBit B> sets the specified parallel port's data bit B
  • B is a value between 7 and 0

  • B=7 selects pin 9; B=0 selects pin 2

  • setting a data bit sets its output to ~5 VDC

  • after starting Commander, at least one <ParData N> command must be executed before executing a <ParSetBit B> command

<PriDTR On>

<PriDTR Off>

enables or disables the Primary CAT Port's DTR modem control signal
<PriRTS On>

<PriRTS Off>

enables or disables the Primary CAT Port's RTS modem control signal
<priXcvr N> selects primary radio N
<QSY +F> increases the current transceiver's frequency by F KHz, e.g. <QSY +1>
<QSY -F> decreases the current transceiver's frequency by F KHz, e.g. <QSY -2>
<QSY freq> sets the current transceiver's frequency to Freq KHz, e.g. <QSY 14200>
<Receive> directs the radio to switch from transmitting to receiving (equivalent to clicking the RX button)
<Slider S, V> sets a specified slider to a specified value
<SO2R text>

if the SO2R Serial Port is Enabled, sends the text followed by a carriage return (ascii 13) to the SO2R Serial Port

<Split On>

<Split Off>

enables or disables the current transceiver's Split
<Tooltip text> sets the current Command Sequence button's popup explanation to text
<Tooltip Q, text> sets the specified Command Sequence button's popup explanation to text
  • Q is a number between 0 and 31 that specifies one of the 32 Command Sequences (0 for command sequence #1, 1 for command sequence #2, etc)
<Transmit> directs the radio to switch from receiving to transmitting (equivalent to clicking the TX button)
<TXMeter MeterName> sets the Xmit Meter selector to the specified MeterName
<XcvrA=B> directs the radio to set the VFO B (or sub-receiver) frequency to the VFO A (or main receiver) frequency
<XcvrAxB> directs the radio to exchange the VFO A (or main receiver) and VFO B (or sub-receiver) frequencies
<Wait> pauses for the duration indicated in the Command Interval textbox after executing the previous transceiver command in the sequence before executing the next transceiver command in the sequence.

 

The conditional branch and sequence button naming commands make it possible to create sequences that toggle a sequence button's function, as shown in this simple example for the Icom IC-756:

 

Using LED color to display the state of a controlled element, in this case an Icom IC-7700's Twin Peak Filter:

The Save and Load buttons enable you to save a Command Sequence to a specified file, and load a Command Sequence from a specified file.

Substitution strings 

Substitution strings let you insert the value of a command-generating slider, CI-V address, or ascii character into a specified position within a radio command.

The insertion of a slider's value into a template instruction is specified via a substitution string of the form <SFN>, where

For example, the command FEFE6EE01401<2D4>FD will use the current value of slider 2 to set an Icom 756 Pro III's AF gain. The S is only optional when the substitution string appears in the Command of a command-generating slider's Configuration window; in this case, the slider's own value is used, as shown in the screenshot in the section below.

The substitution string <CIV> is replaced hexadecimal radio commands by the current transceiver's specified CI-V address. Thus, the command FEFE<CIV>E01401<2D4>FD will be executed by the transceiver whose CI-V address is specified in the Radio panel on the Configuration window's General tab.

When controlling a Flex Signature transceiver, the substitution string <FlexSigPanStream> is replaced by the hexadecimal ID of VFO A's panadapter. This ID is required by some of the commands used to control a Flex Signature transceiver.

The substitution string  <n> (where n is an integer between 0 and 127) is replaced in ASCII radio commands by a single character whose ascii value is n; for example, <13> will be replaced by the "carriage return" character.

 

Command-generating Sliders

One can set the AF gain of a Kenwood TS-2000 by sending it the ASCII command AG0NNN; where NNN is a 3-digit decimal number between 0 and 255 that specifies the desired gain. One can set the AF gain of an Icom 756 Pro III by sending it the hexadecimal command FEFE6EE01402XXXXFD when XXXX is a 4-digit decimal number between 0 and 255. A Command-generating Slider lets you "fill in" the NNN or XXXX with an appropriate value determined by the handle position of a horizontal slider control in Commander's User-defined Commands panel. To control a TS-2000's AF gain with a slider control, one must at minimum configure the slider with

This information is captured by the slider's Configuration window, which can be made to appear by double-clicking the label beneath the slider control:

The <D3> substitution command does not specify a Slider number, so Slider 1's value is used (because this is Slider 1's configuration)

Lower bound the slider's value when its handle is positioned to the extreme left 
Upper bound the slider's value when its handle is positioned to the extreme right 
Small step the amount by which the slider's value is decreased or increased when you click the arrow at its extreme left or extreme right, respectively
Big step the amount by which the slider's value is decreased or increased when you click the in the space to the left or the right of its handle, respectively
Label text that will appear immediately below the slider
  • the string <value> will be replaced by the slider's current numeric value

  • the string <value U> (where U is a number) will be replaced by the slider's current numeric value scaled into the range between 0 and U

  • the string <value L, U> (where L and U are numbers) will be replaced by the slider's current numeric value scaled into the range between L and U

Function text that will appear in an explanatory popup window if the mouse cursor hovers above the label immediately below the slider
  • the string <value> will be replace by the slider's current numeric value
Command a hexadecimal or ASCII radio command that includes a substitution string specifying where and how the slider's value is inserted to create a command that is sent to the transceiver
  • when Commander starts

  • when a new transceiver is selected (if Commander is configured to control multiple transceivers)

  • whenever the slider's value is changed

Initialize Radio when checked, the generated slider command is sent to the radio on startup, or after switching radios

 

A slider's value is changed by 

In the example shown in the above screenshot of Commander User Slider 4's  Configuration window, the ASCII command AG0000; will be generated when slider 4's handle is moved to the extreme left, the ASCII command AG0255; will be generated when slider 4's handle is moved to the extreme right, and the ASCII command AG0128; will be generated when slider 4's handle is centered.

Note that while the CI-V commands used to control Icom transceivers are expressed in hexadecimal, variable settings must often be expressed in decimal. For example, the template used to control an Icom 756 Pro III's AF gain with slider #2 is FEFE6EE01401<2D4>FD (with a lower bound of 0 and an upper bound of 255) . In contrast, using slider #5 to select a Yaesu FT-1000MP's mode would be accomplished with 000000<5H>0C (with a lower bound of 0 and an upper bound of 11).

Only the signed decimal and hexadecimal formats should be used with sliders that can take on negative values. For example, the FlexRadio template 'ZZWB<1S4> will generate commands like ZZWB+028 or ZZWB-014 .

Commander's 16 sliders are numbered 1 through 16 and organized into two banks of 8, which each bank containing two rows of 4 sliders. The same ALT checkbox that switches between banks of Command Sequences also switches between banks of sliders.