Skip to content

Chatraum sichtbar machen, Kurzwelle aus dem UKW-Chat filtern - #17

Merged
oe5sos merged 4 commits into
mainfrom
fix/chat-raum-und-kurzwelle
Sep 29, 2026
Merged

oe5sos merged 4 commits into
mainfrom
fix/chat-raum-und-kurzwelle

Conversation

@oe5sos

@oe5sos oe5sos commented Sep 29, 2026

Copy link
Copy Markdown
Owner

Martin, 2026-09-29, mit Bild: „im chatroom 144 sind kurzwelleneinträge, bitte kontrolliere ob dieser chat auch wirklich den raum ändert."

Der Raum

Gesetzt wird er beim Login (LOGINC|…|chat_id|, bestätigt mit LOGSTAT|100|chat_id|). switchRoom() schickt dagegen /CHAT 144 — das steht so in der wtKST-Doku, die dieser Client selbst als „not verified live" kennzeichnet, und ist bis heute nicht nachgeprüft.

Statt weiter zu glauben, wird jetzt gemessen: der Client liest die chat_id aus jeder eingehenden CH|/CR|-Zeile. Im Chatkopf steht beides nebeneinander — welcher Raum angefordert wurde und aus welchem die Zeilen kommen. Weichen sie ab, war der Wechsel wirkungslos.

Live zeigt es: „Raum 144 angefordert, Zeilen kommen aus Raum 2" — Raum 2 ist der 144/432-Raum, das passt; gesetzt hat ihn das Login.

Offen: ein belegter Raumwechsel bräuchte ein erneutes Login mit der gewünschten chat_id. Belegt ist nur 2 = 144/432; die übrigen IDs sind nicht bekannt und werden hier nicht geraten.

Die Kurzwelle

Die Zeilen im Bild trugen CLU, nicht KST — sie kamen vom DX-Cluster, der weltweit alles spottet, auch 1,8 und 7 MHz. Spots, deren Band der aktive Contest nicht kennt, bleiben jetzt draußen. Chatzeilen ohne Frequenz bleiben, unbekannte Bänder ebenfalls, und unter „alle Zeilen zeigen" ist alles weiter einsehbar.

107/107 grün.

🤖 Generated with Claude Code

oe5sos and others added 4 commits September 29, 2026 06:23
Martin, 2026-09-29, mit Bild: "im chatroom 144 sind
kurzwelleneinträge, bitte kontrolliere ob dieser chat auch wirklich
den raum ändert."

Zwei getrennte Dinge.

**Der Raum.** Gesetzt wird er beim Login (LOGINC|...|chat_id|,
bestätigt mit LOGSTAT|100|chat_id|). switchRoom() schickt dagegen
"/CHAT 144" -- das steht so in der wtKST-Doku, die dieser Client
selbst als "not verified live" kennzeichnet, und ist bis heute nicht
nachgeprüft. Statt weiter zu glauben, wird jetzt gemessen: On4kstClient
liest die chat_id aus jeder eingehenden CH|/CR|-Zeile und meldet sie
als roomObserved(). Im Chatkopf steht beides nebeneinander -- welcher
Raum angefordert wurde und aus welchem die Zeilen kommen. Weichen sie
ab, war der Wechsel wirkungslos, und man sieht es sofort. Live zeigt
es derzeit: "Raum 144 angefordert, Zeilen kommen aus Raum 2" -- Raum 2
ist der 144/432-Raum, das passt, gesetzt hat ihn das Login.

**Die Kurzwelle.** Die Zeilen im Bild trugen CLU, nicht KST: sie kamen
vom DX-Cluster, der weltweit alles spottet, auch 1,8 und 7 MHz. In
einem UKW-Contest kann einen das nicht erreichen -- genau der Fall,
den der Filter abdecken soll. Spots, deren Band der aktive Contest
nicht kennt, bleiben jetzt draußen. Eine Chatzeile OHNE Frequenz
bleibt (über die sagt die Frequenz nichts), ein unbekanntes Band
ebenso, und unter "alle Zeilen zeigen" ist alles weiter einsehbar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Martin, 2026-09-29: "bitte kontrolliere ob dieser chat auch wirklich
den raum ändert." Nein, tat er nicht: switchRoom() schickte
"/CHAT 144" aus einer Doku, die dieser Client selbst als ungeprüft
führt. Einen Raum setzt bei ON4KST nur das Login (LOGINC|...|chat_id|,
bestätigt mit LOGSTAT|100|chat_id|).

