Win-Test summary data broadcasting specifications Version 1.2 - (C) Aug 2008 by F6FVY This feature is only available in Win-Test from version 2.20.0. It can be enabled *only* on the master station (the station which broadcasts time synchronisation on the network). The data are sent thru UDP frames on the specified port in the interfaces settings dlg (default 9871). The Win-Test frames have the following structure : frameType: fromStation toStation Data ChecksumChar The checksum character is contatened just after the last data character. Checksum calculation : One char = (Sum of all char bytes) | 0x80 The summary frames are signed with the SUMMARY: frameType, have an empty toStation and include a transactionID as first data element and a secondaryFrameType as second data element. The transactionID is an integer, and common for all summary frames of the same batch. [ Avail. in network version >= 1.10 ] There are 4 different summary secondary frames types : ID, HEADERS, ROW, SCORE * ID frames =========== Example : SUMMARY: "STN1" "" 4422 "ID" "2.20-dev4" 110 "FY5KE" "" "09" 200 0 3 1 0 7 7 For clarity, the checksum char is removed. Data structure : WTVersion (ex : "2.20-dev4") NetworkVersion (ex : 110, meaning 1.10) StationCallsign (ex : "FY5KE") GridSquare (ex : "" - empty - If not empty it is a 6-char gridsquere) Zone (ex : "09") ContestID (ex : 200 => CQWW DX - see below) ModeCategoryID (ex : 0 => CW - see below) CategoryID (ex : 3 => M/S - see below) OverlayID (ex : 1 => None - see below) PowerClassID (ex : 0 => High power - see below) ColumnsCount (ex : 7) RowsCount (ex : 7 => Bands rows + total row. Headers and final score rows are excluded) * HEADERS frames ================ Example : SUMMARY: "STN1" "" 4422 "HEADERS" 1 5 6 10 8 14 15 For clarity, the checksum char is removed. Data structure : Column 1 LabelID (ex : 1 => LABEL_BAND - see below) Column 2 LabelID (ex : 5 => LABEL_QSO) ... Column ColumnsCount LabelID * ROW frames ============ Examples : SUMMARY: "STN1" "" 4422 "ROW" 4 "20" 29 1 19 14 61 2.10 SUMMARY: "STN1" "" 4422 "ROW" 0 "TOTAL" 77 3 60 46 160 2.08 Data structure : RowNumber (0 => Total row) RowTitle (eq to Data Col 1 => Always a string) Data Col 2 Data Col 3 ... Data Col ColumnsCount (last column) * SCORE frames ============== Example : SUMMARY: "STN1" "" 4422 "SCORE" 1132356148 150 16960 Data structure : Frame time (win32 time_t type) (UTC) Operating time (TimeON) expressed in minutes [ Avail. in network version >= 1.10 ] Final score Useful tool : Wireshark : http://www.wireshark.org/ Last revision of this document : Aug 22 2008 ================================================================================== Annex ===== LabelID, ContestID, ModeCategoryID, CategoryID, etc... list : // Summary labels IDs #define LABEL_BAND 1 #define LABEL_MODE_SSB 2 #define LABEL_MODE_CW 3 #define LABEL_MODE_ALL 4 #define LABEL_QSO 5 #define LABEL_DUPE 6 #define LABEL_ITU 7 #define LABEL_CQ 8 #define LABEL_HQ 9 #define LABEL_DXCC 10 #define LABEL_DEPARTEMENT 11 #define LABEL_MULTS 12 #define LABEL_LOCATOR 13 #define LABEL_POINTS 14 #define LABEL_AVG 15 #define LABEL_AVG_PTS 16 #define LABEL_AVG_KMS 17 #define LABEL_TOTAL 18 #define LABEL_FINAL_SCORE 19 #define LABEL_OBLAST 20 #define LABEL_MODE_RTTY 21 #define LABEL_MODE_DIGITAL 22 #define LABEL_SECTION 23 #define LABEL_PROVINCE 24 #define LABEL_PREFECTURE 25 #define LABEL_MODE_OTHERS 26 #define LABEL_TOTAL_QSO 27 #define LABEL_PREFIX 28 #define LABEL_P150C 29 #define LABEL_IOTA 30 #define LABEL_IOTA_SSB 31 #define LABEL_IOTA_CW 32 #define LABEL_COUNTY 33 #define LABEL_YEAR 34 #define LABEL_QTC 35 #define LABEL_RDA 36 #define LABEL_QSO_PHONE 37 #define LABEL_QSO_CW 38 #define LABEL_DXCC_PHONE 39 #define LABEL_DXCC_CW 40 #define LABEL_STATE_PHONE 41 #define LABEL_STATE_CW 42 #define LABEL_COUNTY_PHONE 43 #define LABEL_COUNTY_CW 44 #define LABEL_EEC 45 #define LABEL_PROV_PHONE 46 #define LABEL_PROV_CW 47 #define LABEL_DISTRICT 48 #define LABEL_BONUS 49 #define LABEL_CANTON 50 #define LABEL_CIS 51 #define LABEL_DOK 52 #define LABEL_CONTINENT 53 #define LABEL_STATES_PROVINCES 54 #define LABEL_RRTC 55 // Supported contests IDs #define IARU_VHF 1 #define IARU_UHF 2 #define IARU_CW 3 #define IARU_HF 4 #define IARU_R1_50MHZ 5 #define REF_THF 10 #define REF_DDFM_50MHZ 11 #define THF_EU 20 #define THF_EU_50_70 21 #define THF_EU_GRIDSQUARE 30 #define THF_EU_GRIDSQUARE_50_70 31 #define THF_EU_GRIDSQUARE_NO_DIST 32 #define THF_EU_GRIDSQUARE_NO_DIST_50_70 33 #define REF_HF 100 #define ARRL_DX 101 #define ARRL_10 102 #define ARRL_160 103 #define ARRL_SWEEPSTAKES 104 #define ARRL_FD 105 #define ARRL_RU 106 #define ARRL_UHF_AUG 130 #define ARRL_VHF_JAN 131 #define ARRL_VHF_JUN 132 #define ARRL_VHF_SEP 133 #define REF_160 150 #define CQWW_DX 200 #define CQWW_WPX 201 #define CQWW_160 202 #define CQWW_VHF 250 #define RDXC 300 #define RDAC 301 #define CIS 302 #define R_160 303 #define RRTC 304 #define DXPEDITION_HF 400 #define DXPEDITION_VHF 410 #define ALL_ASIAN 500 #define SPDXC 600 #define JIDX 700 #define KCJ 701 #define KCJ_TOPBAND 702 #define YUDXC 800 #define CQM 900 #define ARI 1000 #define ARI_SEZIONI 1001 #define ARI_40_80 1002 #define BALTIC 1100 #define KING_OF_SPAIN 1200 #define IOTA 1300 #define RSGB_160 1301 #define RSGB_80_CC 1302 #define RSGB_CMW 1303 #define RSGB_15_10 1304 #define RSGB_AFS 1305 #define WAEDC 1400 #define WAG 1401 #define DARC_XMAS 1402 #define DARC_10 1403 #define YODXC 1500 #define EU_HF 1600 #define SCC 1601 #define OCDXC 1700 #define TOECC 1800 #define SAC 1900 #define NRAU_BALTIC 1901 #define NAC 1902 #define SARTG 1903 #define QP_TX 2000 #define EU_SPRINT 2100 #define UKDXC 2200 #define OKOMDXC 2300 #define STEW_PERRY 2400 #define GACW_DX 2401 #define NINE_KCC_15 2402 #define FOC_MARATHON 2403 #define LOTW 2404 #define AP_SPRINT 2405 #define JARTS 2406 #define MARCONI_HF 2407 #define LZDX 2500 #define CROATIAN_CW 2600 #define UBADX 2700 #define UBA_SPRING_80M 2701 #define UBA_SPRING_6M 2702 #define UBA_SPRING_2M 2703 #define ON_80M 2704 #define ON_6M 2705 #define ON_2M 2706 #define RAC_DAY 2800 #define RAC_WINTER 2801 #define PACC 2900 #define HELVETIA 3000 #define HELVETIA_VHF 3001 #define IARU_FD_R1_GENERIC 3100 #define IARU_FD_R1_DARC 3101 #define IARU_FD_R1_RSGB 3102 #define UFT_HF 3200 #define AGCW_HNY 3300 #define HA_DX 3400 #define NAQP 3500 #define NA_SPRINT 3501 #define NCCC_SPRINT 3600 #define CQIR 3700 // Supported categories IDs #define SINGLE_OP 1 #define SINGLE_OP_ASSISTED 2 #define MULTI_SINGLE 3 #define MULTI_TWO 4 #define MULTI_MULTI 5 #define ROVER_STATION 6 // Applies to QP and US VHF #define MARITIME_MOBILE 7 #define MOBILE_STATION 8 // Applies to QP #define SCHOOL_CLUB 9 // Supported overlays IDs #define OVERLAY_NONE 1 #define OVERLAY_CLUB 2 #define OVERLAY_ROOKIE 3 #define OVERLAY_BAND_LIMITED 4 #define OVERLAY_TB_WIRES 5 #define OVERLAY_HQ 6 // Applies to IARU HF (& RSGB cmw) #define OVERLAY_DXPEDITION 7 // Applies to RSGB-IOTA #define OVERLAY_OPEN 8 // Applies to RSGB Commonwealth #define OVERLAY_RESTRICTED 9 // ditto #define OVERLAY_QRP 10 // Applies to FD RSGB #define OVERLAY_FIXED 11 // Applies to FD DARC #define OVERLAY_WRTC 12 // Applied to WRTC // Supported mode categories #define MODECATEGORY_CW 0 #define MODECATEGORY_PHONE 1 #define MODECATEGORY_MIXED 2 #define MODECATEGORY_RTTY 3 #define MODECATEGORY_DIGITAL 4 #define MODECATEGORY_ALL 5 // Supported power classes IDs #define CLASS_HIGH 0 #define CLASS_LOW 1 #define CLASS_QRP 2