Check a .udc section multiplier against the list the file names

MultWindowType names the list N1MM validates a received section against,
and every exchange that was not all digits counted as a multiplier here.
Four of N1MM's lists are held now -- the ARRL sections, the US states,
the Canadian provinces and the 165 OK/OM districts, which came out of
N1MM's own exe -- and a file naming one of them counts only the values
on it. A file naming any of the hundred-odd others keeps the old rule.

The 2023 OK/OM DX log now scores contact for contact as N1MM did. Two
contacts in the 2026 log still differ: the district code is stored with
a trailing space, which N1MM matches against its list untrimmed, so it
counts no multiplier where this counts one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RoGtneMQaz4M9w7Kk49AVD
This commit is contained in:
2026-08-31 13:30:27 +00:00
parent 921033cd93
commit 1d3167cd04
5 changed files with 100 additions and 22 deletions

View File

@@ -110,10 +110,15 @@ with the CW and SSB running of the contest.
`.udc` settings that are still passed over. `CallHist` as a multiplier source,
which takes the value from the call history file. `BonusPoints2`, which reads
the bonus callsigns from a file. `MultiplierBands`, `MultWindowType` and
`QsoErrorString`, which are about the windows rather than the score.
`GenericPrintString`, which is the layout of a printed log rather than a
Cabrillo one.
the bonus callsigns from a file. `MultiplierBands` and `QsoErrorString`, which
are about the windows rather than the score. `GenericPrintString`, which is the
layout of a printed log rather than a Cabrillo one.
`MultWindowType` is read as far as the score goes: it names the list a section
multiplier is checked against. Four of N1MM's lists are held here — the ARRL
sections, the US states, the Canadian provinces and the OK/OM districts — and a
file naming any of the hundred-odd others falls back to counting any exchange
that is not all digits.
`CabrilloString` and `CabrilloVersion` are read: a contest whose sponsor asks
for its own columns gets them, in N1MM's shape — the operator's callsign in the
@@ -140,8 +145,8 @@ a county from OK and OM stations and a serial number from everyone else — and
of REF, ARRL 10M, the Ukrainian DX contest and the Russian DX contest, which
are not written yet.
Every contest in the station's own logs can now be opened, and all but five of
its 78 contest instances score contact for contact as N1MM did.
Every contest in the station's own logs can now be opened, and its 78 contest
instances score contact for contact as N1MM did apart from the cases below.
What still differs, and why:
@@ -158,11 +163,10 @@ What still differs, and why:
folder the station's logs score to the contact. N1MM's OK/OM DX class is the CW running only and says so; the SSB
running has different rules and its own pair of files, one for each side of
the contest.
- **A `.udc` section multiplier** is counted for any exchange that is not all
digits. N1MM checks it against the section list given in the file's
`MultWindowType` setting, and those lists are not held here, so a US state
sent into an OK/OM DX log counts as a multiplier here and not in N1MM. Three
contacts across the two logs.
- **Two OK/OM DX contacts** whose district code was stored with a trailing
space. N1MM checks the code against its list without trimming it, finds
nothing and counts no multiplier; the code is trimmed here and counts. Both
contacts are the same station in the 2026 log.
## Known rough edges