WinWarbler Macros

WinWarbler Online Help Contents

WinWarbler's two banks of sixteen macros allow you to transmit information with a single mouse click or keystroke. To invoke a macro in the first bank, click on its button, or strike its associated function key (F5 through F12, and Shift-F5 through Shift-F12). To invoke a macro in the second bank, depress and hold the ALT key to display the second bank, and then click the appropriate macro button, or strike its associated function key. Checking the ALT checkbox, located between the 4th and 5th macro buttons, displays the second bank of macros until you uncheck it. You can also switch macro banks using the <macrobank n> command described below.

WinWarbler also provides 

These dedicated macros can be used to set transceiver parameters, select a macro bank, and/or load a macro bank from a file containing macros appropriate for the mode.

Letting the mouse cursor linger above a macro button displays a popup showing what the macro will transmit.

To modify a macro, depress the Ctrl key while clicking on the macro's associated button or striking its associated function key. WinWarbler will display its macro definition window, which displays two components for each macro: title, and contents. The title is used to label the macro buttons on WinWarbler's main window. The contents determine what is transmitted when the macro is invoked. 

To set the color of the font used to label a macro button, click the appropriate Set button in the Font Color column, and choose the desired color from the color selection window. If you depress the CTRL key while clicking a Set button, the macro button's font color will be set to black.

To set the color of a macro button's face, click the appropriate Set button in the Button Color column, and choose the desired color from the color selection window. If you depress the CTRL key while clicking a Set button, the macro button's button face color will be set to the standard button face color in the current Windows color scheme.

For macros whose length exceeds that of the macro definition window display, double-clicking in the contents field will invoke a resizable editing dialog.

You can save a macro bank's sixteen macros to a file by clicking the Save button and selecting a destination pathname. You can load a macro bank's sixteen macros from a file by clicking the bank's Load button and selecting a source pathname. The last filename pathname associated with a macro bank is displayed in the Macro Bank panel's caption; if a macro is subsequently modified, this will be noted in the panel's caption. The simple name of the file is displayed in the Main window's Macro panel caption. If you use a text editor to modify the contents of a file into which macros have been saved, do not insert line breaks, as this will prevent WinWarbler from properly loading the file; to insert a line break in a macro use the <enter> substitution command described below.

The PSK startup, RTTY startup, and CW startup macros are defined in the lower portion of WinWarbler's macro definition window; there's a checkbox associated with each startup macro that determines whether the macro's commands are executed when a switch to its mode occurs.

To insert a line break in a macro, use the <enter> substitution command described below. 

In a macro's contents, any information not surrounded by a pair of angle brackets is transmitted verbatim in every mode except phone. Valid commands begin and end with an angle bracket; WinWarbler processes such commands in a macro's contents by replacing them as enumerated in the following substitution table, or by executing an action specified in one of the following action tables:

Command Substitution 
<n> the character whose ASCII code is n (for 0 <= n < 255); control characters other than <17>, <18>, and <19> will be conveyed to the external modem if in CW mode with keying via the external modem, or if in RTTY mode with the external modem's receive pane active
<callsign> contents of the call textbox
<contest_id> the contents of the contest textbox
<cwid> transmit the CW identification string when transmission is complete
<date> the current UTC date
<enter> the character whose ASCII code is 13 - use this to insert a line break in a macro
<file: filename> the contents of the designated file ; filename should begin with a drive letter and include all intervening directories
<grid> contents of the grid textbox
<lastqso> if DXKeeper is running and a previous QSO lookup is successful, the string

The last of our X QSOs was at HH:MM UTC of YYYY-MM-DD on FF.FFF MHz in {Mode}.

where X is the number of previous QSOs with the current station,  HH:MM, YYYY-MM-DD, FF.FFF. and {Mode} are taken from the most recent previous QSO. If a QSL for this most recent previous QSO has been received, the string

Thanks for QSL!

is appended.

If the previous QSO lookup is unsuccessful, the string 

This is our first QSO.

is appended.

