Difference between revisions of "Contest definition"

From DXLog.net
Jump to navigation Jump to search
(Configuration screen control)
(35 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
==Description==
 
==Description==
  
Rules for each of the contests are more or less different from each other.<br>
+
Rules for most contests are different and are usually written by the group adjudicating the contest.<br>
It can be difference in points per qso calculations, multiplier determination and calculations etc.<br>
+
The differences can be points per QSO, multiplier determination and calculations etc.<br>
  
To support all these different rules and to allow easier adding / changing contest rules in DXLog.net,  
+
To support all these different rules and to allow for easier adding / changing contest rules in DXLog.net,  
all parameters in contest rules are defined and controlled through contest config files.<br>
+
all parameters for complying with the specific contest rules are defined and controlled through the specific contest config file.<br><br>
Contest config files are plain text files which are installed in '''Contest''' sub-folder in DXLog.net installation folder.<br>
+
Contest config files are plain text files which are located in the '''Contest''' sub-folder of the DXLog.net installation folder.<br>
  
When application is started, content of Contest folder is copied into ApplicationData folder in your Windows OS.<br>
+
When DXlog.net is started, the contents of Contest folder are copied into the ApplicationData folder in your Windows OS.<br>
During copying process, DXLog.net compares modify date of each file in installation folder with version in ApplicationData folder.<br>
+
During the copying process, DXLog.net compares modified date of each file in the installation folder with the version in the ApplicationData folder.<br>
If newer version already exists in ApplicationData folder, file wouldn't be copied there.<br>
+
If a newer version exists in the ApplicationData folder, the original file would not be copied over from the contest folder.<br>
  
User can change existing or create new files in Application folder, in case it is needed for some testing purposes, or if user
+
The end user can modify an existing file or may create a new file in the ApplicationData folder, so changes can be made to the contest definition file for testing, or the end user can create a new contest definition file to support a new or previously unsupported contest.<br>
wants to create new contest definition file to support some new contest.<br>
 
  
 
==File structure==
 
==File structure==
  
Each line in contest config file usually contains of KEY + VALUE pairs.<br>  
+
Each line in a contest definition file usually contains '''KEY + VALUE''' pairs.<br>
This pair is separated by "=" sign.<br>
+
The pair is always separated by the "=" sign. For example:
For example:<br>
+
CONTEST_NAME=9A CW
  CONTEST_NAME=9A CW <br>
+
This means the field KEY is '''CONTEST_NAME''', and '''9A CW''' is the field value.
  This means that field KEY is '''CONTEST-NAME''', and '''9A CW''' is value for that field.
 
  
 
==Regex expressions==
 
==Regex expressions==
  
You will see that in many cases DXLog.net is using regular expressions (regex) to verify if some condition is valid and possibly to process such entry on special ways. For example, it is used to check if user entry is valid against some condition, to determine how to calculate points for QSO etc.<br>
+
You will see that in many cases DXLog.net is using regular expressions (regex) to verify condition validation and possibly to process an entry in a special way. For example, regex is used to check if the user keyboard entry is valid against a condition or set of conditions, for QSO points calculations etc.<br>
  
Regex expression in config file can be defined as fixed value, but can also compare some QSO data against fixed values.<br>
+
Regex expressions in the config file can be defined as fixed values, but regex can also compare QSO data against fixed values.<br><br>
Case one is the case where we want to validate user entry in some of the fields.<br>
 
  For example, we want to validate that user is allowed to enter NY,FL,GA, or DX in EXCHANGE field at contest configuration screen.<br>
 
  Key field for this operation is CFG_MULT_RGX_CHECK.<br>
 
  And to create validation as in previous example we need following definition in contest config file:<br>
 
  CFG_MULT_RGX_CHECK=^NY$|^FL$|^GA$|^DX$<br>
 
  "^" sign in regex denotes start of the string value
 
  "$" sign in regex denotes end of string value
 
  "|" sign in regex is logical or operation
 
  
Case two is the case where we want to validate some value which is possibly changing on each entry in the log.<br>
+
* Case one: We want to validate the user entered data in some of the fields.<br>  For example, we want to validate that the user is allowed to enter NY, FL, GA, or DX in the EXCHANGE field on the contest configuration screen.<br>The regex key field for this operation is: <tt><b>CFG_MULT_RGX_CHECK</b></tt>. So to create a validation, as per the previous example, we need the following definition in the contest config file:<br>
For example, we want to calculate points for QSO with same country on band 160 mode CW and SSB with 1 point.
+
CFG_MULT_RGX_CHECK=^NY$|^FL$|^GA$|^DX$
Key field for points calculation is POINTS_FIELD_BAND_MODE.
+
: "^" in regex denotes start of the string value<br>
To achieve calculation from previous example, it should be defined like this:
+
: "$" in regex denotes end of string value<br>
  POINTS_FIELD_BAND_MODE=SOURCE->DXCC:DEST->DXCC;ALL;^160$;^CW$|^SSB$;1<br>
+
: "|" in regex is logical or operation<br>
We can read this definition on the following way:
+
* Case two: We want to validate a value which could change on each entry into the log.<br> For example, we want to calculate points for each QSO with the same country, on the 160m band, in the CW and SSB mode, with 1 point. The regex key field for qso points calculation is <tt><b>POINTS_FIELD_BAND_MODE</b></tt>.<br> So to create the calculation, as per the previous example, we need the following definition in the contest config file:<br>
If SOURCE (our) DXCC is same as DEST (correspondent) DXCC and band is 160 and mode is CW or SSB, qso is worth 1 point.
+
  POINTS_FIELD_BAND_MODE=SOURCE->DXCC:DEST->DXCC;ALL;^160$;^CW$|^SSB$;1
In above definition, we can notice, SOURCE and DEST keys. Also, we can use CONFIG key.
+
: We can read this definition in the following way: If the SOURCE (our) DXCC is the same as DEST (correspondent) DXCC and the band is 160 and the mode is CW or SSB then the qso is worth 1 point. In the above definition notice the '''SOURCE''' and '''DEST''' keys. We can also use the '''CONFIG''' key.
Such reference keys can be:
+
 
 +
* Keys Reference:
 
   SOURCE->CONT - our own continent
 
   SOURCE->CONT - our own continent
 
   SOURCE->DXCC - our own DXCC
 
   SOURCE->DXCC - our own DXCC
Line 54: Line 45:
 
   DEST->DXCC - correspondent DXCC
 
   DEST->DXCC - correspondent DXCC
 
   DEST->CALL - correspondent CALLSIGN
 
   DEST->CALL - correspondent CALLSIGN
   DEST->RCVD - value entered in received field in qso line
+
   DEST->RCVD - value entered in the received field of qso line
   DEST->RECINFO - value entered in recinfo field in qso line
+
   DEST->RECINFO - value entered in the recinfo field of qso line
   DEST->RECINFO2 - value entered in recinfo2 field in qso line
+
   DEST->RECINFO2 - value entered in the recinfo2 field of qso line
   DEST->RECINFO3 - value entered in recinfo3 field in qso line
+
   DEST->RECINFO3 - value entered in the recinfo3 field of qso line
   CONFIG->EXCHANGE - value from exchange field entered at contest configuration screen
+
   CONFIG->EXCHANGE - value from the exchange field entered in the contest configuration screen
   CONFIG->CQZONE - value from WAZ field entered at contest configuration screen
+
   CONFIG->CQZONE - value from the WAZ field entered in the contest configuration screen
   CONFIG->ITUZONE - value from ITU field entered at contest configuration screen
+
   CONFIG->ITUZONE - value from the ITU field entered in the contest configuration screen
   CONFIG->OPNAME - value from OPNAME field entered at contest configuration screen
+
   CONFIG->OPNAME - value from the OPNAME field entered in the contest configuration screen
   CONFIG->POWER - value from POWERfield entered at contest configuration screen
+
   CONFIG->POWER - value from the POWERfield entered in the contest configuration screen
  
More details about point calculation and POINTS_FIELD_BAND_MODE key can be found in different section of this document.<br>
+
More details about point calculation and the POINTS_FIELD_BAND_MODE key can be found in a later section of this document.<br>
  
 
==General contest description==
 
==General contest description==
  
These keys are used for general contest description in config file, such as contest name, link to the rules etc.<br><br>
+
These keys are used for general contest description in the contest config file, such as the contest name, link to the rules etc.<br>
 
 
* '''CONTESTGROUP'''
 
 
 
Used for group contest when displaying on config screen for contest selection.<br>
 
For example: Digital, 9A Local Contest etc.<br>
 
  
* '''CONTESTNAME'''
+
  '''CONTESTGROUP'''
 
+
  Used for group contest when displaying the config screen for contest selection.
Contest name as it will be shown and recognized in contest selection box.<br>
+
  For example: Digital, 9A Local Contest etc.<br>
Note: this can be same as cabrillo contest name, but usually it is full contest name.<br>
+
  '''CONTESTNAME'''
'''This field is mandatory and must be unique for all files in contest definition folder.'''
+
  The contest name as it will be shown and recognized in the contest selection box.
 
+
  Note: this can be same as the cabrillo contest name, but usually it is the full contest name.
* '''CONTESTRULES'''
+
  '''This field is mandatory and must be unique for all files in contest definition folder.'''<br>
 
+
  '''CONTESTRULES'''
Link to contest rules.<br>
+
  Link to contest rules.<br>
 
+
  '''CONTESTWEB'''
* '''CONTESTWEB'''
+
  Link to contest web.
 
 
Link to contest web.<br>
 
  
 
==Configuration screen control==
 
==Configuration screen control==
  
* '''CATEGORIES'''
+
  '''CATEGORIES'''
 
+
  List of available categories separated by ";" to build category selection list at contest configuration screen.<br>
List of available categories separated by ";" to build category selection list at contest configuration screen.<br>
+
  Default value:  
 
+
  Single operator;Single operator assisted;Multioperator, single transmitter;Multioperator, two transmitter;
Default value: Single operator;Single operator assisted;Multioperator, single transmitter;Multioperator, two transmitter;Multi operator, multi-transmitter<br>
+
  Multi operator, multi-transmitter<br><br>
 
+
  '''CATEGORY_MODES'''
* '''CATEGORY_MODES'''
+
  List of available modes separated by ";" to build mode selection list at contest configuration screen.<br>
 
+
  Default value: CW;SSB;MIXED <br><br>
List of available modes separated by ";" to build mode selection list at contest configuration screen.<br>
 
 
 
Default value: CW;SSB;MIXED <br>
 
 
 
* '''CLASS'''
 
 
 
List of available classes separated by ";" to build class selection list at contest configuration screen.<br>
 
 
 
Default value: High;Low;QRP <br>
 
 
 
* '''OVERLAY'''
 
 
 
List of available category overlays separated by ";" to build overlay selection list at contest configuration screen.<br>
 
 
 
Default value: ---;Band restricted;Radio club;Dxpedition;Headquarters;Open;Restricted;Novice;Classic;Rookie;Tribander/Single element;QRP;Fixed station;Portable station<br>
 
 
 
* '''CFG_MULT'''
 
 
 
Controls exchange field at contest configuration screen.<br>
 
Acceptable values are: YES/NO.<br>
 
 
 
If set to YES, exchange field will be enabled for entering data. Usually in exchange field user enters own multiplier, zone or some other info.<br>
 
 
 
Default value: NO<br>
 
 
 
* '''CFG_MULT_DX_ALLOWED'''
 
 
 
Is "DX" acceptable entry in exchange field at contest configuration screen.<br>
 
For example in ARRL DX Contest, all USA/VE stations needs to enter their state/province, while all other stations enters DX here.<br>
 
 
 
Acceptable values are: YES/NO <br>
 
Default value: NO<br>
 
 
 
* '''CFG_MULT_MANDATORY'''
 
 
 
Is exchange field mandatory (needs to be filled) or can be blank.<br>
 
 
 
Acceptable values are: YES/NO<br>
 
Default value: NO<br>
 
 
 
* '''CFG_MULT_ERRORTEXT'''
 
 
 
Defines error text which will be shown in case that user enters wrong data in exchange field at contest configuration screen.<br>
 
For example, in ARRL DX Contest, user enters state abbreviation which isn't on predefined list.<br>
 
 
 
* '''CFG_MULT_FROM'''
 
 
 
Defines where we can check if user entry in exchange field is valid. Can have value like CUSTOM_MULT_LIST or ITUZONE.<br>
 
Can be blank if we are using regex expression to check the value or we can accept any entry.<br>
 
 
 
* '''CFG_MULT_RGX_CHECK'''
 
 
 
Regex expression which will be used to verify if data entered in exchange field at contest configuration screen is valid.<br>
 
Please note that regex expression can contains special tag CUSTOM_MULT_LIST too. This means that any entry specified in
 
custom multiplier list will be valid entry.<br>
 
 
 
* '''CFG_CQZONE_ERRORTEXT'''
 
 
 
Defines error text which will be shown in case that user enters wrong data in WAZ field at contest configuration screen.<br>
 
 
 
* '''CFG_CQZONE_MANDATORY'''
 
 
 
Is WAZ field mandatory (needs to be filled) or can be blank.<br>
 
 
 
Acceptable values are: YES/NO<br>
 
Default value: NO<br>
 
 
 
* '''CFG_GRID_ERRORTEXT'''
 
 
 
Defines error text which will be shown in case that user enters wrong data in GRIDSQUARE field at contest configuration screen.<br>
 
 
 
* '''CFG_GRID_MANDATORY'''
 
 
 
Is GRIDSQUARE field mandatory (needs to be filled) or can be blank.<br>
 
 
 
Acceptable values are: YES/NO<br>
 
Default value: NO<br>
 
 
 
* '''CFG_GRID_RGX_CHECK'''
 
 
 
Regex expression which will be used to verify if data entered in GRIDSQUARE field at contest configuration screen is valid.<br>
 
 
 
* '''CFG_ITUZONE_ERRORTEXT'''
 
 
 
Defines error text which will be shown in case that user enters wrong data in ITU field at contest configuration screen.<br>
 
 
 
* '''CFG_ITUZONE_MANDATORY'''
 
 
 
Is ITU field mandatory (needs to be filled) or can be blank.<br>
 
 
 
Acceptable values are: YES/NO<br>
 
Default value: NO<br>
 
  
* '''CFG_MYDXCC_ERRORTEXT'''
+
  '''CLASS'''
 +
  List of available classes separated by ";" to build class selection list at contest configuration screen.<br>
 +
  Default value: High;Low;QRP <br><br>
  
Defines error text which will be shown in case that user enters wrong data in DXCC field at contest configuration screen.<br>
+
  '''OVERLAY'''
 +
  List of available category overlays separated by ";" to build overlay selection list at contest configuration screen.<br>
 +
  Default value: ---;Band restricted;Radio club;Dxpedition;Headquarters;Open;Restricted;Novice;Classic;Rookie;
 +
  Tribander/Single element;QRP;Fixed station;Portable station<br><br>
  
* '''CFG_MYDXCC_MANDATORY'''
+
  '''CFG_MULT'''
 +
  Controls exchange field at contest configuration screen.
 +
  Acceptable values are: YES/NO.
 +
  If set to YES, exchange field will be enabled for entering data. Usually in exchange field user enters own multiplier,
 +
  zone or some other info.
 +
  Default value: NO<br><br>
  
Is DXCC field mandatory (needs to be filled) or can be blank.<br>
+
  '''CFG_MULT_DX_ALLOWED'''
 +
  Is "DX" acceptable entry in exchange field at contest configuration screen.
 +
  For example in ARRL DX Contest, all USA/VE stations needs to enter their state/province, while all other stations enters DX here.<br><br>
 +
  Acceptable values are: YES/NO <br>
 +
  Default value: NO<br>
  
Acceptable values are: YES/NO<br>
+
  '''CFG_MULT_MANDATORY'''
Default value: NO<br>
+
  Is exchange field mandatory (needs to be filled) or can be blank.<br><br>
 +
  Acceptable values are: YES/NO<br>
 +
  Default value: NO<br>
  
* '''CFG_OPNAME_ERRORTEXT'''
+
  '''CFG_MULT_ERRORTEXT'''
 +
  Defines error text which will be shown in case that user enters wrong data in exchange field at contest configuration screen.
 +
  For example, in ARRL DX Contest, user enters state abbreviation which isn't on predefined list.<br>
  
Defines error text which will be shown in case that user enters wrong data in OPNAME field at contest configuration screen.<br>
+
  '''CFG_MULT_FROM'''
 +
  Defines where we can check if user entry in exchange field is valid. Can have value like CUSTOM_MULT_LIST or ITUZONE.<br>
 +
  Can be blank if we are using regex expression to check the value or we can accept any entry.<br>
  
* '''CFG_OPNAME_MANDATORY'''
+
  '''CFG_MULT_RGX_CHECK'''
 +
  Regex expression which will be used to verify if data entered in exchange field at contest configuration screen is valid.<br>
 +
  Please note that regex expression can contains special tag CUSTOM_MULT_LIST too. This means that any entry specified in
 +
  custom multiplier list will be valid entry.<br>
  
Is OPNAME field mandatory (needs to be filled) or can be blank.<br>
+
  '''CFG_CQZONE_ERRORTEXT'''
 +
  Defines error text which will be shown in case that user enters wrong data in WAZ field at contest configuration screen.<br>
  
Acceptable values are: YES/NO<br>
+
  '''CFG_CQZONE_MANDATORY'''
Default value: NO<br>
+
  Is WAZ field mandatory (needs to be filled) or can be blank.<br><br>
 +
  Acceptable values are: YES/NO
 +
  Default value: NO<br>
  
* '''CFG_POWER_ERRORTEXT'''
+
  '''CFG_GRID_ERRORTEXT'''
 +
  Defines error text which will be shown in case that user enters wrong data in GRIDSQUARE field at contest configuration screen.<br>
  
Defines error text which will be shown in case that user enters wrong data in POWER field at contest configuration screen.<br>
+
  '''CFG_GRID_MANDATORY'''
 +
  Is GRIDSQUARE field mandatory (needs to be filled) or can be blank.<br><br>
 +
  Acceptable values are: YES/NO
 +
  Default value: NO<br>
  
* '''CFG_POWER_MANDATORY'''
+
  '''CFG_GRID_RGX_CHECK'''
 +
  Regex expression which will be used to verify if data entered in GRIDSQUARE field at contest configuration screen is valid.<br>
  
Is POWER field mandatory (needs to be filled) or can be blank.<br>
+
  '''CFG_ITUZONE_ERRORTEXT'''
 +
  Defines error text which will be shown in case that user enters wrong data in ITU field at contest configuration screen.<br>
  
Acceptable values are: YES/NO<br>
+
  '''CFG_ITUZONE_MANDATORY'''
Default value: NO<br>
+
  Is ITU field mandatory (needs to be filled) or can be blank.<br><br>
 +
  Acceptable values are: YES/NO
 +
  Default value: NO<br>
  
* '''CFG_POWER_RGX_CHECK'''
+
  '''CFG_MYDXCC_ERRORTEXT'''
 +
  Defines error text which will be shown in case that user enters wrong data in DXCC field at contest configuration screen.<br>
  
Regex expression which will be used to verify if data entered in POWER field at contest configuration screen is valid.<br>
+
  '''CFG_MYDXCC_MANDATORY'''
 +
  Is DXCC field mandatory (needs to be filled) or can be blank.<br><br>
 +
  Acceptable values are: YES/NO
 +
  Default value: NO<br>
  
* '''CFG_STATE_ERRORTEXT'''
+
  '''CFG_OPNAME_ERRORTEXT'''
 +
  Defines error text which will be shown in case that user enters wrong data in OPNAME field at contest configuration screen.<br>
  
Defines error text which will be shown in case that user enters wrong data in STATE/PROVINCE/OTHER field at contest configuration screen.<br>
+
  '''CFG_OPNAME_MANDATORY'''
 +
  Is OPNAME field mandatory (needs to be filled) or can be blank.<br><br>
 +
  Acceptable values are: YES/NO
 +
  Default value: NO<br>
  
* '''CFG_STATE_FROM'''
+
  '''CFG_POWER_ERRORTEXT'''
 +
  Defines error text which will be shown in case that user enters wrong data in POWER field at contest configuration screen.<br>
  
Defines where we can check if user entry in STATE/PROVINCE/OTHER field is valid. Can have value like CUSTOM_MULT_LIST or ITUZONE.<br>
+
  '''CFG_POWER_MANDATORY'''
Can be blank if we are using regex expression to check the value or we can accept any entry.<br>
+
  Is POWER field mandatory (needs to be filled) or can be blank.<br><br>
 +
  Acceptable values are: YES/NO
 +
  Default value: NO<br>
  
* '''CFG_STATE_MANDATORY'''
+
  '''CFG_POWER_RGX_CHECK'''
 +
  Regex expression which will be used to verify if data entered in POWER field at contest configuration screen is valid.<br>
  
Is STATE/PROVINCE/OTHER field mandatory (needs to be filled) or can be blank.<br>
+
  '''CFG_STATE_ERRORTEXT'''
 +
  Defines error text which will be shown in case that user enters wrong data in STATE/PROVINCE/OTHER field  
 +
  at contest configuration screen.<br>
  
Acceptable values are: YES/NO<br>
+
  '''CFG_STATE_FROM'''
Default value: NO<br>
+
  Defines where we can check if user entry in STATE/PROVINCE/OTHER field is valid. Can have value like CUSTOM_MULT_LIST or ITUZONE.
 +
  Can be blank if we are using regex expression to check the value or we can accept any entry.<br>
  
* '''CFG_STATE_RGX_CHECK'''
+
  '''CFG_STATE_MANDATORY'''
 +
  Is STATE/PROVINCE/OTHER field mandatory (needs to be filled) or can be blank.<br><br>
 +
  Acceptable values are: YES/NO
 +
  Default value: NO<br>
  
Regex expression which will be used to verify if data entered in STATE/PROVINCE/OTHER field at contest configuration screen is valid.<br>
+
  '''CFG_STATE_RGX_CHECK'''
Please note that regex expression can contains special tag CUSTOM_MULT_LIST too. This means that any entry specified in
+
  Regex expression which will be used to verify if data entered in STATE/PROVINCE/OTHER field at contest configuration screen is valid.
custom multiplier list will be valid entry.<br>
+
  Please note that regex expression can contains special tag CUSTOM_MULT_LIST too.  
 +
  This means that any entry specified in custom multiplier list will be valid entry.<br>
  
 
==Cabrillo==
 
==Cabrillo==
  
* '''CABRILLO_ASSISTED'''
+
  '''CABRILLO_ASSISTED'''
 
+
  '''CABRILLO_BAND'''
* '''CABRILLO_BAND'''
+
  '''CABRILLO_CONTEST_NAME'''
 
+
  '''CABRILLO_DEF_RECINFO'''
* '''CABRILLO_CONTEST_NAME'''
+
  '''CABRILLO_DEF_RECINFO2'''
 
+
  '''CABRILLO_DEF_RECINFO3'''
* '''CABRILLO_DEF_RECINFO'''
+
  '''CABRILLO_DXPEDITION'''
 
 
* '''CABRILLO_DEF_RECINFO2'''
 
 
 
* '''CABRILLO_DEF_RECINFO3'''
 
 
 
* '''CABRILLO_DXPEDITION'''
 
 
 
* '''CABRILLO_LINE'''
 
 
 
* '''CABRILLO_LOCATION_CHECK'''
 
 
 
* '''CABRILLO_LOCATION_DEFAULT'''
 
 
 
* '''CABRILLO_LOCATION_PROMPT'''
 
 
 
* '''CABRILLO_MODES'''
 
 
 
* '''CABRILLO_OPERATOR'''
 
 
 
* '''CABRILLO_OVERLAY'''
 
 
 
* '''CABRILLO_OVERLAY_DISABLED'''
 
 
 
* '''CABRILLO_POWER'''
 
  
* '''CABRILLO_QTC_LINE'''
+
  '''CABRILLO_LINE'''<br>
* '''CABRILLO_TIME'''
+
  USE: CABRILLO_LINE=FREQ{F=R,6, };MODE{F=L,2, };DATE;TIME;MYCALL{F=L,13, };SENT{F=L,3, };NR{F=R,3,0,4}<br>
* '''CABRILLO_TRANSMITTER'''
+
  Data is taken from the field name and entered into the Cabrillo file in the order entered,
 +
EG FREQ will enter Frequency of QSO, MODE will enter Mode etc<br>
 +
  Formatting information is contained within the {}
 +
  F= is the formatting call and should be followed by the following parameters:
 +
  Alignment: L(eft), R(ight)
 +
  Total size for alignment: How many characters is used for formatting, padding, alignment.
 +
  Padding character: Which character will be used for filling empty spaces
 +
  And last one is optional: Total size of the field in Cabrillo field.<br>
 +
  EG: RCVD2{F=R,3,0,4}
 +
  RCVD2 field value will be aligned Right, on length of 3 characters. For padding, we using "0" characters.
 +
  End total size will be 4 characters (so we will add one more space if needed to have size of 4 chars).
 +
  This means that if RCVD2 field value is "1", it will be formatted as " 001" and this value will be written in Cabrillo QSO line.
  
 +
  '''CABRILLO_LOCATION_CHECK'''
 +
  '''CABRILLO_LOCATION_DEFAULT'''
 +
  '''CABRILLO_LOCATION_PROMPT'''
 +
  '''CABRILLO_MODES'''
 +
  '''CABRILLO_OPERATOR'''
 +
  '''CABRILLO_OVERLAY'''
 +
  '''CABRILLO_OVERLAY_DISABLED'''
 +
  '''CABRILLO_POWER'''
 +
  '''CABRILLO_QTC_LINE'''
 +
  '''CABRILLO_TIME'''
 +
  '''CABRILLO_TRANSMITTER'''
  
 
==Band and mode specific==
 
==Band and mode specific==
  
* '''BANDS'''
+
  '''BANDS'''
 +
  Contains list of available bands separated by ";" for specific contest.<br>
 +
  Default value: 160;80;40;20;15;10
  
Contains list of available bands separated by ";" for specific contest.<br>
+
  '''MODES'''
 +
  Contains list of available modes separated by ";" for specific contest.<br>
 +
  Default value: CW;SSB
  
Default value: 160;80;40;20;15;10
+
  '''EDI_BANDS'''
 
+
  Contains list of EDI values for bands specified in BANDS key.
* '''MODES'''
+
  Must contain same number of entries as BANDS key.
 
+
  This is used for generating EDI log files for VHF/UHF/SHF contests in IARU Region I.
Contains list of available modes separated by ";" for specific contest.<br>
 
 
 
Default value: CW;SSB
 
 
 
* '''EDI_BANDS'''
 
 
 
Contains list of EDI values for bands specified in BANDS key.<br>
 
Must contain same number of entries as BANDS key.<br>
 
This is used for generating EDI log files for VHF/UHF/SHF contests in IARU Region I.<br>
 
  
 
==Entry field definitions==
 
==Entry field definitions==
  
These keys are used to control layout of QSO entry screen. Allows to define visibility, length, labels, checking procedures etc. for each of the field which user can enter or display for any QSO.<br>
+
These keys are used to control the layout of QSO entry screen. The keys set the visibility, length, labels, checking procedures etc. for each of the fields which the user can enter data or display for any QSO.<br>
 
 
* '''FIELD_AZ_VISIBLE'''
 
 
 
Controls visibility of Azimuth field. Mostly used on VHF/UHF/SHF to get Azimuth from gridsquare.<br>
 
 
 
Acceptable values: YES/NO<br>
 
Default value: NO<br>
 
 
 
* '''FIELD_CALLSIGN_WWL_CHECK'''
 
 
 
If YES, entry in callsign field will be checked if it can be possible gridsquare entry.<br>
 
It it is gridsquare, then callsign field value will be copied to gridsquare entry field and Azimuth will be calculated and shown.<br>
 
 
 
Acceptable values: YES/NO<br>
 
Default value: NO<br>
 
 
 
* '''FIELD_MODE_VISIBLE'''
 
 
 
Is mode field visible on qso entry line.<br>
 
 
 
Acceptable values: YES/NO<br>
 
Default value: NO<br>
 
 
 
* '''FIELD_MODE_NAME'''
 
 
 
Header name for field mode.<br>
 
 
 
* '''FIELD_MULT_VISIBLE'''
 
 
 
Is field MULT visible on the screen.<br>
 
 
 
Acceptable values: YES/NO<br>
 
 
 
* '''FIELD_NR_VISIBLE'''
 
 
 
If field SENT QSO SERIAL NUMBER visible on qso entry line.<br>
 
 
 
Acceptable values: YES/NO<br>
 
 
 
* '''FIELD_NR_HIDDEN_DXCC'''
 
 
 
List of DXCC separated by ";". If our own DXCC is on this list, SENT QSO SERIAL NUMBER will be hidden.<br>
 
Usable for contests where some stations are sending serial number and other stations are sending some other date (for example some local province).<br>
 
 
 
* '''FIELD_NR_HIDDEN_RGX'''
 
 
 
Regex expression. If condition is valid, SENT QSO SERIAL NUMBER will be hidden.<br>
 
Usable for contests where some stations are sending serial number and other stations are sending some other date (for example some local province).<br>
 
 
 
* '''FIELD_PERIOD_VISIBLE'''
 
 
 
Is field PERIOD number visible in qso entry line.<br>
 
 
 
Acceptable values: YES/NO<br>
 
 
 
* '''FIELD_PERIOD_NAME'''
 
 
 
Header name for field NAME.<br>
 
 
 
* '''FIELD_PTS_VISIBLE'''
 
 
 
Is field POINTS visible in qso entry line.<br>
 
 
 
Acceptable values: YES/NO<br>
 
 
 
* '''FIELD_PTS_NAME'''
 
  
Header name for field POINTS.
+
  '''FIELD_AZ_VISIBLE'''
 +
  Controls the visibility of the Azimuth field. Mostly used on VHF/UHF/SHF to get the Azimuth angle from a gridsquare.<br>
 +
  Acceptable values: YES/NO
 +
  Default value: NO<br>
  
* '''FIELD_RCVD_CHECK_FORMAT_FX'''
+
  '''FIELD_CALLSIGN_WWL_CHECK'''
 +
  If YES, entry in the log callsign field will be checked for a gridsquare entry.
 +
  If a gridsquare is found, then the callsign field value will be copied to the gridsquare entry field and the Azimuth angle will be
 +
  calculated and shown.<br>
 +
  Acceptable values: YES/NO
 +
  Default value: NO<br>
  
C# expression to reformat RCVD field value before any further checking.<br>
+
  '''FIELD_MODE_VISIBLE'''
 +
  Mode field visable on the qso entry line.<br>
 +
  Acceptable values: YES/NO<br>
 +
  Default value: NO<br>
  
* '''FIELD_RCVD_COPY'''
+
  '''FIELD_MODE_NAME'''
 +
  Header name for field mode.<br>
  
Is field RCVD automatically copied from previous qso with same station.<br>
+
  '''FIELD_MULT_VISIBLE'''
 +
  MULT field visable on the screen.<br>
 +
  Acceptable values: YES/NO<br>
  
Acceptable values: YES/NO<br>
+
  '''FIELD_NR_VISIBLE'''
 +
  SENT QSO SERIAL NUMBER visible on the qso entry line.<br>
 +
  Acceptable values: YES/NO<br>
  
* '''FIELD_RCVD_COPY_EXC_DXCC'''
+
  '''FIELD_NR_HIDDEN_DXCC'''
 +
  List of DXCC separated by ";". If our own DXCC is on this list, SENT QSO SERIAL NUMBER will be hidden.
 +
  Usable for contests where some stations are sending a serial number exchange and other stations are sending other data
 +
  (for example a local province).
  
List of DXCC countries separated by ";" which are exception for copy value.<br>
+
  '''FIELD_NR_HIDDEN_RGX'''
Usable in case when we want to copy value from previous QSO for some station.<br>
+
  Regex expression. If the condition is valid, SENT QSO SERIAL NUMBER will be hidden.
 +
  Usable for contests where some stations are sending a serial number exchange and other stations are sending other date
 +
  (for example a local province).<br>
  
* '''FIELD_RCVD_COPY_EXC_RGX'''
+
  '''FIELD_PERIOD_VISIBLE'''
 +
  Is field PERIOD number visible on qso entry line.<br>
 +
  Acceptable values: YES/NO<br>
  
Regex expression. If condition is true, we have a value copy exception for the QSO.<br>
+
  '''FIELD_PERIOD_NAME'''
 +
  Header name for field NAME.<br>
  
* '''FIELD_RCVD_COPY_FX'''
+
  '''FIELD_PTS_VISIBLE'''
 +
  Is field POINTS visible in qso entry line.<br>
 +
  Acceptable values: YES/NO<br>
  
C# expression used to copy value from previous qso.<br>
+
  '''FIELD_PTS_NAME'''
 +
  Header name for field POINTS.
  
* '''FIELD_RCVD_DEFAULT_VALUE'''
+
  '''FIELD_RCVD_CHECK_FORMAT_FX'''
 +
  C# expression to reformat RCVD field value before any further checking.<br>
  
If RCVD field is empty, this is default value to be filled in cabrillo output.<br>
+
  '''FIELD_RCVD_COPY'''
 +
  Is field RCVD automatically copied from previous qso with same station.<br>
 +
  Acceptable values: YES/NO<br>
  
* '''FIELD_RCVD_EXC_CHECK_DXCC'''
+
  '''FIELD_RCVD_COPY_EXC_DXCC'''
 +
  List of DXCC countries separated by ";" which are exception for copy value.<br>
 +
  Usable in case when we want to copy value from previous QSO for some station.<br>
  
List of DXCC countries separated by ";" which are exception for value checking procedure.<br>
+
  '''FIELD_RCVD_COPY_EXC_RGX'''
 +
  Regex expression. If condition is true, we have a value copy exception for the QSO.<br>
  
* '''FIELD_RCVD_FORMAT_FX'''
+
  '''FIELD_RCVD_COPY_FX'''
 +
  C# expression used to copy value from previous qso.<br>
  
C# expression used to format entered value before save.<br>
+
  '''FIELD_RCVD_DEFAULT_VALUE'''
 +
  If RCVD field is empty, this is default value to be filled in cabrillo output.<br>
  
* '''FIELD_RCVD_FX_CHECK'''
+
  '''FIELD_RCVD_EXC_CHECK_DXCC'''
 +
  List of DXCC countries separated by ";" which are exception for value checking procedure.<br>
  
C# expression used to check is value entered in RCVD field is valid.<br>
+
  '''FIELD_RCVD_FORMAT_FX'''
 +
  C# expression used to format entered value before save.<br>
  
* '''FIELD_RCVD_MANDATORY'''
+
  '''FIELD_RCVD_FX_CHECK'''
 +
  C# expression used to check is value entered in RCVD field is valid.<br>
  
Is RCVD field entry is mandatory. <br>
+
  '''FIELD_RCVD_MANDATORY'''
 +
  Is RCVD field entry is mandatory. <br>
 +
  Acceptable values: YES/NO<br>
  
Acceptable values: YES/NO<br>
+
  '''FIELD_RCVD_MANDATORY_RGX_EXC'''
 +
  Regex expression. If condition is true, we have exception from mandatory rule.<br>
  
* '''FIELD_RCVD_MANDATORY_RGX_EXC'''
+
  '''FIELD_RCVD_MAX_LENGTH'''
 +
  Maximum number of characters accepted in RCVD field.<br>
  
Regex expression. If condition is true, we have exception from mandatory rule.<br>
+
  '''FIELD_RCVD_MIN_LENGTH'''
 +
  Minimum number of characters accepted in RCVD field.<br>
  
* '''FIELD_RCVD_MAX_LENGTH'''
+
  '''FIELD_RCVD_NUMERIC'''
 +
  Controls if RCVD field accepts only numeric characters.<br>
 +
  Acceptable values: YES/NO<br>
  
Maximum number of characters accepted in RCVD field.<br>
+
  '''FIELD_RCVD_RGX_CHECK'''
 +
  Regex expression. Used to check if entry in RCVD field is valid.<br>
  
* '''FIELD_RCVD_MIN_LENGTH'''
+
  '''FIELD_RCVD_TYPE'''
 +
  Define type of RCVD field for possible calculations and check routines.<br>
 +
  For example: MULT, NR, CONT etc.
  
Minimum number of characters accepted in RCVD field.<br>
+
  '''FIELD_RCVD_WWL_CHECK'''
 +
  If YES, entry in RCVD field will be checked if it can be possible gridsquare entry.
 +
  It it is gridsquare, then RCVD field value will be copied to gridsquare entry field and Azimuth will be calculated and shown.<br>
 +
  Acceptable values: YES/NO
 +
  Default value: NO<br>
  
* '''FIELD_RCVD_NUMERIC'''
+
  '''FIELD_RECINFO_CHECK_FORMAT_FX'''
 +
  '''FIELD_RECINFO_COPY'''
 +
  '''FIELD_RECINFO_COPY_RGX_EXC'''
 +
  '''FIELD_RECINFO_FORMAT_FX'''
 +
  '''FIELD_RECINFO_FX_CHECK'''
 +
  '''FIELD_RECINFO_MANDATORY'''
 +
  '''FIELD_RECINFO_MANDATORY_RGX_EXC'''
 +
  '''FIELD_RECINFO_MAX_LENGTH'''
 +
  '''FIELD_RECINFO_MIN_LENGTH'''
 +
  '''FIELD_RECINFO_NAME'''
 +
  '''FIELD_RECINFO_NUMERIC'''
 +
  '''FIELD_RECINFO_RGX_CHECK'''
 +
  '''FIELD_RECINFO_RGX_SEL_POS'''
 +
  '''FIELD_RECINFO_TYPE'''
 +
  '''FIELD_RECINFO_VISIBLE'''
 +
  '''FIELD_RECINFO2_CHECK_FORMAT_FX'''
 +
  '''FIELD_RECINFO2_COPY'''
 +
  '''FIELD_RECINFO2_COPY_RGX_EXC'''
 +
  '''FIELD_RECINFO2_FORMAT_FX'''
 +
  '''FIELD_RECINFO2_FX_CHECK'''
 +
  '''FIELD_RECINFO2_MANDATORY'''
 +
  '''FIELD_RECINFO2_MANDATORY_RGX_EXC'''
 +
  '''FIELD_RECINFO2_MAX_LENGTH'''
 +
  '''FIELD_RECINFO2_MIN_LENGTH'''
 +
  '''FIELD_RECINFO2_NAME'''
 +
  '''FIELD_RECINFO2_NUMERIC'''
 +
  '''FIELD_RECINFO2_RGX_CHECK'''
 +
  '''FIELD_RECINFO2_RGX_SEL_POS'''
 +
  '''FIELD_RECINFO2_TYPE'''
 +
  '''FIELD_RECINFO2_VISIBLE'''
 +
  '''FIELD_RECINFO3_CHECK_FORMAT_FX'''
 +
  '''FIELD_RECINFO3_COPY'''
 +
  '''FIELD_RECINFO3_COPY_RGX_EXC'''
 +
  '''FIELD_RECINFO3_FORMAT_FX'''
 +
  '''FIELD_RECINFO3_FX_CHECK'''
 +
  '''FIELD_RECINFO3_MANDATORY'''
 +
  '''FIELD_RECINFO3_MANDATORY_RGX_EXC'''
 +
  '''FIELD_RECINFO3_MAX_LENGTH'''
 +
  '''FIELD_RECINFO3_MIN_LENGTH'''
 +
  '''FIELD_RECINFO3_NAME'''
 +
  '''FIELD_RECINFO3_NUMERIC'''
 +
  '''FIELD_RECINFO3_RGX_CHECK'''
 +
  '''FIELD_RECINFO3_RGX_SEL_POS'''
 +
  '''FIELD_RECINFO3_TYPE'''
 +
  '''FIELD_RECINFO3_VISIBLE'''
 +
  '''FIELD_RST_3RD_LETTER'''
 +
  '''FIELD_SENT_VISIBLE'''
 +
  '''FIELD_STN_VISIBLE'''
  
Controls if RCVD field accepts only numeric characters.<br>
+
==Special Configuration Entries==
  
Acceptable values: YES/NO<br>
+
'''DXC_COMMENT_EXTRACT'''
  
* '''FIELD_RCVD_RGX_CHECK'''
+
This entry is used to extract exchange or multiplier information from DXCluster comments. For example, the line:
  
Regex expression. Used to check if entry in RCVD field is valid.<br>
+
DXC_COMMENT_EXTRACT=RECINFO;(AF|AN|AS|EU|NA|OC|SA)[ /\-\.]?\d{1,3};[ /\-\.]
  
* '''FIELD_RCVD_TYPE'''
+
will extract a typical IOTA designation such as AF-025 and insert it into the RECINFO exchange field. The first part of the configuration (before the ;) defines into which entry field the data should be placed. The second part of the configuration is a Regex expression that defines the data that is to be matched. Refer to any Regex definition text to determine the proper expression for the data to be extracted.
  
Define type of RCVD field for possible calculations and check routines.<br>
 
For example: MULT, NR, CONT etc.
 
  
* '''FIELD_RCVD_WWL_CHECK'''
+
'''DXCC_DB_TYPE=CUSTOM_CTY'''
  
If YES, entry in RCVD field will be checked if it can be possible gridsquare entry.<br>
+
This entry allows the use of a custom country file (for example, R150S.dat). If a custom country file is defined, the selection in Option->Data files->Country files will be ignored and the country file defined in the config file will be used.
It it is gridsquare, then RCVD field value will be copied to gridsquare entry field and Azimuth will be calculated and shown.<br>
 
  
Acceptable values: YES/NO<br>
+
'''DXCC_DB_FILENAME=<filename.dat>'''
Default value: NO<br>
 
  
* '''FIELD_RECINFO_CHECK_FORMAT_FX'''
+
This entry is used in conjunction with the DXCC_DB_TYPE entry to define the actual data file name. The file format is the same as the normal CTY.DAT file.
* '''FIELD_RECINFO_COPY'''
 
* '''FIELD_RECINFO_COPY_RGX_EXC'''
 
* '''FIELD_RECINFO_FORMAT_FX'''
 
* '''FIELD_RECINFO_FX_CHECK'''
 
* '''FIELD_RECINFO_MANDATORY'''
 
* '''FIELD_RECINFO_MANDATORY_RGX_EXC'''
 
* '''FIELD_RECINFO_MAX_LENGTH'''
 
* '''FIELD_RECINFO_MIN_LENGTH'''
 
* '''FIELD_RECINFO_NAME'''
 
* '''FIELD_RECINFO_NUMERIC'''
 
* '''FIELD_RECINFO_RGX_CHECK'''
 
* '''FIELD_RECINFO_RGX_SEL_POS'''
 
* '''FIELD_RECINFO_TYPE'''
 
* '''FIELD_RECINFO_VISIBLE'''
 
* '''FIELD_RECINFO2_CHECK_FORMAT_FX'''
 
* '''FIELD_RECINFO2_COPY'''
 
* '''FIELD_RECINFO2_COPY_RGX_EXC'''
 
* '''FIELD_RECINFO2_FORMAT_FX'''
 
* '''FIELD_RECINFO2_FX_CHECK'''
 
* '''FIELD_RECINFO2_MANDATORY'''
 
* '''FIELD_RECINFO2_MANDATORY_RGX_EXC'''
 
* '''FIELD_RECINFO2_MAX_LENGTH'''
 
* '''FIELD_RECINFO2_MIN_LENGTH'''
 
* '''FIELD_RECINFO2_NAME'''
 
* '''FIELD_RECINFO2_NUMERIC'''
 
* '''FIELD_RECINFO2_RGX_CHECK'''
 
* '''FIELD_RECINFO2_RGX_SEL_POS'''
 
* '''FIELD_RECINFO2_TYPE'''
 
* '''FIELD_RECINFO2_VISIBLE'''
 
* '''FIELD_RECINFO3_CHECK_FORMAT_FX'''
 
* '''FIELD_RECINFO3_COPY'''
 
* '''FIELD_RECINFO3_COPY_RGX_EXC'''
 
* '''FIELD_RECINFO3_FORMAT_FX'''
 
* '''FIELD_RECINFO3_FX_CHECK'''
 
* '''FIELD_RECINFO3_MANDATORY'''
 
* '''FIELD_RECINFO3_MANDATORY_RGX_EXC'''
 
* '''FIELD_RECINFO3_MAX_LENGTH'''
 
* '''FIELD_RECINFO3_MIN_LENGTH'''
 
* '''FIELD_RECINFO3_NAME'''
 
* '''FIELD_RECINFO3_NUMERIC'''
 
* '''FIELD_RECINFO3_RGX_CHECK'''
 
* '''FIELD_RECINFO3_RGX_SEL_POS'''
 
* '''FIELD_RECINFO3_TYPE'''
 
* '''FIELD_RECINFO3_VISIBLE'''
 
* '''FIELD_RST_3RD_LETTER'''
 
* '''FIELD_SENT_VISIBLE'''
 
* '''FIELD_STN_VISIBLE'''
 

Revision as of 11:27, 31 August 2016

Description

Rules for most contests are different and are usually written by the group adjudicating the contest.
The differences can be points per QSO, multiplier determination and calculations etc.

To support all these different rules and to allow for easier adding / changing contest rules in DXLog.net, all parameters for complying with the specific contest rules are defined and controlled through the specific contest config file.

Contest config files are plain text files which are located in the Contest sub-folder of the DXLog.net installation folder.

When DXlog.net is started, the contents of Contest folder are copied into the ApplicationData folder in your Windows OS.
During the copying process, DXLog.net compares modified date of each file in the installation folder with the version in the ApplicationData folder.
If a newer version exists in the ApplicationData folder, the original file would not be copied over from the contest folder.

The end user can modify an existing file or may create a new file in the ApplicationData folder, so changes can be made to the contest definition file for testing, or the end user can create a new contest definition file to support a new or previously unsupported contest.

File structure

Each line in a contest definition file usually contains KEY + VALUE pairs.
The pair is always separated by the "=" sign. For example:

CONTEST_NAME=9A CW

This means the field KEY is CONTEST_NAME, and 9A CW is the field value.

Regex expressions

You will see that in many cases DXLog.net is using regular expressions (regex) to verify condition validation and possibly to process an entry in a special way. For example, regex is used to check if the user keyboard entry is valid against a condition or set of conditions, for QSO points calculations etc.

Regex expressions in the config file can be defined as fixed values, but regex can also compare QSO data against fixed values.

  • Case one: We want to validate the user entered data in some of the fields.
    For example, we want to validate that the user is allowed to enter NY, FL, GA, or DX in the EXCHANGE field on the contest configuration screen.
    The regex key field for this operation is: CFG_MULT_RGX_CHECK. So to create a validation, as per the previous example, we need the following definition in the contest config file:
CFG_MULT_RGX_CHECK=^NY$|^FL$|^GA$|^DX$
"^" in regex denotes start of the string value
"$" in regex denotes end of string value
"|" in regex is logical or operation
  • Case two: We want to validate a value which could change on each entry into the log.
    For example, we want to calculate points for each QSO with the same country, on the 160m band, in the CW and SSB mode, with 1 point. The regex key field for qso points calculation is POINTS_FIELD_BAND_MODE.
    So to create the calculation, as per the previous example, we need the following definition in the contest config file:
POINTS_FIELD_BAND_MODE=SOURCE->DXCC:DEST->DXCC;ALL;^160$;^CW$|^SSB$;1
We can read this definition in the following way: If the SOURCE (our) DXCC is the same as DEST (correspondent) DXCC and the band is 160 and the mode is CW or SSB then the qso is worth 1 point. In the above definition notice the SOURCE and DEST keys. We can also use the CONFIG key.
  • Keys Reference:
  SOURCE->CONT - our own continent
  SOURCE->DXCC - our own DXCC
  SOURCE->CALL - our own CALLSIGN
  SOURCE->PFX  - our own prefix 
  SOURCE->WPX  - our own prefix
  DEST->CONT - correspondent continent
  DEST->DXCC - correspondent DXCC
  DEST->CALL - correspondent CALLSIGN
  DEST->RCVD - value entered in the received field of qso line
  DEST->RECINFO - value entered in the recinfo field of qso line
  DEST->RECINFO2 - value entered in the recinfo2 field of qso line
  DEST->RECINFO3 - value entered in the recinfo3 field of qso line
  CONFIG->EXCHANGE - value from the exchange field entered in the contest configuration screen
  CONFIG->CQZONE - value from the WAZ field entered in the contest configuration screen
  CONFIG->ITUZONE - value from the ITU field entered in the contest configuration screen
  CONFIG->OPNAME - value from the OPNAME field entered in the contest configuration screen
  CONFIG->POWER - value from the POWERfield entered in the contest configuration screen

More details about point calculation and the POINTS_FIELD_BAND_MODE key can be found in a later section of this document.

General contest description

These keys are used for general contest description in the contest config file, such as the contest name, link to the rules etc.

 CONTESTGROUP
 Used for group contest when displaying the config screen for contest selection.
 For example: Digital, 9A Local Contest etc.
CONTESTNAME The contest name as it will be shown and recognized in the contest selection box. Note: this can be same as the cabrillo contest name, but usually it is the full contest name. This field is mandatory and must be unique for all files in contest definition folder.
CONTESTRULES Link to contest rules.
CONTESTWEB Link to contest web.

Configuration screen control

 CATEGORIES
 List of available categories separated by ";" to build category selection list at contest configuration screen.
Default value: Single operator;Single operator assisted;Multioperator, single transmitter;Multioperator, two transmitter; Multi operator, multi-transmitter

CATEGORY_MODES List of available modes separated by ";" to build mode selection list at contest configuration screen.
Default value: CW;SSB;MIXED

 CLASS
 List of available classes separated by ";" to build class selection list at contest configuration screen.
Default value: High;Low;QRP

  OVERLAY
 List of available category overlays separated by ";" to build overlay selection list at contest configuration screen.
Default value: ---;Band restricted;Radio club;Dxpedition;Headquarters;Open;Restricted;Novice;Classic;Rookie; Tribander/Single element;QRP;Fixed station;Portable station

 CFG_MULT
 Controls exchange field at contest configuration screen. 
 Acceptable values are: YES/NO.
 If set to YES, exchange field will be enabled for entering data. Usually in exchange field user enters own multiplier,
 zone or some other info.
 Default value: NO

 CFG_MULT_DX_ALLOWED
 Is "DX" acceptable entry in exchange field at contest configuration screen.
 For example in ARRL DX Contest, all USA/VE stations needs to enter their state/province, while all other stations enters DX here.

Acceptable values are: YES/NO
Default value: NO
 CFG_MULT_MANDATORY
 Is exchange field mandatory (needs to be filled) or can be blank.

Acceptable values are: YES/NO
Default value: NO
 CFG_MULT_ERRORTEXT
 Defines error text which will be shown in case that user enters wrong data in exchange field at contest configuration screen.
 For example, in ARRL DX Contest, user enters state abbreviation which isn't on predefined list.
 CFG_MULT_FROM
 Defines where we can check if user entry in exchange field is valid. Can have value like CUSTOM_MULT_LIST or ITUZONE.
Can be blank if we are using regex expression to check the value or we can accept any entry.
 CFG_MULT_RGX_CHECK
 Regex expression which will be used to verify if data entered in exchange field at contest configuration screen is valid.
Please note that regex expression can contains special tag CUSTOM_MULT_LIST too. This means that any entry specified in custom multiplier list will be valid entry.
 CFG_CQZONE_ERRORTEXT
 Defines error text which will be shown in case that user enters wrong data in WAZ field at contest configuration screen.
 CFG_CQZONE_MANDATORY
 Is WAZ field mandatory (needs to be filled) or can be blank.

Acceptable values are: YES/NO Default value: NO
 CFG_GRID_ERRORTEXT
 Defines error text which will be shown in case that user enters wrong data in GRIDSQUARE field at contest configuration screen.
 CFG_GRID_MANDATORY
 Is GRIDSQUARE field mandatory (needs to be filled) or can be blank.

Acceptable values are: YES/NO Default value: NO
 CFG_GRID_RGX_CHECK
 Regex expression which will be used to verify if data entered in GRIDSQUARE field at contest configuration screen is valid.
 CFG_ITUZONE_ERRORTEXT
 Defines error text which will be shown in case that user enters wrong data in ITU field at contest configuration screen.
 CFG_ITUZONE_MANDATORY
 Is ITU field mandatory (needs to be filled) or can be blank.

Acceptable values are: YES/NO Default value: NO
 CFG_MYDXCC_ERRORTEXT
 Defines error text which will be shown in case that user enters wrong data in DXCC field at contest configuration screen.
 CFG_MYDXCC_MANDATORY
 Is DXCC field mandatory (needs to be filled) or can be blank.

Acceptable values are: YES/NO Default value: NO
 CFG_OPNAME_ERRORTEXT
 Defines error text which will be shown in case that user enters wrong data in OPNAME field at contest configuration screen.
 CFG_OPNAME_MANDATORY
 Is OPNAME field mandatory (needs to be filled) or can be blank.

Acceptable values are: YES/NO Default value: NO
 CFG_POWER_ERRORTEXT
 Defines error text which will be shown in case that user enters wrong data in POWER field at contest configuration screen.
 CFG_POWER_MANDATORY
 Is POWER field mandatory (needs to be filled) or can be blank.

Acceptable values are: YES/NO Default value: NO
 CFG_POWER_RGX_CHECK
 Regex expression which will be used to verify if data entered in POWER field at contest configuration screen is valid.
 CFG_STATE_ERRORTEXT
 Defines error text which will be shown in case that user enters wrong data in STATE/PROVINCE/OTHER field 
 at contest configuration screen.
 CFG_STATE_FROM
 Defines where we can check if user entry in STATE/PROVINCE/OTHER field is valid. Can have value like CUSTOM_MULT_LIST or ITUZONE.
 Can be blank if we are using regex expression to check the value or we can accept any entry.
 CFG_STATE_MANDATORY
 Is STATE/PROVINCE/OTHER field mandatory (needs to be filled) or can be blank.

Acceptable values are: YES/NO Default value: NO
 CFG_STATE_RGX_CHECK
 Regex expression which will be used to verify if data entered in STATE/PROVINCE/OTHER field at contest configuration screen is valid.
 Please note that regex expression can contains special tag CUSTOM_MULT_LIST too. 
 This means that any entry specified in custom multiplier list will be valid entry.

Cabrillo

 CABRILLO_ASSISTED
 CABRILLO_BAND
 CABRILLO_CONTEST_NAME
 CABRILLO_DEF_RECINFO
 CABRILLO_DEF_RECINFO2
 CABRILLO_DEF_RECINFO3
 CABRILLO_DXPEDITION
 CABRILLO_LINE
USE: CABRILLO_LINE=FREQ{F=R,6, };MODE{F=L,2, };DATE;TIME;MYCALL{F=L,13, };SENT{F=L,3, };NR{F=R,3,0,4}
Data is taken from the field name and entered into the Cabrillo file in the order entered,

EG FREQ will enter Frequency of QSO, MODE will enter Mode etc

 Formatting information is contained within the {}
 F= is the formatting call and should be followed by the following parameters: 
 Alignment: L(eft), R(ight)
 Total size for alignment: How many characters is used for formatting, padding, alignment.
 Padding character: Which character will be used for filling empty spaces
 And last one is optional: Total size of the field in Cabrillo field.
EG: RCVD2{F=R,3,0,4} RCVD2 field value will be aligned Right, on length of 3 characters. For padding, we using "0" characters. End total size will be 4 characters (so we will add one more space if needed to have size of 4 chars). This means that if RCVD2 field value is "1", it will be formatted as " 001" and this value will be written in Cabrillo QSO line.
 CABRILLO_LOCATION_CHECK
 CABRILLO_LOCATION_DEFAULT
 CABRILLO_LOCATION_PROMPT
 CABRILLO_MODES
 CABRILLO_OPERATOR
 CABRILLO_OVERLAY
 CABRILLO_OVERLAY_DISABLED
 CABRILLO_POWER
 CABRILLO_QTC_LINE
 CABRILLO_TIME
 CABRILLO_TRANSMITTER

Band and mode specific

 BANDS
 Contains list of available bands separated by ";" for specific contest.
Default value: 160;80;40;20;15;10
 MODES
 Contains list of available modes separated by ";" for specific contest.
Default value: CW;SSB
 EDI_BANDS
 Contains list of EDI values for bands specified in BANDS key.
 Must contain same number of entries as BANDS key.
 This is used for generating EDI log files for VHF/UHF/SHF contests in IARU Region I.

Entry field definitions

These keys are used to control the layout of QSO entry screen. The keys set the visibility, length, labels, checking procedures etc. for each of the fields which the user can enter data or display for any QSO.

 FIELD_AZ_VISIBLE
 Controls the visibility of the Azimuth field. Mostly used on VHF/UHF/SHF to get the Azimuth angle from a gridsquare.
Acceptable values: YES/NO Default value: NO
 FIELD_CALLSIGN_WWL_CHECK
 If YES, entry in the log callsign field will be checked for a gridsquare entry.
 If a gridsquare is found, then the callsign field value will be copied to the gridsquare entry field and the Azimuth angle will be
 calculated and shown.
Acceptable values: YES/NO Default value: NO
 FIELD_MODE_VISIBLE
 Mode field visable on the qso entry line.
Acceptable values: YES/NO
Default value: NO
 FIELD_MODE_NAME
 Header name for field mode.
 FIELD_MULT_VISIBLE
 MULT field visable on the screen.
Acceptable values: YES/NO
 FIELD_NR_VISIBLE
 SENT QSO SERIAL NUMBER visible on the qso entry line.
Acceptable values: YES/NO
 FIELD_NR_HIDDEN_DXCC
 List of DXCC separated by ";". If our own DXCC is on this list, SENT QSO SERIAL NUMBER will be hidden.
 Usable for contests where some stations are sending a serial number exchange and other stations are sending other data
 (for example a local province).
 FIELD_NR_HIDDEN_RGX
 Regex expression. If the condition is valid, SENT QSO SERIAL NUMBER will be hidden.
 Usable for contests where some stations are sending a serial number exchange and other stations are sending other date
 (for example a local province).
 FIELD_PERIOD_VISIBLE
 Is field PERIOD number visible on qso entry line.
Acceptable values: YES/NO
 FIELD_PERIOD_NAME
 Header name for field NAME.
 FIELD_PTS_VISIBLE
 Is field POINTS visible in qso entry line.
Acceptable values: YES/NO
 FIELD_PTS_NAME
 Header name for field POINTS.
 FIELD_RCVD_CHECK_FORMAT_FX
 C# expression to reformat RCVD field value before any further checking.
 FIELD_RCVD_COPY
 Is field RCVD automatically copied from previous qso with same station.
Acceptable values: YES/NO
 FIELD_RCVD_COPY_EXC_DXCC
 List of DXCC countries separated by ";" which are exception for copy value.
Usable in case when we want to copy value from previous QSO for some station.
 FIELD_RCVD_COPY_EXC_RGX
 Regex expression. If condition is true, we have a value copy exception for the QSO.
 FIELD_RCVD_COPY_FX
 C# expression used to copy value from previous qso.
 FIELD_RCVD_DEFAULT_VALUE
 If RCVD field is empty, this is default value to be filled in cabrillo output.
 FIELD_RCVD_EXC_CHECK_DXCC
 List of DXCC countries separated by ";" which are exception for value checking procedure.
 FIELD_RCVD_FORMAT_FX
 C# expression used to format entered value before save.
 FIELD_RCVD_FX_CHECK
 C# expression used to check is value entered in RCVD field is valid.
 FIELD_RCVD_MANDATORY
 Is RCVD field entry is mandatory. 
Acceptable values: YES/NO
 FIELD_RCVD_MANDATORY_RGX_EXC
 Regex expression. If condition is true, we have exception from mandatory rule.
 FIELD_RCVD_MAX_LENGTH
 Maximum number of characters accepted in RCVD field.
 FIELD_RCVD_MIN_LENGTH
 Minimum number of characters accepted in RCVD field.
 FIELD_RCVD_NUMERIC
 Controls if RCVD field accepts only numeric characters.
Acceptable values: YES/NO
 FIELD_RCVD_RGX_CHECK
 Regex expression. Used to check if entry in RCVD field is valid.
 FIELD_RCVD_TYPE
 Define type of RCVD field for possible calculations and check routines.
For example: MULT, NR, CONT etc.
 FIELD_RCVD_WWL_CHECK
 If YES, entry in RCVD field will be checked if it can be possible gridsquare entry.
 It it is gridsquare, then RCVD field value will be copied to gridsquare entry field and Azimuth will be calculated and shown.
Acceptable values: YES/NO Default value: NO
 FIELD_RECINFO_CHECK_FORMAT_FX
 FIELD_RECINFO_COPY
 FIELD_RECINFO_COPY_RGX_EXC
 FIELD_RECINFO_FORMAT_FX
 FIELD_RECINFO_FX_CHECK
 FIELD_RECINFO_MANDATORY
 FIELD_RECINFO_MANDATORY_RGX_EXC
 FIELD_RECINFO_MAX_LENGTH
 FIELD_RECINFO_MIN_LENGTH
 FIELD_RECINFO_NAME
 FIELD_RECINFO_NUMERIC
 FIELD_RECINFO_RGX_CHECK
 FIELD_RECINFO_RGX_SEL_POS
 FIELD_RECINFO_TYPE
 FIELD_RECINFO_VISIBLE
 FIELD_RECINFO2_CHECK_FORMAT_FX
 FIELD_RECINFO2_COPY
 FIELD_RECINFO2_COPY_RGX_EXC
 FIELD_RECINFO2_FORMAT_FX
 FIELD_RECINFO2_FX_CHECK
 FIELD_RECINFO2_MANDATORY
 FIELD_RECINFO2_MANDATORY_RGX_EXC
 FIELD_RECINFO2_MAX_LENGTH
 FIELD_RECINFO2_MIN_LENGTH
 FIELD_RECINFO2_NAME
 FIELD_RECINFO2_NUMERIC
 FIELD_RECINFO2_RGX_CHECK
 FIELD_RECINFO2_RGX_SEL_POS
 FIELD_RECINFO2_TYPE
 FIELD_RECINFO2_VISIBLE
 FIELD_RECINFO3_CHECK_FORMAT_FX
 FIELD_RECINFO3_COPY
 FIELD_RECINFO3_COPY_RGX_EXC
 FIELD_RECINFO3_FORMAT_FX
 FIELD_RECINFO3_FX_CHECK
 FIELD_RECINFO3_MANDATORY
 FIELD_RECINFO3_MANDATORY_RGX_EXC
 FIELD_RECINFO3_MAX_LENGTH
 FIELD_RECINFO3_MIN_LENGTH
 FIELD_RECINFO3_NAME
 FIELD_RECINFO3_NUMERIC
 FIELD_RECINFO3_RGX_CHECK
 FIELD_RECINFO3_RGX_SEL_POS
 FIELD_RECINFO3_TYPE
 FIELD_RECINFO3_VISIBLE
 FIELD_RST_3RD_LETTER
 FIELD_SENT_VISIBLE
 FIELD_STN_VISIBLE

Special Configuration Entries

DXC_COMMENT_EXTRACT

This entry is used to extract exchange or multiplier information from DXCluster comments. For example, the line:

DXC_COMMENT_EXTRACT=RECINFO;(AF|AN|AS|EU|NA|OC|SA)[ /\-\.]?\d{1,3};[ /\-\.]

will extract a typical IOTA designation such as AF-025 and insert it into the RECINFO exchange field. The first part of the configuration (before the ;) defines into which entry field the data should be placed. The second part of the configuration is a Regex expression that defines the data that is to be matched. Refer to any Regex definition text to determine the proper expression for the data to be extracted.


DXCC_DB_TYPE=CUSTOM_CTY

This entry allows the use of a custom country file (for example, R150S.dat). If a custom country file is defined, the selection in Option->Data files->Country files will be ignored and the country file defined in the config file will be used.

DXCC_DB_FILENAME=<filename.dat>

This entry is used in conjunction with the DXCC_DB_TYPE entry to define the actual data file name. The file format is the same as the normal CTY.DAT file.