feat(udp): speak WSJT-X to Logger32, and lighten Sahara

"sent 1153 bytes to 127.0.0.1:2250" and nothing in Logger32. Both true: the
line the operator screenshotted is titled "Setup additional WSJT/JTDX UDP
sockets", and those receivers take UDP LOGGING PACKETS — the WSJT-X v2
protocol. A bare ADIF record posted to them is dropped without a word.

So there is a new outbound service rather than a change to the existing one:
"WSJT-X logged QSO (Logger32)" sends the same ADIF wrapped in a Logged ADIF
datagram (magic 0xadbccbda, schema 2, type 12), defaulting to port 2250. The
plain-text row stays for JTAlert/GridTracker-style receivers, because the two
really are different wire formats and one row cannot be both.

The id string is "OpsLog", not "WSJT-X": a receiver uses it to tell instances
apart, and impersonating the real thing would make a second WSJT-X
indistinguishable from us.

Tested both ways — the header byte for byte, and a round trip back through our
own ParseWSJT, since that is the same decoding every receiver applies.

Sahara moves to the parchment an operator asked for: page #e6ded0, panels
#f3eee2, toolbars #ded5c4, terracotta #c4501e on the buttons and the focus
ring. Lighter and less saturated than the deep sand it was.
This commit is contained in:
2026-08-14 17:51:31 +02:00
parent c5c9d355ec
commit d95c998081
10 changed files with 165 additions and 32 deletions
+6 -2
View File
@@ -11,7 +11,9 @@
"UDP: an ADIF listener sharing a port with a WSJT source logged a line per decode — hundreds of them. It now says what the traffic really is, once, and how to fix it.",
"QSL Manager, paper QSL: the route is set per direction — bureau, direct or electronic, beside the sent status and beside the received one — and applies to the whole selection at once.",
"Motorized antenna: when the controller settles somewhere other than where it was told, the log says so — that reads as “the antenna stopped responding” otherwise.",
"UDP: an outbound message now logs that it was sent, and a logged QSO with no outbound ADIF row configured says so once."
"UDP: an outbound message now logs that it was sent, and a logged QSO with no outbound ADIF row configured says so once.",
"UDP: new outbound “WSJT-X logged QSO” for Logger32 — its extra UDP sockets speak the WSJT-X protocol and silently ignore plain-text ADIF.",
"Appearance: the Sahara theme is lighter, parchment rather than deep sand, with a terracotta accent."
],
"fr": [
"Envoi de spot : le commentaire porte désormais les références de diplôme après le mode — celles que vous avez attribuées (POTA, SOTA, IOTA…), pas le DXCC, la zone et le préfixe que chacun déduit de lindicatif. Un auto-spot porte VOS références dactivation.",
@@ -22,7 +24,9 @@
"UDP : un écouteur ADIF partageant un port avec une source WSJT écrivait une ligne par décodage — des centaines. Il dit maintenant ce quest vraiment ce trafic, une fois, et comment le corriger.",
"Gestionnaire QSL, QSL papier : la voie se règle par sens — bureau, direct ou électronique, à côté du statut envoyé et à côté du statut reçu — et sapplique à toute la sélection dun coup.",
"Antenne motorisée : quand le contrôleur se fixe ailleurs que là où on la envoyé, le journal le dit — sans quoi cela ressemble à une antenne qui ne répond plus.",
"UDP : un message sortant inscrit désormais son envoi dans le journal, et un QSO enregistré sans ligne ADIF sortante le signale une fois."
"UDP : un message sortant inscrit désormais son envoi dans le journal, et un QSO enregistré sans ligne ADIF sortante le signale une fois.",
"UDP : nouvelle sortie « QSO enregistré WSJT-X » pour Logger32 — ses sockets UDP supplémentaires parlent le protocole WSJT-X et ignorent lADIF en texte brut.",
"Apparence : le thème Sahara s’éclaircit, parchemin plutôt que sable profond, avec un accent terre cuite."
]
},
{