From Win-Test Wiki
Jump to navigation Jump to search


Automatic CQ repeat

Use the text command RPTDELAY to get to this menu quickly.

Auto CQ Settings

This option allows you to automatically repeat messages after a certain amount of time if no key was pressed by the operator. This feature works on all modes and simulates the operator pressing one of the keys [F1] to [F7] key after so and so many seconds.

Traditionally, this is used for the [F1] key to auto-repeat CQ but it can also beused on other keys.

Contrary to CW operation, note that when using an external voice keyer on SSB (like the built-in DRU-2 in a Kenwood TS-850) Win-Test does not know when the message ends. For this reason, the time period to be set is the time that elapses between two CQ calls. This is also true for RTTY when using the MMTTY plug-in.

You may want to use the text commands NORPT or RPT to deactivate and later reactivate that function.

Intelligent Quick QSL...

Use the text command QUICKQSL to get to this menu quickly.

This option controls the content of the two message variables $QQSLT and $QQSLC. When used, these variables change their content after so and so many seconds or when a number of QSOs have been logged. That way you can send a short QSL message to confirm the QSO in a pileup, but make sure your full callsign gets transmitted automatically every 2 minutes or every 5 QSOs only. So while most QSOs would be completed with TU or EE sometimes we would send a message like TU F5MZN.

The intelligent quick QSL option allows you to automatically control sending of your own callsign every so often during a heavy pileup.

A timer ($QQSLT macro) or a counter ($QQSLC macro) are associated with these macros to determine if either a short or a long QSL message is to be transmitted. Additionally, this feature can be related to the current QSO rate (so-called adaptive intelligent quick QSL).

The $QQSLC and $QQSLT macros can either be used in the CW/RTTY Messages or in the advanced SO2R scenarios. It is also possible to use the feature in SSB (SO1R and SO2R not avanced) but this needs a specific configuration in the SSB tab of the configuration window.

In the PLUS message in the Standard CW messages configuration, replace TU $MYCALL with $QQSLC or $QQSLT. Intelligent Quick QSL will then send a short QSL message or a long QSL message according to the set counter or the set timer in the respective variable.

The macro $QQSLRESET resets the timer or the counter like if the long QSL message were just sent. It makes sense to use this macro in each message you send your callsign in like CQ (F1) or MYCALL (F4). That way, you won't send a long QSL message after just having sent your call a few seconds before.

Redefine keyboard keys

Use the text command DEFINEKEYS to get to this menu quickly.

On some keyboards, it is difficult to reach specific keys, so Win-Test allows you to re-define some of the keys on your keyboard.

Redefine Keyboard Keys

For example, to make the period key [.] call CQ, just like [F1]:

  1. Press the [Add] button
  2. Press the key you want to reprogram: the period key [.]
  3. Press the key that does the function you want: the [F1] key
  4. Press the [OK] button to save the changes, or press the [Esc] key to exit without saving any changes

To restore a remapped key to its default behavior, highlight a line by clicking on it with the mouse, then press the [Delete] button.

Remapping is done on a 1:1 basis. One keystroke becomes an alternate version of another. The original key still works as before. Keyboard remapping is saved in the wt.ini file, so the same map will automatically be used for all contests.

WARNING: Do not copy wt.ini from one machine to a new machine that already has a registered version of Win-Test, or else will have to re-enter the registration key on the new machine. See registration instructions.

