Skip to content

FT8/FT4: eine falsch gehende Uhr sieht nicht mehr aus wie ein totes Band - #448

Merged
oe5sos merged 2 commits into
mainfrom
feat/ft8-uhrversatz
Nov 13, 2026
Merged

oe5sos merged 2 commits into
mainfrom
feat/ft8-uhrversatz

Conversation

@oe5sos

@oe5sos oe5sos commented Nov 13, 2026

Copy link
Copy Markdown
Owner

Warum

FT8 steht und fällt mit der Uhr. Der Dekoder sucht den Anfang nur in einem schmalen Band um die Null (ft8_lib decode.c:205: −10 bis +19 Symbole; bei FT8 sind das −1,60 bis +3,04 s, bei FT4 nur −0,48 bis +0,91 s).

Geht die Rechneruhr falsch, fällt der Empfang nicht auf einmal aus. Erst verschwinden die schwachen Funde, dann halbe Perioden, zuletzt alles. Von innen sieht das aus wie ein totes Band — und genau diese Verwechslung kostet einen Abend.

WSJT-X zeigt DT je Zeile und urteilt nicht; JTDX zeigt einen laufenden Mittelwert. Beides überlässt dem Betreiber das Rechnen.

Was neu ist

Ft8Uhrversatz (src/core/, Longpath-original) misst den gemeinsamen Anteil der Zeitversätze:

  • Zweimal Median — über die Funde einer Periode und über die Perioden. Eine einzelne Gegenstation kann selbst eine schlechte Uhr haben; darüber sagt sie nichts. Ein Mittelwert über vier saubere Funde plus einen bei +2,6 s läge bei 0,66 s und färbte die Anzeige.
  • Eine Periode zählt erst ab zwei Funden, ein Urteil gibt es erst ab drei Perioden. Lieber eine Minute schweigen als einmal falsch warnen: wer gewarnt wird und seine Uhr in Ordnung findet, sieht beim nächsten Mal weg.
  • FT4 warnt früher — dieselben Symbolzahlen bei 0,048 s statt 0,16 s Symboldauer, also ein Drittel Spielraum.
  • Das Fenster wandert (8 Perioden): wer seine Uhr stellt, sieht die Warnung von selbst verschwinden.

Das Schild steht neben der Fundzahl — dorthin sieht, wer sich fragt, ob überhaupt etwas ankommt. Messing (kAmberWarn), nicht Rot: ein Hinweis, kein Alarm. Im Normalfall steht dort nichts; eine Zeile, die immer da ist, liest nach drei Tagen niemand mehr. Der Hilfetext nennt die gemessene Zahl und das Suchfenster, damit man nachrechnen kann statt glauben zu müssen.

Sie stellt keine Uhr. Das ist Sache des Betriebssystems.

Geprüft

23 Fälle grün, offscreen — mehr Gegenproben als Nachweise. Drei Gegenproben gefahren, jede traf genau ihren Fall:

stillgelegt fiel
Median → Mittelwert eineSchlechteGegenstationKipptNichts
kMindestFunde 2 → 1 einzelneFundeZaehlenNicht
zeigeUhrversatz() abgeklemmt beide Panel-Fälle (Schild sagt: '')

Die vier Panel-Fälle fahren die Strecke über periodeForTest — denselben Weg, den ein echter Fund nimmt —, nicht nur die Rechnung. Dazu tst_ft8_locatorjagd, tst_ft8_plaetze_panel, tst_ft8_dekodiert, tst_ft8_apriori: 5/5.

Ein Blatt zum Ansehen entsteht mit LONGPATH_GRAB_DIR.

🤖 Generated with Claude Code

oe5sos and others added 2 commits November 13, 2026 16:55
FT8 steht und faellt mit der Uhr. Der Dekoder sucht den Anfang nur
in einem schmalen Band um die Null (ft8_lib decode.c:205: -10 bis
+19 Symbole; bei FT8 sind das -1,60 bis +3,04 s, bei FT4 nur -0,48
bis +0,91 s). Geht die Rechneruhr falsch, faellt der Empfang NICHT
auf einmal aus -- erst die schwachen Funde, dann halbe Perioden,
zuletzt gar nichts. Von innen sieht das aus wie ein totes Band.

Neu: Ft8Uhrversatz (src/core/) misst den gemeinsamen Anteil der
Zeitversaetze. Zweimal Median -- ueber die Funde EINER Periode und
ueber die Perioden -- weil eine einzelne Gegenstation selbst eine
schlechte Uhr haben kann und darueber nichts aussagt. Eine Periode
zaehlt erst ab zwei Funden, ein Urteil gibt es erst ab drei
Perioden: lieber eine Minute schweigen als einmal falsch warnen.

Das Schild steht neben der Fundzahl -- dorthin sieht, wer sich
fragt, ob ueberhaupt etwas ankommt. Messing, nicht Rot: ein Hinweis,
kein Alarm. Im Normalfall steht dort NICHTS; eine Zeile, die immer
da ist, liest nach drei Tagen niemand mehr.

Sie stellt keine Uhr. Das ist Sache des Betriebssystems.

23 Faelle gruen, offscreen. Drei Gegenproben gefahren und jede traf
genau ihren Fall: Mittelwert statt Median faellt bei der schlechten
Gegenstation, kMindestFunde=1 faellt bei den Einzelfunden, und ohne
zeigeUhrversatz() bleiben die Panel-Faelle leer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Die Sichtreihe traegt sechs Pillen, die Fundzahl und seit dem
vorigen Stand das Schild. Das ist die Stelle, an der bei schmalem
Fenster etwas verschwindet -- und das Erste waere die Zahl, auf die
der Betreiber sieht.

Gemessen: das Panel laesst sich nicht unter rund 700 Punkte
druecken (die Pillenreihe setzt die Untergrenze), und dort stehen
Fundzahl und Schild GENAU auf ihrem sizeHint (80 und 156). Ein
QLabel kuerzt nicht, es schneidet -- der Fall vergleicht darum
width() gegen sizeHint().width() statt bloss zu pruefen, ob beide
sichtbar sind.

24 Faelle gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@oe5sos
oe5sos merged commit 56acfd3 into main Nov 13, 2026
12 checks passed
@oe5sos
oe5sos deleted the feat/ft8-uhrversatz branch November 13, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant