The README said "not yet" and listed four things. There are more than four, and the more useful split is between what is half-built and what is finished but has never met the hardware it talks to. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
72 lines
3.8 KiB
Markdown
72 lines
3.8 KiB
Markdown
# 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.
|
|
|
|
## Never run against the real thing
|
|
|
|
Everything below is written from a published protocol or from N1MM's source and
|
|
tested against a fake that speaks the same protocol. A fake agrees with whatever
|
|
the person who wrote it believed, so these are the places where a wrong belief
|
|
is still sitting there undiscovered.
|
|
|
|
| What | Tested against | What has never happened |
|
|
|---|---|---|
|
|
| `RigctldRadio` | a stand-in for `rigctld` over a real socket | no real `rigctld`, no real radio. The extended answer format, the `+` prefix and the split commands are from the documented protocol. If the format is wrong, nothing works rather than something being subtly off — check this first. |
|
|
| `OtrspBox` | a `MemoryStream`, checking the bytes | no real SO2R box. Command forms are from N1MM's `N1MMPort.cs`. |
|
|
| `ClusterClient` | a node fake over a real socket, sending the telnet negotiation, the login prompt and spot lines | no live cluster node. Which nodes send bare CR, and which send option negotiation, is guessed from N1MM's code. |
|
|
| `StationNetwork` | the message format, round-tripped | no second station, and no N1MM on the same network. |
|
|
| `CwDaemonSender` | the UDP messages | no `cwdaemon`, no radio keyed. |
|
|
| `WinkeyerSender` | nothing | no test at all, and no WinKeyer. The host-mode open sequence is from the WinKeyer datasheet. |
|
|
|
|
The Cabrillo output has not been put in front of a contest sponsor's robot.
|
|
|
|
## Half-built
|
|
|
|
**Alternating CQ (SO2R).** Needs to know when the keyer has finished sending.
|
|
`MessageSender` is fire-and-forget: it has `SendAsync`, `AbortAsync` and
|
|
`SetSpeedAsync` and no completion signal. Both `cwdaemon` and a WinKeyer can
|
|
report completion, so the interface has to grow first. Timing it from the length
|
|
of the text would be a guess that goes wrong exactly when the contest is busy.
|
|
|
|
**Voice keying.** `MessageSender` was written to cover a voice keyer playing a
|
|
recording, and nothing implements it. No DVK support either, so the second radio
|
|
of an SO2R station cannot call CQ by voice.
|
|
|
|
**The check window's Call History and Exchange columns.** Left out rather than
|
|
shown empty: there is no call history file support to fill them from.
|
|
|
|
**Call history files.** Not read at all. They are what fills a known station's
|
|
name, state or zone in as soon as the call is typed.
|
|
|
|
**QTC handling for WAE.** Not started. WAE logs will not be complete without it.
|
|
|
|
**Digital modes.** A contact can be logged as RTTY or another digital mode, and
|
|
the contest rules score it, but there is no digital window: no decoding, no
|
|
transmitting, no interface to fldigi, MMTTY or similar.
|
|
|
|
**Band-plan colouring of the bandmap scale.** N1MM colours the scale by CW,
|
|
digital and phone segment. The segments differ by ITU region and there is no
|
|
band-plan table here, so it is left out rather than guessed.
|
|
|
|
**Contest coverage.** Eight contests 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 not in the registry fails with the contest name, which is the
|
|
right answer but it is still a wall.
|
|
|
|
**The Available Mults and Qs window.** Not started.
|
|
|
|
## Known rough edges
|
|
|
|
**The log window's column widths** are the grid's own automatic sizing with a
|
|
character-count floor. A column can change width as rows scroll into view.
|
|
|
|
**Contacts arriving over the station network** are applied from the socket
|
|
thread, and `AppSession.TakeFromNetwork` reopens the whole contest to do it.
|
|
That is correct but heavy, and it discards what is typed in an entry window on
|
|
another radio.
|
|
|
|
**Two entry windows and one keyer.** The SO2R box is told which radio to key
|
|
before each message, but nothing stops both radios sending at once if the
|
|
operator asks them to.
|