Draw the bandmap the way N1MM draws it
The bandmap was a list of frequencies and callsigns. It is now a frequency scale with the stations written out beside it and a leader line from each callsign back to where the station really is. BandmapLayout does the placing and has no UI reference, so the rule is unit tested: put the label centred on its frequency, and if it would cover the one above, push it below instead. That is N1MM's CalculateOffset, and it is what keeps three stations a hundred hertz apart readable. The scale stops short of the top and bottom edges, or the first and last frequency numbers come out cut in half. VfoMarker draws the receiver as a bar as wide as the mode passes, rather than a line. Only the receiver is fed: the radio does not report a transmit VFO or a second radio yet, so VfoRole has the other two roles ready and nothing draws them. Band-plan colouring of the scale is left out because the segments differ by ITU region and there is no band-plan table to read them from. Checked by running the program against a fake cluster node under Xvfb and looking at the result: twelve spots, three of them stacked with fanned leaders. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
25
README.md
25
README.md
@@ -48,6 +48,7 @@ scorer: red for a dupe, green for a new multiplier, blue for points.
|
||||
| Editing | double-click a cell in the log, or open the whole contact with Ctrl+Y; Delete removes it. All of it goes out to the other stations |
|
||||
| Radio | hamlib `rigctld`, reconnecting on its own |
|
||||
| Cluster | DX cluster over telnet, spots feeding the bandmap, Alt+P to spot a station |
|
||||
| Bandmap | drawn like N1MM's: a frequency scale with the receiver on it and callsigns beside it, joined by leader lines |
|
||||
| Network | contacts shared with the other stations of a multi-operator entry, in N1MM's own contact message |
|
||||
| Keying | CW through `cwdaemon` or a WinKeyer, with N1MM's message macros |
|
||||
|
||||
@@ -119,6 +120,28 @@ Correcting the country prefix by hand changes the score. The country file is a
|
||||
best guess for calls it has no rule for, so what the contact says now wins over
|
||||
what the file says.
|
||||
|
||||
### The bandmap
|
||||
|
||||
A frequency scale down the left with the stations written out beside it. Each
|
||||
callsign sits level with its frequency, and when two stations are too close to
|
||||
write one above the other the lower one moves down and a leader line runs back
|
||||
to where it really is. That is what N1MM does, and the stacking follows its
|
||||
rule: place the label centred on its frequency, and push it below the one above
|
||||
if it would cover it.
|
||||
|
||||
The slice shown follows the receiver — 10, 20, 40 or 100 kHz, or the whole band.
|
||||
Callsigns are coloured by the same scorer as the entry window, so a dupe reads
|
||||
as a dupe here too. Clicking a callsign puts the radio there with the call
|
||||
already in the entry window; clicking anywhere else just moves the radio.
|
||||
|
||||
The green bar on the scale is the receiver, as wide as the mode it is in.
|
||||
`VfoRole` has transmit and second-radio bars ready, but nothing feeds them yet:
|
||||
the radio does not report a transmit VFO or a second radio, so those bars stay
|
||||
out rather than showing a guess.
|
||||
|
||||
Band-plan colouring of the scale is not there. The segments differ by ITU region
|
||||
and the program has no band-plan table, so it would be guesswork.
|
||||
|
||||
### The DX cluster
|
||||
|
||||
**Config → Cluster** takes the node's address, a password for the few nodes that
|
||||
@@ -174,7 +197,7 @@ covered by plain unit tests.
|
||||
|
||||
Working: logging a contest end to end, live dupe and multiplier checking, eight
|
||||
built-in contests plus user-defined ones, Cabrillo and ADIF export, ADIF import,
|
||||
the log, check, bandmap, score and packet windows, editing and deleting logged
|
||||
the log, check, graphical bandmap, score and packet windows, editing and deleting logged
|
||||
contacts, radio control, DX cluster spots, contacts shared between networked
|
||||
stations, and CW keying.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user