Clear the stale items out of the docs
The scoring audit says which of its findings are fixed and which are still open, its line numbers point at where the code is now, and the order of what to do next is what is left rather than what is done. In unfinished.md: Send All was listed as missing 500 lines above the section that describes it, three TypeAhead methods had been renamed, the station number clash is guarded and the paragraph saying it is not was next to the one saying it is, and the registry holds twenty-six contests rather than twenty-five. The claim that every instance of the station's logs scores contact for contact is replaced by what the replay of 2026-09-06 actually found. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0157i7PiZyqBkquxS9A6FTdQ
This commit is contained in:
+27
-16
@@ -1,7 +1,7 @@
|
||||
# What is not finished, and what has not been tested
|
||||
|
||||
Two separate lists. A feature can be finished and untested, or half-built and
|
||||
exercised every day. Written 2026-08-27, updated 2026-08-31.
|
||||
exercised every day. Written 2026-08-27, updated 2026-09-11.
|
||||
|
||||
## Never run against the real thing
|
||||
|
||||
@@ -34,10 +34,9 @@ through the engine on a digital mode. Left out: the waterfall, the spectrum and
|
||||
the XY scope, which the engine reports and nothing draws; more than one receive
|
||||
pane, which is MMVARI's multi-channel decoding rather than MMTTY's; N1MM's
|
||||
AutoTRXUpdate, which offsets the frequency the entry window and the log record
|
||||
rather than only the one in the title bar; and N1MM's Send All, which keys a
|
||||
whole QTC series at once. The other interfaces N1MM offers — fldigi, MMVARI, the
|
||||
hardware TNCs — are not here either, though `DigitalEngine` is the place to add
|
||||
them.
|
||||
rather than only the one in the title bar. The other interfaces N1MM offers —
|
||||
fldigi, MMVARI, the hardware TNCs — are not here either, though `DigitalEngine`
|
||||
is the place to add them.
|
||||
|
||||
The receive pane has been driven with a stand-in bridge that prints prepared
|
||||
text, which is how the printing, the colouring, the Letters/Figs box and the
|
||||
@@ -99,10 +98,11 @@ the third, the macro buttons (`:21553`). The sleep is not the mechanism — a fu
|
||||
buffer is — and as a wait it is both too long on a long message and wrong on a
|
||||
short one: `TU` is 330 ms of air at 45.45 baud, so 400 ms of sleeping puts the
|
||||
stop after the buffer has emptied, which is where it does nothing. This program
|
||||
asks instead. `TypeAhead.WhenHoldingAsync` sends the stop as soon as the count
|
||||
says the engine holds something, and gives up after N1MM's 400 ms.
|
||||
asks instead. `DigitalEngineSender.WaitUntilHoldingAsync` sends the stop as soon
|
||||
as the count says the engine holds something, and gives up after N1MM's 400 ms,
|
||||
which is `StopDelay`.
|
||||
|
||||
So `{RX}` stops feeding: `TypeAhead.TakePending` hands over everything that is
|
||||
So `{RX}` stops feeding: `TypeAhead.FlushAsync` hands over everything that is
|
||||
left in one piece, and the stop goes out 400 ms behind it. Nothing after that
|
||||
can be rewritten, which is what `{RX}` means. The feeder still paces the middle
|
||||
of a message, which is what makes type-ahead work; only the ending is N1MM's.
|
||||
@@ -146,9 +146,9 @@ And what the engine holds is counted across feeders rather than reset when one
|
||||
starts: a feeder that started after a flush forgot a whole message the engine
|
||||
was still holding, called the transmission over and put the key down in the
|
||||
middle of it.
|
||||
`TypeAhead.WhenEmptyAsync` waits for `Aired` first, which is two things at
|
||||
once: the engine's own count at 0, and the clock saying the characters the
|
||||
engine held have had time to go out. `StopPatience` caps the wait for an engine
|
||||
`DigitalEngineSender.WaitUntilAiredAsync` waits for `Aired` first, which is two
|
||||
things at once: the engine's own count at 0, and the clock saying the characters
|
||||
the engine held have had time to go out. `StopPatience` caps the wait for an engine
|
||||
that never reports itself empty.
|
||||
|
||||
One character time is held after that and no more, because the count reaching 0
|
||||
@@ -605,7 +605,7 @@ decodes and transmits through MMTTY over the Wine bridge. What is not here:
|
||||
fldigi, MMVARI, 2Tone and the hardware TNCs, all of which N1MM drives.
|
||||
`DigitalEngine` is the place to add them.
|
||||
|
||||
**Contest coverage.** Twenty-five families are built in, plus whatever `.udc` files
|
||||
**Contest coverage.** Twenty-six families are built in, plus whatever `.udc` files
|
||||
are in the user-defined folder. N1MM ships well over a hundred. Opening a log
|
||||
from a contest that is in neither place fails with the contest name, which is
|
||||
the right answer but it is still a wall.
|
||||
@@ -650,10 +650,18 @@ a county from OK and OM stations and a serial number from everyone else — and
|
||||
Ukrainian DX contest and the Russian DX RTTY contest ask their exchange the same
|
||||
way, and are written in code for the same reason.
|
||||
|
||||
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.
|
||||
Every contest in the station's own logs can now be opened. The replay of
|
||||
2026-09-06 read 62 of its instances with built-in rules, 55,415 contacts, and 45
|
||||
of those instances scored contact for contact as N1MM did; 316 contacts differ
|
||||
in points and 141 in a multiplier flag. The comparison is against the points and
|
||||
flags N1MM left in the file, which may themselves be stale, so a difference is
|
||||
something to look at rather than a fault. The counts and the row-by-row list are
|
||||
in [scoring-audit-2026-09-06.md](scoring-audit-2026-09-06.md) and
|
||||
[scoring-audit-history.csv](scoring-audit-history.csv).
|
||||
|
||||
What still differs, and why:
|
||||
What still differs, and why. The IARU, YOTA and CQ WW differences are not in
|
||||
this list: they are in the audit, and each needs the station settings and the
|
||||
country file of the day before it can be said what happened.
|
||||
|
||||
- **The EU DX Contest** is written from N1MM's own class. The station's logs
|
||||
were made with the `EU_DXC.udc` file instead, which scores a contact inside
|
||||
@@ -662,7 +670,10 @@ What still differs, and why:
|
||||
- **Field Day Region 1**: every contact in that log holds 1 point and no
|
||||
multiplier, which is not what N1MM's own class works out, so the log looks
|
||||
like it was never scored. The rules here follow the class: 5 points for a
|
||||
portable station, 2 for one in Region 1 at home and 3 from outside it.
|
||||
portable station, 2 for one in Region 1 at home and 3 from outside it. That
|
||||
table is applied to every running of the contest, which finding 12 of the
|
||||
audit says is wrong: N1MM branches on the running and on the entrant's
|
||||
country, and continent alone does not say whether a station is in Region 1.
|
||||
- **SA 10 and OK/OM DX on SSB** are not written in code at all: both are
|
||||
published as `.udc` files, and with those files in the user-defined contests
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user