Also meldet sich der Client jetzt mit der gewünschten Raumnummer neu
an. Am Prüfstand belegt: nach switchRoom(3) kommt beim Server
"LOGINC|...|3|" an, die folgenden Zeilen tragen Raum 3, und
roomObserved() meldet ihn. Derselbe Raum noch einmal löst KEIN
zweites Login aus, sonst risse jeder Bandabgleich die Verbindung ohne
Not ab.

Dabei zwei Fallen:

- Ein connectToHost() auf einem Socket, der gerade zumacht, wird
  stillschweigend verworfen -- der Socket ging brav in
  ConnectingState, beim Server kam aber nie etwas an. Der Neuaufbau
  hängt jetzt am disconnected-Signal, und abort() steht mit im
  verzögerten Teil.

- Der PRÜFSTAND selbst war kaputt: der Mock-Server schrieb alles, was
  nach dem ersten CK| ankam, nur noch in einen Puffer und parste es
  nicht mehr. Ein zweites LOGINC sah er nie. Er hätte jeden
  Raumwechsel für kaputt erklärt, egal wie richtig der Code ist.

Das Menü führt die Räume jetzt unter ihrer chat_id (1 = 50/70,
2 = 144/432, 3 = Mikrowelle, 4 = EME, 5 = Kurzwelle). Belegt ist
davon nur die 2; ob eine andere Nummer den erwarteten Raum trifft,
zeigt nach dem Wechsel der Chatkopf.

Dazu eine Mitschrift für die Fehlersuche: CP_KST_MITSCHRIFT=<pfad>
schreibt jede Protokollzeile roh mit. Ohne die Variable passiert
nichts.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Live erlebt am 2026-09-29: nach etlichen Neustarts blieb die
Statusleiste grau und der Chat leer -- bis zum nächsten
Programmstart. Der Grund stand im Code: JEDER Login-Fehlercode außer
100 galt als endgültig ("stop hammering it"). Gedacht war das gegen
falsche Zugangsdaten, es trifft aber genauso den vorübergehenden
Fall: Sitzung noch offen, Server überlastet, Netz kurz weg. Mitten im
Contest ist ein stiller Chat schlimmer als ein Versuch alle paar
Minuten.

Welcher Code was bedeutet, ist nicht belegt (nur 100 = Erfolg), also
wird nicht geraten, sondern langsam weiterprobiert: erster neuer
Anlauf nach einer Minute, dann verdoppelnd bis zehn. Kein Hämmern,
und der Chat kommt von allein wieder, sobald der Grund weg ist.

Prüfstand mit Gegenprobe: der Mock weist den ersten Login ab, danach
muss ein neuer Anlauf anstehen; mit der alten Fassung steht keiner an
und der Test ist rot.

Dabei ein eigener Fehler im Prüfstand: allein gelaufen war er grün,
in der Reihe rot. Der neue Anlauf wird erst gestellt, wenn die
Leitung wirklich unten ist -- sofort danach zu prüfen war ein
Zeitfehler im Prüfstand, nicht im Programm. Jetzt wartet er darauf.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Martin, 2026-09-29, mit Bild: "kann nicht anklicken". Das ganze
Raummenü hing an "angemeldet", und angemeldet war er gerade nicht:
ON4KST war an dem Morgen schlicht nicht erreichbar (aus seiner
eigenen Shell: "connectx to www.on4kst.org port 23001 failed:
Operation timed out"). Gerade dann will man den Raum wählen können.

Jetzt gilt die Wahl für den nächsten Anlauf -- und der wird sofort
genommen. Dazu ein Eintrag "Jetzt neu verbinden" im selben Menü,
ebenfalls immer anklickbar: bei einem stillen Chat muss man nicht
mehr das Programm neu starten. Away / Wieder da / CQ bleiben
gesperrt, solange keine Verbindung steht; die brauchen sie wirklich.

Der Prüfstand für das Menü sah bisher nur nach, dass die Einträge DA
sind. Genau das war die Lücke -- sie waren da und ließen sich nicht
anklicken. Er prüft jetzt beides. Dazu ein Prüfstand für den Weg
selbst: getrennt Raum 3 gewählt, und der Server sieht einen Login für
Raum 3.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@oe5sos
oe5sos merged commit 2528693 into main Sep 29, 2026
5 checks passed
oe5sos added a commit that referenced this pull request Sep 29, 2026
PR #17 (Chatraum, Kurzwellenfilter) ist inzwischen auf main, und
dieser Zweig hatte an denselben Stellen gearbeitet -- GitHub meldete
CONFLICTING und startete deshalb gar keine Prüfung.

Zusammengeführt statt eine Seite wegzuwerfen: der Mock kann jetzt
beides, einen Login abweisen (aus #17) und die Leitung kappen (von
hier). test_on4kstprotocol läuft mit allen zwölf Fällen beider
Zweige, die volle Suite mit 108/108.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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