[fix](trx-frontend-http): drop bidirectional requirement for decode paths
The bidirectional check required both A→B and B→A directed messages to draw a contact line, which was too strict — the receiver may not hear both sides of a QSO. Now a decode path is drawn whenever a directed message is decoded and the target's locator is known from any message in the 24 h history window. Also rename "Longest QSOs" → "Longest decode paths" and update related UI labels to better reflect what is actually shown. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -6319,11 +6319,7 @@ function rebuildDecodeContactPaths() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Index directed messages by "SOURCE::TARGET" for QSO (bidirectional) check
|
|
||||||
const directedPairs = new Set(directedMessages.map((m) => `${m.source}::${m.target}`));
|
|
||||||
for (const msg of directedMessages) {
|
for (const msg of directedMessages) {
|
||||||
// A true QSO requires both A→B and B→A directed messages
|
|
||||||
if (!directedPairs.has(`${msg.target}::${msg.source}`)) continue;
|
|
||||||
const targetLocator = stationLocators.get(msg.target);
|
const targetLocator = stationLocators.get(msg.target);
|
||||||
if (!targetLocator) continue;
|
if (!targetLocator) continue;
|
||||||
if (msg.sourceGrid === targetLocator.grid) continue;
|
if (msg.sourceGrid === targetLocator.grid) continue;
|
||||||
|
|||||||
@@ -752,7 +752,7 @@
|
|||||||
<div class="map-locator-phase-row">
|
<div class="map-locator-phase-row">
|
||||||
<button type="button" id="map-p2p-paths-toggle" class="map-locator-phase-btn">TRX Paths On</button>
|
<button type="button" id="map-p2p-paths-toggle" class="map-locator-phase-btn">TRX Paths On</button>
|
||||||
<button type="button" id="map-contact-paths-toggle" class="map-locator-phase-btn">Contact Paths On</button>
|
<button type="button" id="map-contact-paths-toggle" class="map-locator-phase-btn">Contact Paths On</button>
|
||||||
<span class="map-locator-empty">TRX paths on popup, directed contact paths when both locators are known</span>
|
<span class="map-locator-empty">TRX paths on popup, directed decode paths when target locator is known</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -766,8 +766,8 @@
|
|||||||
<section class="map-qso-summary" aria-labelledby="map-qso-summary-title">
|
<section class="map-qso-summary" aria-labelledby="map-qso-summary-title">
|
||||||
<div class="map-qso-summary-head">
|
<div class="map-qso-summary-head">
|
||||||
<div>
|
<div>
|
||||||
<div id="map-qso-summary-title" class="map-qso-summary-title">Longest QSOs</div>
|
<div id="map-qso-summary-title" class="map-qso-summary-title">Longest decode paths</div>
|
||||||
<div class="map-qso-summary-subtitle">Top 5 directed decode contacts in the current map view</div>
|
<div class="map-qso-summary-subtitle">Top 5 directed decode paths in the current map view</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="map-qso-summary-list" class="map-qso-summary-list"></div>
|
<div id="map-qso-summary-list" class="map-qso-summary-list"></div>
|
||||||
|
|||||||
Reference in New Issue
Block a user