<lastqsocount> if DXKeeper is running and a previous QSO lookup is successful, the number of previous QSOs with the station; otherwise, nothing
<lastqsodate> if DXKeeper is running and a previous QSO lookup is successful, the UTC date of the most recent QSO with the station in YYYY-MM-DD format; otherwise, nothing
<lastqsotime> if DXKeeper is running and a previous QSO lookup is successful, the UTC time of the most recent QSO with the station in HH:MM format; otherwise, nothing
<lastqsofreq> if DXKeeper is running and a previous QSO lookup is successful, the frequency in MHz on which the most recent QSO with the station was conducted; otherwise, nothing
<lastqsomode> if DXKeeper is running and a previous QSO lookup is successful, the mode in which the most recent QSO with the station was conducted; otherwise, nothing
<lastqsostatus> if DXKeeper is running and a previous QSO lookup is successful, confirmed if the most recent QSO's QSL_Rcvd item is 'Y' or 'V', otherwise unconfirmed .
<mycall> the operator's callsign
<mycourse> the contents of the course textbox on the Configuration window's Position and Vector tab
<mygrid> the contents of the grid square textbox on the Configuration window's Position and Vector tab
<mylatitude> the contents of the latitude textbox on the Configuration window's Position and Vector tab
<mylongitude> the contents of the longitude textbox on the Configuration window's Position and Vector tab
<myspeed> the contents of the speed textbox on the Configuration window's Position and Vector tab
<name> contents of the name textbox; if the name textbox is empty, returns om
<newline> the character whose ASCII code is 10
<peakIMD> contents of the peak IMD textbox ; if the peak IMD textbox is empty, returns not measured
<QSOBeginUTC> QSO begin time for the current receive pane in the format hhmm
<QTH> contents of the QTH textbox
<qsonumber> if DXKeeper is running and a previous QSO lookup is successful, the number of previous QSOs with the current station
<revision> WinWarbler's revision level
<RSTsent> contents of the rst S textbox; if in CW mode and use cut #s in macros is checked, substitute T for 0 and N for 9
<RSTreceived> contents of the rst R textbox; if in CW mode and use cut #s in macros is checked, substitute T for 0 and N for 9
<rx_freq> the current RF reception frequency (if RTTY, mark frequency)
<rx_serial_number> the contents of the RX# textbox; if in CW mode and use cut #s in macros is checked, substitute T for 0 and N for 9
<transmit_power> the contents of the TX Pwr textbox; if in CW mode and use cut #s in macros is checked, substitute T for 0 and N for 9
<tx_freq> the current RF transmission frequency (if RTTY, mark frequency)
<tx_serial_number> the contents of the TX# textbox; if in CW mode and use cut #s in macros is checked, substitute T for 0 and N for 9
<UTC> the current UTC time in the format hh:mm
<UTChour> the current UTC hour in the format hh
<UTCminute> the current UTC minute in the format mm
<Via> contents of the Via textbox

 

Command Action
<advance_tx_serial_number> increment the contents of the TX# setting if the increment TX# setting is enabled
<afc: n> if n =0 then disable afc; if n =1 then enable afc (changes afc for current mode -- PSK or RTTY)
<archivetimestamp> if automatic archiving is enabled, writes a timestamp into the current pane's archive file
<clear_qso> clear the callsign, name, QTH, RST sent, RST rcvd, and rx serial# textboxes in the QSO info panel
<clear_receive_pane> clears the current receive pane
<clear_receive_pane: n> if n is 0, 1, or 2, clears the specified receive pane if its visible
<clear_transmit_pane> clears the transmit pane and any not-yet-transmitted data
<cwspeed: n> adjusts the CW speed in words per minute
  • <cwspeed: 20> sets the CW speed to 20 words per minute

  • <cwspeed: +5> increases the CW speed by 5 words per minute

  • <cwspeed: - 3> decreases the CW speed by 3 words per minute

Note: this macro takes effect after transmission of the preceding character except when transmitting CW via the External Modem, in which case the macro takes effect when its executed

<log_qso> Before executing a macro containing this command, WinWarbler checks for errors or omissions, considering the flag invalid callsigns and require DXCC settings. If no errors or omissions are found, WinWarbler creates a new log record from the information contained in the QSO info panel, records it in the Minilog, and directs DXKeeper (if running) to log it . If errors or omissions are found, they are flagged by flashing the offending item's caption  in red font, and none of the macro is executed. 
<log_eqsl_qso> Before executing a macro containing this command, WinWarbler checks for errors or omissions, considering the flag invalid callsigns and require DXCC settings. If errors or omissions are found, they are flagged by flashing the offending item's caption  in red font, and none of the macro is executed.  If no errors or omissions are found, WinWarbler creates a new log record from the information contained in the QSO info panel, records it in the Minilog, and directs DXKeeper (if running) to both log the QSO and immediately upload it to eQSL.cc 
  • if the upload succeeds, DXKeeper records a 'Y' in the QSO's QSL_sent field and the current UTC date in its date_sent field

  • if the upload fails, the QSO is logged, but the QSL_sent and date_sent fields remain empty

  • successful uploading requires that you have registered with eQSL.cc and have specified your username and password on the eQSL tab of DXKeeper's DXKeeper's window. 

<loadmacrobank: filename> loads the currently selected macro bank with macros defined in the specified filename located in WinWarbler's scripts folder. If WinWarbler is installed in the folder

c:\program files\winwarbler  

then the command

<loadmacrobank: cw.txt>

will load the current macro bank with macros defined in the file

c:\program files\winwarbler\scripts\cw.txt

note: if no macro bank has been selected by a preceding <macrobank: n>, then macro bank 1 will be loaded

