Spots: Rufzeichen ganz im Bild, und ein Tipp darauf meint das Rufzeichen - #201
Merged
Merged
Conversation
Betreiber am 2026-10-05, am echten Telefon: "die spots stehen aber sehr
weit oben, so kann man diese nicht komplett sehen" -- und zwei Wuensche
dazu: einmal tippen soll QRZ oeffnen, zweimal ins Logblatt uebernehmen.
── DER FEHLER ─────────────────────────────────────────────────────────
Ich hatte die SCHRIFTGRUNDLINIE als Oberkante behandelt. `fillText`
zeichnet nach OBEN von der Grundlinie weg; mit Grundlinie 4 stand die
obere Haelfte jedes Rufzeichens ausserhalb des Canvas. Im
Werkzeugbrowser fiel das nicht auf, weil dort mehr Platz ueber dem
Panadapter ist -- am Telefon ist er 96 Punkte hoch.
Jetzt wird die Hoehe ueber der Grundlinie GEMESSEN
(`measureText(...).actualBoundingBoxAscent`) statt geschaetzt, und die
erste Zeile sitzt zwei Punkte darunter. Der dunkle Grund hinter der
Schrift folgt derselben Messung statt einer festen 8.
Nachgemessen in den Rohbytes des Canvas: die Schrift belegt jetzt die
Zeilen 2 bis 8 von 96 -- vollstaendig im Bild, mit Luft zum Rand.
── AUF DER SCHRIFT STEHT DAS RUFZEICHEN ───────────────────────────────
Auf dem Strich steht die Frequenz, auf der Schrift das Rufzeichen. Wer
beides auf denselben Tipp legt, muss sich fuer eines entscheiden und
nimmt dem Bediener das andere weg. Darum zwei getrennte Treffpruefungen:
* Schrift, ein Tipp -> QRZ (neuer Reiter, mit noopener -- sonst
bekaeme die fremde Seite ueber `window.opener`
einen Griff auf diese hier)
* Schrift, zwei Tipps -> QSO-Blatt mit eingetragenem Rufzeichen
* Strich/Spektrum -> abstimmen, wie bisher
Der einzelne Tipp wartet 280 ms, ob ein zweiter kommt; anders ist
beides auf einem Telefon nicht zu unterscheiden.
Geprueft wird gegen den Kasten, den das ZEICHNEN gesetzt hat
(`m.kasten`), nicht gegen eine zweite Rechnung -- zwei Rechnungen
laufen auseinander, und dann trifft der Finger etwas anderes als das
Auge sieht. Dieselbe Regel wie bei der Stelle der Marke selbst.
Das eingetragene Rufzeichen loest die Dupe-Abfrage ausdruecklich aus:
sie haengt am `input`-Ereignis, und von Hand gesetzte Werte loesen das
nicht aus. Ohne diese Zeile stuende das Rufzeichen da und niemand
haette nachgesehen, ob es schon im Logbuch steht.
── LIVE BELEGT ────────────────────────────────────────────────────────
ein Tipp -> https://www.qrz.com/db/OE3AAA, Blatt bleibt zu
zwei Tipps -> Blatt auf, "OE3AAA" im Feld, Dupe-Zeile "NEU — noch
nie gearbeitet", QRZ NICHT aufgerufen
unten am Strich -> 14.074.000 wird zu 14.056.000 (der Spot liegt
18 kHz tiefer), Blatt bleibt zu
43 Pruefpunkte in pruefe-spots.mjs (10 neue fuer die Schrifttreffer),
darunter die Trennung selbst: tief unten am Strich meldet der
Schrifttreffer nichts, der Strichtreffer sehr wohl.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Betreiber am 2026-10-05, am echten Telefon: „die spots stehen aber sehr weit
oben, so kann man diese nicht komplett sehen" — und zwei Wünsche dazu: einmal
tippen soll QRZ öffnen, zweimal ins Logblatt übernehmen.
Der Fehler
Ich hatte die Schriftgrundlinie als Oberkante behandelt.
fillTextzeichnetnach oben von der Grundlinie weg; mit Grundlinie 4 stand die obere Hälfte
jedes Rufzeichens außerhalb des Canvas. Im Werkzeugbrowser fiel das nicht auf,
weil dort mehr Platz über dem Panadapter ist — am Telefon ist er 96 Punkte
hoch.
Jetzt wird die Höhe über der Grundlinie gemessen
(
measureText(...).actualBoundingBoxAscent) statt geschätzt. Nachgemessen inden Rohbytes des Canvas: die Schrift belegt die Zeilen 2 bis 8 von 96 —
vollständig im Bild, mit Luft zum Rand.
Auf der Schrift steht das Rufzeichen
Auf dem Strich steht die Frequenz, auf der Schrift das Rufzeichen. Wer beides
auf denselben Tipp legt, muss sich für eines entscheiden und nimmt dem Bediener
das andere weg. Darum zwei getrennte Trefferprüfungen:
noopener— sonst bekäme die fremde Seite überwindow.openereinen Griff auf diese hier)Der einzelne Tipp wartet 280 ms, ob ein zweiter kommt; anders ist beides auf
einem Telefon nicht zu unterscheiden.
Geprüft wird gegen den Kasten, den das Zeichnen gesetzt hat (
m.kasten),nicht gegen eine zweite Rechnung — zwei Rechnungen laufen auseinander, und dann
trifft der Finger etwas anderes als das Auge sieht.
Das eingetragene Rufzeichen löst die Dupe-Abfrage ausdrücklich aus: sie
hängt am
input-Ereignis, und von Hand gesetzte Werte lösen das nicht aus.Ohne diese Zeile stünde das Rufzeichen da und niemand hätte nachgesehen, ob es
schon im Logbuch steht.
Live belegt
43 Prüfpunkte in
pruefe-spots.mjs(10 neue), darunter die Trennung selbst:tief unten am Strich meldet der Schriftreffer nichts, der Strichtreffer sehr
wohl.
🤖 Generated with Claude Code