Stack the calls that answer a CQ, the way N1MM does
A CQ is answered by more than one station. N1MM lets the operator put the
others on a stack and work them one after another; this is that, with N1MM's
keys and macros.
Ctrl+Alt+G and {STACKANOTHER} put the call being typed on the stack and clear
the boxes. Alt+G brings the top call back. Alt+D drops it. {SOCALLSTACK} both
stacks and unstacks in one key: it swaps the typed call for the top one, stacks
it when the stack is empty, and takes the top call when the boxes are.
{LOGTHENPOP} and {LOGTHENNEXT} log the contact and bring the next caller in.
{CLRSTACK} empties it.
The rules are N1MM's, and CallStack and the entry actions hold them without a
window, so they are unit-tested: stacking only while running, nothing shorter
than two characters, no dupe, no frequency typed into the callsign box, a call
already on the stack moved rather than repeated, and a multiplier to the front.
{SOCALLSTACK} takes the stacked call off before it puts the typed one on, so a
multiplier just typed cannot come straight back.
Two places differ. N1MM refuses your own call only while the stack is empty;
it is never a station to work, so it is refused either way here. And the order
is multipliers first in every mode: N1MM's digital window offers first-in and
last-in as well, and there is no digital window here.
The stack window opens by itself with the first call and closes with the last,
or Window > Call Stack opens it. It does not take the keyboard when it opens,
because the operator is typing the next call. The next call out is ringed and
each is coloured by what working it would bring, as in every other window.
OperatingPosition.JudgeCall now answers what a call alone is worth, which the
stack window and the check window both need; it was private to the check
window before.
Driven under Xvfb: four calls stacked with Ctrl+Alt+G and listed in the window,
Alt+G bringing the top one into the boxes, Alt+D dropping the next.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RoGtneMQaz4M9w7Kk49AVD
This commit is contained in:
49
README.md
49
README.md
@@ -132,7 +132,8 @@ macros that are filled in:
|
||||
|
||||
The action macros run rather than standing for text: `{WIPE}`, `{LOG}`,
|
||||
`{RUN}`, `{S&P}`, `{SPACE}`, `{SPOTME}`, `{STOPTX}`, `{FREQUP}`, `{FREQDN}`,
|
||||
`{PGUP}`, `{PGDN}`, `{JUMPRX}`, `{JUMPRXTX}`, `{CTRLF1}` to `{CTRLF12}` to send
|
||||
`{PGUP}`, `{PGDN}`, `{JUMPRX}`, `{JUMPRXTX}`, `{STACKANOTHER}`, `{SOCALLSTACK}`,
|
||||
`{LOGTHENPOP}`, `{LOGTHENNEXT}`, `{CLRSTACK}`, `{CTRLF1}` to `{CTRLF12}` to send
|
||||
on the other radio, `{TELNET sh/dx}` to put a command on the cluster, and
|
||||
`{OTRSP TX2}` to send one to the SO2R box. An action runs before the message
|
||||
goes out, unless it stands after `{END}`, and then it runs once the message has
|
||||
@@ -145,8 +146,8 @@ How far `{FREQUP}` and the rest move the radio is `FrequencyStepHertz` and
|
||||
for the same two numbers in its Configurer.
|
||||
|
||||
The rest of N1MM's action macros — the CAT families, audio, rotators, stereo,
|
||||
call stacking, the digital TNC macros — are read and passed over, so a message
|
||||
that holds one still sends the right characters.
|
||||
the digital TNC macros — are read and passed over, so a message that holds one
|
||||
still sends the right characters.
|
||||
|
||||
### ESM — Enter sends the message
|
||||
|
||||
@@ -204,6 +205,41 @@ Ctrl+? switches between them, and F1 puts you into run mode, as in N1MM.
|
||||
Two lights sit beside them: the left one is green while a radio is answering,
|
||||
the right one red while something is going out on the air.
|
||||
|
||||
### Call stacking
|
||||
|
||||
A CQ is answered by more than one station at a time. Rather than ask the others
|
||||
to call again, put them on the call stack and work them one after another. This
|
||||
is N1MM's single-operator call stacking, with N1MM's keys.
|
||||
|
||||
| Key | Macro | What it does |
|
||||
|---|---|---|
|
||||
| Ctrl+Alt+G | `{STACKANOTHER}` | puts the call being typed on the stack and clears the boxes, so the next caller can be copied |
|
||||
| Alt+G | | the call on top of the stack replaces what is typed |
|
||||
| Alt+D | | drops the call on top without working it |
|
||||
| | `{SOCALLSTACK}` | one key that both stacks and unstacks: it swaps the call being typed for the one on top, stacks it when the stack is empty, and takes the top call when the boxes are |
|
||||
| | `{LOGTHENPOP}`, `{LOGTHENNEXT}` | logs the contact and brings the next caller into the boxes in one key |
|
||||
| | `{CLRSTACK}` | empties the stack |
|
||||
|
||||
Stacking only works while running: a station you are chasing is worked now, not
|
||||
later. A dupe is not stacked, nor is your own call, nor a frequency typed into
|
||||
the callsign box. `{SOCALLSTACK}` takes the stacked call off before it puts the
|
||||
typed one on, so a multiplier you have just typed cannot come straight back into
|
||||
the boxes.
|
||||
|
||||
A call that would bring a multiplier goes to the front of the stack and the rest
|
||||
to the back, which is the order N1MM uses on CW and phone. N1MM's digital window
|
||||
also offers plain first-in-first-out and last-in-first-out; there is no digital
|
||||
window here, so every mode gets that one order.
|
||||
|
||||
The stack window opens by itself when the first call goes on and closes when the
|
||||
last one comes off, or **Window ▸ Call Stack** opens it. The next call out is
|
||||
ringed, and each is coloured by what working it would bring, as everywhere else.
|
||||
Double-click a call to bring it to the front, right-click to drop it.
|
||||
|
||||
What is not here: N1MM's ESM "next call key" setting, which picks the function
|
||||
key ESM sends when a contact is logged with calls still stacked, and passing
|
||||
stacked calls to the other stations of a multi-operator entry.
|
||||
|
||||
### The buttons and the title bar
|
||||
|
||||
The twelve function keys sit in two rows of six, with the row of actions under
|
||||
@@ -214,9 +250,10 @@ them. Each row fills the width, and the first button of the action row takes the
|
||||
The action row is N1MM's: Esc: Stop, Wipe, Log It, Edit, Spot It and QRZ, each
|
||||
doing what its key does. QRZ opens the callsign's page in a browser.
|
||||
|
||||
N1MM's other two buttons are not there. Mark puts a `Busy@` marker on your own
|
||||
bandmap at the frequency you are on, which needs a bandmap entry that is not a
|
||||
station. Store is call stacking, which is not here either.
|
||||
N1MM's other two buttons are not there. Both put something on your own bandmap
|
||||
rather than on the cluster: Mark leaves a `Busy@` marker at the frequency you
|
||||
are on, which needs a bandmap entry that is not a station, and Store puts the
|
||||
call being typed there so you can come back to it.
|
||||
|
||||
The title bar says what N1MM's says: the frequency, the mode, whether the
|
||||
frequency came from a radio or was typed, and which radio the window belongs to
|
||||
|
||||
Reference in New Issue
Block a user