<macrobank: n> selects and displays macro bank n (n must be 1 or 2)
<modulation: cw> Send and receive CW
<modulation: bpsk lsb> Send and receive PSK31 with BPSK modulation using lower sideband
<modulation: bpsk usb> Send and receive PSK31 with BPSK modulation using upper sideband
<modulation: qpsk lsb> Send and receive PSK31 QPSK modulation using lower sideband
<modulation: qpsk lsb> Send and receive PSK31 QPSK modulation using upper sideband
<modulation: bpsk63 lsb> Send and receive PSK63 with BPSK modulation using lower sideband
<modulation: bpsk63 usb> Send and receive PSK63 with BPSK modulation using upper sideband
<modulation: qpsk63 lsb> Send and receive PSK63 with QPSK modulation using lower sideband
<modulation: qpsk63 usb> Send and receive PSK63 with QPSK modulation using upper sideband
<modulation: phone> Send and receive Phone
<modulation: rtty> Send and receive RTTY
<net: n> if n =0 then disable net; if n =1 then enable net (changes net for current mode -- PSK or RTTY)
<play: filename> if WinWarbler is in Phone mode, plays the designated .wav file in the .wav file folder via the soundcard
<rcvchannel: n> set the current channel to n (n must be 0, 1, or 2)
<rcvchannel: n hz> set channel n receiver audio frequency to hz without changing current channel (n must be 0, 1, or 2 and hz must be in the range of 50 to 3500)
<say: message> if WinWarbler is in Phone mode, speaks the message via the soundcard (requires appropriate .wav files to be present in WinWarbler's Phone folder as described below)
<saycallsign> if WinWarbler is in Phone mode, speaks the contents of the QSO Info panel's Call textbox via the soundcard  (requires appropriate .wav files to be present in WinWarbler's Phone folder as described below)
<saycallsignphonetics> if WinWarbler is in Phone mode, speaks the contents of the QSO Info panel's Call textbox phonetically via the soundcard  (requires appropriate .wav files to be present in WinWarbler's Phone folder as described below)
<saytxserial> if WinWarbler is in Phone mode, speaks  the QSO Info panel's TX# textbox  (requires appropriate .wav files to be present in WinWarbler's Phone folder as described below)
<scrttybaud: n> set the soundcard RTTY baud rate to n
<scrrtyshift: n> set the soundcard RTTY shift to n (hertz)
<start> begin transmission
<stop> stop transmission when all to-be-transmitted information has been sent
<txaudiofreq: hz> set the transmitter audio frequency to hz (net must be disabled and hz must be in the range of 50 to 3500)
<xmrttybaud: n> if n is a supported baud rate, set the external modem RTTY baud rate to n
<xmrrtyshift: n> if n is a supported shift, set the external modem RTTY shift to n hertz

The <say: message>, saycallsign>, and <saytxserial> commands require that you populate WinWarbler's Phone folder with the following files:

The <saycallsignphonetics>  command requires that you populate WinWarbler's Phone folder with the files A_phonetic.wav, B_phonetic.wav, ... Z_phonetic.wav - each containing a recording of the spoken letter's phonetic (e.g. Alpha, Bravo, ...Zulu).

If Commander is running, the following substitution commands can be used to control an attached transceiver; if Commander is not running, these commands have no effect:

Command Action
<optoffset> If a PSK mode is active, direct Commander to QSY the transceiver to shift the currently received PSK signal to the optimal PSK offset for the current channel; otherwise, direct Commander to QSY the transceiver to shift the currently received signal RTTYto the optimal RTTY offset
<xcvrcommand: hexcmd> Direct Commander to send hexcmd to the transceiver; hexcmd is specified with 2 hexadecimal digits per byte.
<xcvrfreq: kilohertz> Direct Commander to set the transceiver's frequency to kilohertz
<xcvrmode: usb> Direct Commander to place the transceiver in USB mode
<xcvrmode: lsb> Direct Commander to place the transceiver in LSB mode
<xcvrmode: am> Direct Commander to place the transceiver in AM mode
<xcvrmode: cw> Direct Commander to place the transceiver in CW mode
<xcvrmode: cwr> Direct Commander to place the transceiver in reverse CW mode
<xcvrmode: rtty> Direct Commander to place the transceiver in RTTY mode
<xcvrmode: rttyr> Direct Commander to place the transceiver in reversed RTTY mode
<xcvrmode: fm> Direct Commander to place the transceiver in FM mode
<xcvrmode: wbfm> Direct Commander to place the transceiver in wideband FM mode
<xcvrmode: pkt> Direct Commander to place the transceiver in packet mode
<xcvrsequence: sequence> If sequence is a single digit between 0 and 7, execute Commander's corresponding  User-defined Command Sequence where 0 corresponds to the F5 sequence, 1 corresponds to the F6 sequence, etc; otherwise, execute the User-defined Command Sequence whose name is sequence . 

 

 

For applications using frequencies outside of the amateur radio bands,  there exists a version of WinWarbler that allows you to schedule the execution of macro sequences, where a macro sequence specifies the execution of one, two, or three macros. Each of the macros within a sequence can be repeated up to three times, and the entire sequence can be repeated up to three times at specified intervals. If you have need for this functionality, contact AA6YQ at [email protected] .