From ed3c132f709b99f7d4a60bdfa1f6df77638d96e7 Mon Sep 17 00:00:00 2001 From: Gregory Salaun Date: Thu, 13 Aug 2026 09:13:27 +0200 Subject: [PATCH] chore(udp): log the ADIF record, not just its size "Was the grid in what WSJT-X sent, or did OpsLog put it there?" is the first question asked when a contact is logged in the wrong square, and a byte count cannot answer it. An expedition logged at its licence holder's home QTH stayed undiagnosable for exactly that reason. One line per QSO, around 280 bytes, whitespace collapsed so the record sits on a single line. --- app.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app.go b/app.go index 68d873c..64e3b39 100644 --- a/app.go +++ b/app.go @@ -12133,7 +12133,13 @@ func (a *App) consumeUDPEvents() { }) } case ev.LoggedADIF != "": - applog.Printf("udp: emit udp:logged_qso (%d bytes ADIF)\n", len(ev.LoggedADIF)) + // The RECORD, not just its size. "Was the grid in what WSJT-X sent, or + // did OpsLog put it there?" is the first question asked when a contact + // is logged in the wrong square, and a byte count cannot answer it — + // an expedition logged at its licence holder's home QTH stayed + // undiagnosable for exactly that reason. One line per QSO, ~280 bytes. + applog.Printf("udp: emit udp:logged_qso (%d bytes) %s\n", + len(ev.LoggedADIF), strings.Join(strings.Fields(ev.LoggedADIF), " ")) wruntime.EventsEmit(a.ctx, "udp:logged_qso", map[string]any{ "config_id": ev.ConfigID, "service": string(ev.Service),