From 9424c488ea420ddf2474449a87285c441bc70af8 Mon Sep 17 00:00:00 2001 From: ericek111 Date: Sun, 30 Aug 2026 23:23:22 +0000 Subject: [PATCH] Take the rest of what N1MM's QTC window does on CW MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reading the source again after this was tried turned up several things it had wrong or left out. The TU message went out only when reading a series out. N1MM sends it whichever way the traffic went, and lets it name the series: {QTC} in it stands for the header, so TU {QTC} 73 goes out as TU QTC 3/10 73. The RX Ready button was hidden while sending and sent nothing on CW. It is N1MM's QRV button: reading out it says R U QRV and keys QRV?, taking down it says QRV and keys QRV. The fields were asked for again with shift and Enter, which was made up. N1MM uses the number keys, and writes them under the lines: 1, 2, 3 and 4 send the time, call, serial or header of the last line again while reading out, and shift with 1, 2 or 3 asks for that field while taking down. The buttons now carry N1MM's names for the direction the traffic is going — R U QRV, Snd Hdr, Snd1 to Snd10, Exit reading out; QRV, Hdr Agn, Agn1 to Agn10, Exit taking down — and the Cfm column and Clear are hidden while reading out, as N1MM hides them. The separate Send Hdr button is gone: N1MM has one button there that sends the header one way and asks for it the other. The log window gained N1MM's QTC? column for a contest that carries QTC traffic. It holds the series, so a QTC row can be told from a contact; before this a QTC row read as an ordinary one with odd values in the report columns. Driven under Xvfb against a fake cwdaemon. Reading out: QRV?, QTC 3/2, 2319 DL7GGG 03, then 2319 and QTC 3/2 from the number keys, and TU QTC 3/2 73 on Exit. Taking down: QRV, AGN TIME, AGN CALL. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01RoGtneMQaz4M9w7Kk49AVD --- README.md | 43 ++++-- docs/unfinished.md | 13 +- src/Nonemm.App/Windows/QtcWindow.axaml | 3 +- src/Nonemm.App/Windows/QtcWindow.axaml.cs | 141 +++++++++++++----- src/Nonemm.Contests/Contest.cs | 4 + src/Nonemm.Contests/Rules/Wae.cs | 2 + src/Nonemm.Session/QsoEditor.cs | 6 + src/Nonemm.Session/QtcMessages.cs | 12 ++ .../Nonemm.Session.Tests/QtcMessagesTests.cs | 13 ++ 9 files changed, 181 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index 287071c..169e136 100644 --- a/README.md +++ b/README.md @@ -559,25 +559,44 @@ they ask for again, and the CW messages below. The defaults are N1MM's — both steps skipped, the header cleared, the line left alone. On CW the window puts the traffic on the air itself, through the same keyer a -function key sends through: +function key sends through. The buttons carry N1MM's names, which say what they +do in the direction the traffic is going. + +Reading a series out: | | | |---|---| -| Send Hdr | the header of the series, `QTC 3/10` | -| Send1 to Send10 | one line: the time, the callsign and the serial number | -| Close | the TU message, when one is set | -| Hdr Agn | `HDR AGN`, asking for the header again | -| Shift and Enter in a box | asks for that one field again — `AGN TIME`, `AGN CALL`, `AGN SERIAL` — and clears it | +| R U QRV | `QRV?`, asking whether the other station is ready | +| Snd Hdr | the header of the series, `QTC 3/10` | +| Snd1 to Snd10 | one line: the time, the callsign and the serial number | +| 1, 2, 3, 4 | sends the time, the call, the serial or the header of the last line again, for a station that missed a piece of it | +| Exit | saves the traffic and sends the TU message | -The gap between the fields of a line is written N1MM's way, with `S` for a -space, so `SS` is two and anything else goes out as it stands. All five messages -are N1MM's defaults and are edited in Setup. The serial number goes out as -digits: N1MM can send cut numbers, and nothing here does, for any message. +Taking one down: + +| | | +|---|---| +| QRV | `QRV`, telling the other station to go ahead | +| Hdr Agn | `HDR AGN`, asking for the header again | +| Shift 1, Shift 2, Shift 3 | asks for that one field again — `AGN TIME`, `AGN CALL`, `AGN SERIAL` — and clears it | +| Exit | saves the traffic and sends the TU message | + +The TU message goes out whichever way the traffic went, and `{QTC}` in it stands +for the header, so `TU {QTC} 73` goes out as `TU QTC 3/10 73`. It is empty out +of the box, and then nothing is sent. The gap between the fields of a line is +written N1MM's way, with `S` for a space, so `SS` is two and anything else goes +out as it stands. All of it is edited in Setup, with N1MM's defaults. The serial +number goes out as digits: N1MM can send cut numbers, and nothing here does, for +any message. Nothing is sent on SSB or RTTY. N1MM plays four recordings on SSB — QRV, Agn, Cfm and TU — and sends RTTY through its digital window; this program has no -voice keyer and no digital window, so on those two modes Agn, Cfm and RX Ready -move the cursor as they did before. +voice keyer and no digital window, so on those two modes the buttons move the +cursor as they did before. N1MM's RTTY window also has a Send All button that +keys the whole series at once; there is nothing to send it with here. + +In a WAE contest the log window has N1MM's **QTC?** column, which holds the +series a QTC row belongs to and is empty for an ordinary contact. The scoring was checked against six real WAE logs, and agrees with N1MM on points and on weighted multipliers to the contact. diff --git a/docs/unfinished.md b/docs/unfinished.md index 0ba528c..0e4ed17 100644 --- a/docs/unfinished.md +++ b/docs/unfinished.md @@ -39,12 +39,13 @@ and passed over. Acting on them means holding N1MM's section lists and its rules about which sections are retired, and getting that wrong throws away good data. The file is read without them. -**The QTC window transmits on CW only.** The header, the lines, the TU and the -four again messages go out through the keyer, with N1MM's messages and N1MM's -defaults. Nothing goes out on SSB or RTTY: N1MM plays four recordings on SSB — -QRV, Agn, Cfm and TU — and sends RTTY from its digital window, and this program -has neither a voice keyer nor a digital window. RX Ready therefore sends nothing -on any mode here, because N1MM only ever sends a recording from it. +**The QTC window transmits on CW only.** The header, the lines, the QRV, the TU +and the again messages go out through the keyer, with N1MM's messages and +N1MM's defaults. Nothing goes out on SSB or RTTY: N1MM plays four recordings on +SSB — QRV, Agn, Cfm and TU — and sends RTTY from its digital window, and this +program has neither a voice keyer nor a digital window. N1MM's Send All, which +keys a whole series at once, belongs to that RTTY window and is not here +either. **Cut numbers are not sent.** N1MM can key a serial number as letters — `N` for 9, `T` for 0 — and offers several styles. Nothing here does, in a QTC line or in diff --git a/src/Nonemm.App/Windows/QtcWindow.axaml b/src/Nonemm.App/Windows/QtcWindow.axaml index 351ca2e..f8b58ee 100644 --- a/src/Nonemm.App/Windows/QtcWindow.axaml +++ b/src/Nonemm.App/Windows/QtcWindow.axaml @@ -18,7 +18,6 @@ -