Read call history files, and fill the exchange from them
N1MM's format, so a file published for a contest is read as it is: # comments, !!Order!! naming the columns of the lines after it, semicolons in preference to commas so user text can hold a comma, and a default column order for a file that names none. The directives that change what is stored are acted on; !!Order!! can appear again part way through, because these files are usually several files stuck together. Leaving the callsign box fills what the file knows into the exchange boxes that are still empty. A box with something in it is left alone: what the station actually sends beats what somebody published months ago. The zone comes from the CqZone or the ITUZone column depending on which the contest asks for, and a file with no Sect falls back to State. The check window's two missing columns are in. History lists matching calls from the file. Exchange is not about callsigns at all: it offers the values the exchange box with the cursor in it can hold, which is what N1MM's exchange pane does — it searches the contest's list of valid exchanges, not the log. CheckCandidate.Call is now Text, because an exchange value is not a call. The section-validating directives are read and passed over rather than acted on. Acting on them means holding N1MM's section lists and its rules about retired sections, and getting that wrong throws away good data. Running it caught what the unit tests could not: the exchange was filled and scored but the boxes on screen still looked empty, because nothing resynced them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
31
README.md
31
README.md
@@ -43,7 +43,7 @@ scorer: red for a dupe, green for a new multiplier, blue for points.
|
||||
|---|---|
|
||||
| Contests | CQ WW, CQ WPX, ARRL DX, IARU HF, Sweepstakes, RTTY Roundup, NAQP, general logging, and user-defined `.udc` contests |
|
||||
| Log | N1MM `.s3db`, Cabrillo 3.0 out, ADIF in and out |
|
||||
| While typing | dupe check, multiplier check, points, country and zone from the country file |
|
||||
| While typing | dupe check, multiplier check, points, country and zone from the country file, exchange filled from a call history file |
|
||||
| Windows | entry, log, check, bandmap, score summary, packet |
|
||||
| Editing | double-click a cell in the log, or open the whole contact with Ctrl+Y; Delete removes it. All of it goes out to the other stations |
|
||||
| Radio | one or two radios over hamlib `rigctld`, split, reconnecting on its own |
|
||||
@@ -120,6 +120,35 @@ Correcting the country prefix by hand changes the score. The country file is a
|
||||
best guess for calls it has no rule for, so what the contact says now wins over
|
||||
what the file says.
|
||||
|
||||
### Call history files
|
||||
|
||||
**Config → Call History File…** points at one of the files published before a
|
||||
contest. It is N1MM's format, so a file written for N1MM is read as it is:
|
||||
`#` comments, `!!Order!!` naming the columns of the lines after it, semicolons
|
||||
in preference to commas, and the directives that change what is stored —
|
||||
`!!FourCharGridSq!!`, `!!NoLoc2AltGrid!!`, `!!MapStateToSect!!`,
|
||||
`!!AppendUserText!!` and `!!NoAppendUserText!!`.
|
||||
|
||||
Leaving the callsign box fills what the file knows into the exchange boxes that
|
||||
are still empty. A box with something in it is left alone: what the other
|
||||
station actually sends beats what somebody published months ago. The check
|
||||
window gets a History column of matching calls.
|
||||
|
||||
The section-validating directives — `!!Validate50State!!`,
|
||||
`!!ValidateArrlSection!!`, `!!MapOnSection!!`, `!!GTA2GH_NT2TER!!` — are read
|
||||
and passed over rather than acted on. Throwing data away on a section list this
|
||||
program does not hold would be worse than keeping it.
|
||||
|
||||
### The check window
|
||||
|
||||
Five columns, kept apart because they answer different questions: **Log** is
|
||||
what this station copied itself, **Master** is a guess about the whole world,
|
||||
**History** is what was published before the contest, **Bandmap** is somebody
|
||||
else's claim, and **Exchange** offers the values the exchange box with the
|
||||
cursor in it can hold — the ARRL sections, or the states and provinces. A
|
||||
serial number or a report has no list behind it, so that column stays empty
|
||||
rather than guessing.
|
||||
|
||||
### Radios
|
||||
|
||||
**Config → Radios** takes a `rigctld` address per radio. Each radio needs its
|
||||
|
||||
Reference in New Issue
Block a user