In the example above, you can see how the commonly-used keys like [F1], [Ins], and [+] have all been remapped to keys that are much easier to reach on a U.S. keyboard, especially if you are a touch-typist. The keyboard map shown in the example was developed by N6TV for Team Vertical:

  • [.] (the period key) calls CQ, just like [F1]
  • [;] (the semiclon key) sends the message, just like the [Ins] key
  • ['] (the single-quote key) sends TU and logs the QSO, just like the [+] key
  • [\] (the backslash key, just above the [Enter] key on many U.S. keyboards) sends $MYCALL, just like [F4]
  • [,] (the comma key) sends a single question mark, just like [F7]

NOTE: Remapped keys are ignored in keyboard mode unless you enable the CW Option Remap keys in keyboard mode. It is generally a good idea to enable this option so that all message keys work the same, whether you are in keyboard mode or not.

Data entry

These functions describe settings that influence data entry to the log entry line.

Exchange guessing

Exchange guessing is a feature of Win-Test that predicts the exchange that is going to be received before your QSO partner actually sends the report. In many contests a fixed piece of information is exchanged like the CQ zone in the CQWW contests, or ITU zone in IARU. This option allows you to select the way Win-Test fills in the exchange:

  • pressing the space bar
  • automatically
  • after timeout

Note this option also acts on the various warnings (dupe, new mult, etc., if any) displayed under the log lines.

This feature saves you from continuously typing the same information over and over again but you better make yourself sure the guessed report is correct before you press the [Enter] key.

Please refer also to Setting up Exchange Guessing in Win-Test to know how to activate this feature for a specific contest.

Note: CQ zones in the USA and Russia will be guessed correctly (well, 99%) only when you have loaded F5IN's CTY_WT_MOD.DAT file. Otherwise Win-Test will always come up with the default zone of that country (5 for USA, 17 for UA9 and UA0). Please see Data files for more details on how to select the right CTY file.


To change bands, you may wish to enter a frequency or band (m) into the callsign field. This option determines how these figures are to be understood by the program:

  • Band - take 10,15,20,40,80,160 as a meter band
  • Frequency - take the input as a frequency; shorted inputs as kHz

To make this a little more clear, if you enter 40:

  • In the first case will switch the band to 40 meters (thus, enter 040 or 40.0 if you want to tune your radio to 040)
  • In the second case it will tune your radio to decimal 040 on the current band (thus, enter 40M if you want to switch to 40 meters).

Enable ESM

Win Test v4 comes with an Enter Sends Message (ESM) feature, well-known by users of TR (N6TR). The functionality can be turned on or off via this menue item or using the text commands ESM/NOESM.

ESM relies on the following messages assignation:

 F1: CQ
 F2: Sent report
 F4: Mycall
 F5: Logged callsign ($LOGGED)
 F7: ? (or "Again ?" in phone)
 INSERT: Callsign + sent report
 PLUS: TU + enter Q

The basic functionality of ESM can be described like this:

  • Pressing [Enter] with an empty callsign field, will send the F1 message.
  • Pressing [Enter] with a callsign filled in but no report will send the INSERT message.
  • Pressing [Enter] with callsign and report filled in will send the PLUS message.

There are additional minor details to ESM, which are not described here. On top, ESM behaviour is user-modifyable by using a script editor.

Once ESM is enabled, the [Enter] key can no longer be used to silently log a QSO. The key combination [Ctrl+Plus] has been introduced and added for this purpose.

Remap Slash to /P

This option allows you to map "/" to "/P" for Field Day, VHF/UHF contests and DX pedition mode.

Enable Run/S&P switching

Enable RUN/S&P switching

Allow switching between Run and Search & Pounce Operating Mode in order to have two different sets of CW/RTTY messages: one when running, and one when searching multipliers.

  • Use [Ctrl-tab] to switch between RUN and S&P mode on the Primary Radio. The current mode is shown in the clock window. To change the mode of the Secondary Radio Window, use either [Ctrl-Shift-tab] or a mouse click on the appropriate control in the Secondary Radio Window.
  • It is possible to configure WT to automatically populate the Band Map and wipe the data entry area whenever the operator changes the radio's frequency, if Search & Pounce mode is activated on that radio. This can be configured from the Band Map Properties dialog (right click in the Band Map window).

Note: Search & Pounce is not activated by default. To automatically populate the Band Map, you must switch to S&P mode.

Note: When switching from Run to S&P mode, Auto CQ and Auto CW Sending are automatically disabled.

Switch keyboard...

Switch keyboard during the contest - useful for mult-national teams

Keyboard switching for international teams with different keyboards. It is enabled only if several keyboards are installed on your system. You can also access this dialog by entering the text commands KEYBOARD or KEYB for short.

Scripts Manager

Allows to edit, create, delete or rename scripts. It's also used to assign a key and/or an argument to a script. Scripts are to be created and maintained by the user using the Lua programming language. For a reference of the Lua programming language, see

The Win-Test Scripts Manager to edit, create, delete or rename WTS scripts

The scripting language gives the user the unique possibility to achieve dynamic tasks in WT. And it also offers the possibility to share your work with other WT users who don't have time or skill to build it.

ESM is the first area in Win-Test where the scripting language Lua is used. The ESM function itself is a Lua script, embedded in Win-Test (not modifiable). But, it has been designed to be totally overriden by a user-written script if wanted. That means you can write and use you own script to replace some ESM actions, or even to totally override the embedded script.

How to do this? The minimum requirement is to know some basics of programming. The Lua syntax is very easy, almost simplistic for easy tasks. If you're comfortable with any programming language, you will learn Lua in minutes, at least for basic scripting involved in Win-Test. Several WT API/functions are provided to allow actions.

List of Win-Test API/Functions

wtApp:AlertBox(Text) Opens a standard Windows alert box with text.
wtApp:SendFKey(Key) Key is one of "F1".."F12" + "Insert" + "Plus" + "Esc"
wtApp:SendKeyCode(Code) Send ASCII keycode to application
wtContest:IsExchangeRequired() Return a boolean. True if the current contest requires an exchange (associated with RST)
wtContest:GetContestId() Return the current contestID
wtKeyer:Play(Message) Message is a plain string to be played, a saved message ($F1 etc.) or a variable ($xxx)
wtKeyer:Stop() Stop the current message
wtQso:IsCallsignEmpty() Return a boolean : True if the callsign field of the active QSO is empty
wtQso:IsCallsignIncomplete() Return a boolean : True if the callsign field of the active QSO contains a "?"
wtQso:IsExchangeEmpty() Return a boolean : True if the exchange field of the active QSO is empty
wtQso:IsExchangeSent() Return a boolean : True if the exchangeSent flag of the active QSO is set
wtQso:SetExchangeSent() Set the exchangeSent flag of the active QSO (see wtQso::IsExchangeSent()) - Similar to the use of $SETEXCHSENT
wtQso:ResetExchangeSent() Reset the exchangeSent flag of the active QSO (see wtQso::IsExchangeSent()) - Similar to the use of $RSTEXCHSENT
wtQso:ClearStatus() Clear the status flags of the active QSO
wtQso:IsCallsignRepeated() Return a boolean. True if the callsign hasn't changed since the last Enter
wtQso:IsOperatingModeRun() Return a boolean. True if the operating mode of the active QSO is RUN (and False if S&P)
wtQso:IsModePhone() Return a boolean. True if the mode of the active QSO is Phone (SSB and FM), and False otherwise
wtQso:IsQsoApproved() Return a boolean. True if all requested fields of the active QSO are filled (contest dependent)
wtQso:IsDupe() Return a boolean. True if the current callsign is a dupe
wtQso:IsCurrentFieldCallsign() Return a boolean : True if the current field is the callsign field
wtQso:IsCurrentFieldExchange() Return a boolean : True if the current field is an exchange field
wtQso:IsCurrentFieldOther() Return a boolean : True if the current field is not the callsign field or an exchange field
wtQso:IsCurrentFieldEmpty() Return a boolean : True if the current field is empty (except RST for the exchange field)


  1. Use the Scripts Manager to manage scripts, using a simple editor like Notepad. The scripts are stored in the {AppData}/All Users/Win-Test/scripts/ directory.
  2. Before you can press the Edit button, make sure you have configured an ASCII editor in the Options Menu
  3. If you wish to replace the built-in ESM script in Win-Test, save your script as "esm.wts". The value returned by your script will tell Win-Test what to do after it is executed:
    • If the return value is 0 (or if there is no return value), WT will run its own embedded script after yours.
    • If the return value is 1, WT will continue the Enter key process, without calling its embedded script.
    • And if the return value is -1, WT will stop the Enter key process, without calling its embedded script.
  4. WT maintains two different QSO status: One for each radio. They are automatically cleared when the QSO is entered, if the operating mode (RUN/S&P) is switched or if the wtQso:ClearStatus() is executed.
  5. Lua global variables are persistent between scripts calls. If you don't want this behavior, use local variables instead (keyword local).

Basic Examples

Example 1

  -- esm.wts
  wtApp:AlertBox("Enter key ! ESM rulez...");
  return 0; -- This line can be omitted
  -- end

No return value (or 0) => WT will execute this script (the alert box will be displayed), and the embedded script will be called after it.

Example 2

  -- esm.wts
  wtApp:AlertBox("Enter key ! The key is processed by WT");
  return 1;
  -- end

The return value is 1 => After executing the script (the alert box will be displayed), WT will continue its own process and act exactly as if someone hit Enter. Read: It silently enters the QSO if it is OK. The embedded ESM script is ignored.

Example 3

  -- esm.wts
  wtApp:AlertBox("Enter key ! The key processing is stopped");
  return -1;
  -- end

The return value is -1 => After executing the script (the alert box will be displayed), the embedded ESM script is ignored and WT will also ignore the Enter key process (no QSO is entered).

Advanced Examples

ESM Script (embedded into Win-Test)

For convenience, you can find below the current ESM embedded script. Note that the real returned values are somewhat different from the ones described above, because of the nature of this script (embedded), but it is a good source of inspiration for your own masterpiece. As Lua is an interpreted language, the good news is that you can edit your script while WT is running. No need to exit WT, enter modifications, and start WT again. Just edit esm.wts while WT is running, save it, and try it immediately!

-- v1.1 Dupes taken into account in the S&P mode
-- v1.0 Initial version

-- Send functions

function sendCq()
   wtApp:SendFKey("F1");  -- Always use the function key

function sendExchangeRun()
   if (wtQso:IsModePhone()) then

function sendExchangeAgain()
   if (wtQso:IsModePhone()) then
     wtKeyer:Play("$F5 $F7"); -- $LOGGED ?

function sendTu()
   if (wtQso:IsModePhone()) then

function sendQuestionMark()
   if (wtQso:IsModePhone()) then
     wtApp:SendFKey("F7"); -- Again ?

function sendMyCall()
   if (wtQso:IsModePhone()) then
     wtApp:SendFKey("F4"); -- My call

function sendExchangeSAndP()
   if (wtQso:IsModePhone()) then

-- ESM core code

-- Return 0 (or return nothing) if we want the CR
-- to be processed also by WT (ie log QSO) and -1 if not.

if (wtQso:IsOperatingModeRun()) then -- Run
   if (wtContest:IsExchangeRequired()) then -- Usual contests
     if (wtQso:IsExchangeEmpty() or not wtQso:IsQsoApproved()) then
       if (wtQso:IsCallsignEmpty()) then
         if (wtQso:IsCallsignRepeated()) then
       if (wtQso:IsExchangeSent()) then
   else -- DXPed etc.
     if (not wtQso:IsQsoApproved()) then
       if (wtQso:IsCallsignEmpty()) then
         if (wtQso:IsCallsignRepeated()) then
       if (wtQso:IsExchangeSent()) then
else -- S&P : The automatic exchange fill (if enabled) is disabled by WT
   if ( (wtQso:IsExchangeEmpty() and wtContest:IsExchangeRequired())
         or not wtQso:IsQsoApproved() ) then
     if (wtQso:IsCallsignEmpty()) then
       if (not wtQso:IsDupe()) then -- Call only if not dupe
     if (wtQso:IsExchangeSent()) then
       return 1 -- Log it silently _Caution_ : embedded script returns 0
       if (not wtQso:IsDupe()) then -- Sent exchange only if not dupe

return -1; -- This script overrides the Win-Test CR process

Grab next call from partner window

The following script was kindly provided by Hank Lonberg, KR7X. It remaps the [~] key to grab the next callsign from the partner window and send an exchange.


Re-map Ä key with /P for Field Day

Practical in Field Day where a lot of stations are signing "/P" - especially with a German keyboard layout.

-- add /P to a callsign for Field Day operations

Load a target file

This option allows you to load a so-called target file - an ASCII file (maybe self-generated) that has QSO and multiplier targets for each hour of the contest. This is a nice way to integrate a plan into your contest environment to keep yourself motivated. In the old days we used to have a piece of paper on the wall - today Win-Test automatically tracks this information for your convenience.

Before you can load a target file you will have to create one or receive one from somebody else. Please see Export a target file on how to do that.

The content of the target file becomes visible in the statistics window (see Statistics) when you compare current standings with the values in the target file.

Loading a target file is usually a Pre-contest configuration task. Please refer to the usual Pre-contest configuration activities chapter in this manual.

A target file can also be loaded at any time during the contest. If you see your target score was too easy, you can load a new target to keep your motivation high. You set a target to break your national record, and now things go better and you see the possibility to break the continental record. How can you track this new situation? Preparing more than one file with different targets is a good practice: if conditions change then simply load the new target file and WT will show you how you are doing against that new target!

Export a target file

This option allows you to create a target file from the log file currently loaded. It is useful to use last year's log as a start to create a target for this year's contest.

Exporting a target (.obf) file

You should give a title to the target file to make clear what you're comparing to. Maybe you will want to change the target file to a more optimistic one when you'll realize band conditions are so great this time!

You may want to select which time frame to export (Starting time, ending time). Hours on Sunday have to be given in time + 24 hours so that 12:00 UTC on Sunday becomes 36.

Next you have to choose which columns to export to the target file. Normally you will want QSO count (with or without dupes), multipliers and points.

After pressing OK a file with the extension .obf will be created which will look similar to the file below:

# Target file generated by Win-Test
TITLE IARU Contest 2006 DA0HQ
START = 12
END = 36
12 QSO = 0 MULT = 0 POINTS = 0
13 QSO = 1 MULT = 1 POINTS = 1
14 QSO = 1 MULT = 1 POINTS = 1
15 QSO = 1 MULT = 1 POINTS = 1
16 QSO = 1 MULT = 1 POINTS = 1
17 QSO = 2 MULT = 2 POINTS = 4
18 QSO = 3 MULT = 2 POINTS = 4
19 QSO = 4 MULT = 2 POINTS = 6
20 QSO = 4 MULT = 2 POINTS = 6
21 QSO = 4 MULT = 2 POINTS = 6
22 QSO = 8 MULT = 3 POINTS = 18
23 QSO = 8 MULT = 3 POINTS = 18
24 QSO = 8 MULT = 3 POINTS = 18
25 QSO = 8 MULT = 3 POINTS = 18
26 QSO = 8 MULT = 3 POINTS = 18
27 QSO = 8 MULT = 3 POINTS = 18
28 QSO = 8 MULT = 3 POINTS = 18
29 QSO = 8 MULT = 3 POINTS = 18
30 QSO = 8 MULT = 3 POINTS = 18
31 QSO = 8 MULT = 3 POINTS = 18
32 QSO = 18 MULT = 3 POINTS = 21
33 QSO = 30 MULT = 5 POINTS = 45
34 QSO = 42 MULT = 5 POINTS = 50
35 QSO = 81 MULT = 7 POINTS = 224

As you can see the structure of the file is so easy to understand that you might want to use an ASCII editor to go and make some changes - or create it completely from scratch yourself using this template!

Check log

This tool allows you to verify if special restrictions of the contest rules have been adhered to in this log. You have different options, depending on the category you choose (see pictures below):

Check Log feature for M/S category
Check Log feature for the M2 category - note the differences in options offered. If you select a contest and/or category which does not have a QSY limit, this option will not show up.

Depending on the selected contest category, you may check for:

  • 8 QSY per Hour: Check the QSY count per hour (ARRL DX in M/2 category for example).
  • 10 min QSY rule: Check if the minimum time on a band has been respected (Multiplier station in a M/S effort during a CQWW DX for example).
  • Check that QSO on Mult station are Mults: Check if all QSOs made on the multiplier station are actually multipliers. You may want to quote the exceptions (if any) when sending your log to the contest sponsor to avoid massive score reductions.
  • Search for possible Bad Exchanges: Search the logged exchanges which are potentially bad, according to the database or to the other QSOs made with the same station during the contest. Works for CQWW, ARRL DX or any contest in which there is something which apparently is a zone. It also works for the VHF contest when a Gridsquare is logged.
  • Show Uniques: Search N+1 for each unique logged callsign in the log. A unique callsign is a callsign that appears in the log only once (contact only on one band and mode, and no dupe). N+1 can be searched against the log, the callsign database (Master database) or both. It is possible to switch off N+1 searching for unique callsigns which are known to the callsign database.
  • Display distinct callsigns...: Display all distinct callsigns of a log, and band(s)/mode(s) worked by each station. You can sort this report by callsign, by number of Q and by country.

These are some of the typical reports you get:

Checked Exchanges Report
Unique Report
Distinct Callsigns Report - see who you worked on which bands/modes

You have the options of opening the report in a Notepad window for further processing. Additionally, you may press the Update button to create an updated report after you have done some changes to the log.

Time shifting

This option allows you to time shift selected QSOs by any amount of time - either positive or negative. It lets you correct a constant time offset (like you had set the wrong date on the computer, or the clock was off by one hour). You may consider to use this option after the contest to avoid heavy manual editing of many QSO's time through the use of Alt-F.

The time shift can be applied to the entire log or to a range of QSOs, to the QSOs entered by your own station (this could make sense in a multi operator environment), to QSOs entered by several stations. Note that in a multi operator environment, one station should always be (or should have been) defined as the time master to establish a common time base in the network.

Time Shifting Parameters

Even though this tool is supposed to be used after a contest to correct a wrong clock setting, each time change will be broadcasted to all other stations of the network by default. You can disable this broadcasting — if not needed.

Note that time shifting is pretty CPU consuming. It may take quite some time for large logs, because each QSO modification requires several internal structures (mainly statistics) to be updated accordingly. Time shifting can not be cancelled while it is in progress, to avoid any log inconsistency.

Note: Wise users will create a backup of their log before using this option.

Correcting OP over a QSO range

This function lets you change (or add ) the operator to a range of QSO. The QSOs are selectable by QSO number, by band, by mode or by callsign.

Tool to correct operator for a range of QSOs

Download Files through the Network

To collect logs from different networked computers after a contest is over is the task of this function. Instead of having to visit each single computer, plug in the USB drive, copy the files over and move on to the next, this feature let's you collect the binary and notes files from all computers at once.

Collect files after the contest without leaving your chair

Back to Menus