fix(adif): a logged QSO carries its receive side
The importer has always read an absent BAND_RX/FREQ_RX as 'not split, so RX = TX'. The logging paths never did, so what a contact carried depended on which door it came in through — and it shows outside OpsLog: the record forwarded over UDP is written from the QSO as logged, so a receiver that reads BAND_RX (Log4OM does) found nothing there. Filled at AddQSO, the one funnel every path goes through, so the database, the export and the forwarded copy agree. A genuine split contact keeps what it was given — table-tested both ways.
This commit is contained in:
@@ -2948,6 +2948,28 @@ func (a *App) reloadLookupProviders() {
|
||||
|
||||
// --- QSO bindings ---
|
||||
|
||||
// fillRXDefaults stamps the receive side when the contact was not split.
|
||||
//
|
||||
// The ADIF importer has always done this — an absent BAND_RX/FREQ_RX means RX
|
||||
// equals TX — but the LOGGING paths did not, so what a QSO carried depended on
|
||||
// which door it came through. It shows up outside OpsLog: the record forwarded
|
||||
// to another logger over UDP is written from the QSO as logged, and a receiver
|
||||
// reading BAND_RX (Log4OM does) found nothing there for contacts logged by a
|
||||
// path that left it blank.
|
||||
//
|
||||
// Applied at AddQSO, the one funnel every path goes through — manual entry, the
|
||||
// WSJT-X/UDP log, CW, contest, net control, the ADIF monitor — so the database,
|
||||
// the export and the forwarded copy all say the same thing.
|
||||
func fillRXDefaults(q *qso.QSO) {
|
||||
if strings.TrimSpace(q.BandRX) == "" {
|
||||
q.BandRX = q.Band
|
||||
}
|
||||
if q.FreqRXHz == nil && q.FreqHz != nil {
|
||||
v := *q.FreqHz
|
||||
q.FreqRXHz = &v
|
||||
}
|
||||
}
|
||||
|
||||
func (a *App) AddQSO(q qso.QSO) (id int64, err error) {
|
||||
if a.qso == nil {
|
||||
return 0, fmt.Errorf("db not initialized")
|
||||
@@ -2963,6 +2985,7 @@ func (a *App) AddQSO(q qso.QSO) (id int64, err error) {
|
||||
}
|
||||
}()
|
||||
a.applyStationDefaults(&q, true)
|
||||
fillRXDefaults(&q)
|
||||
fillDistance(&q)
|
||||
a.applyDXCCNumber(&q)
|
||||
a.applyULSCounty(&q) // fill blank US county/grid from the offline ULS store
|
||||
|
||||
Reference in New Issue
Block a user