[feat](trx-rs): add marine mode scaffolding and VDES fallback

Keep weak VDES bursts visible by emitting unsynced diagnostic frames instead of dropping them, remove receiver badges from FT8 and WSPR history rows, and carry the current MARINE composite-mode scaffolding through the shared mode enums and backend mappings.

Co-authored-by: OpenAI Codex <codex@openai.com>
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com>
This commit is contained in:
2026-03-03 00:54:31 +01:00
parent 40b235e030
commit c8d81ed353
12 changed files with 85 additions and 20 deletions
@@ -34,10 +34,7 @@ function renderFt8Row(msg) {
const rfHz = Number.isFinite(msg.freq_hz) && Number.isFinite(baseHz) ? (baseHz + msg.freq_hz) : null;
const freq = Number.isFinite(rfHz) ? rfHz.toFixed(0) : "--";
const renderedMessage = renderFt8Message(rawMessage);
const receiverHtml = msg.receiver
? `<span class="decode-rig-badge" style="--decode-rig-color:${msg.receiver.color};">${msg.receiver.label}</span>`
: "";
row.innerHTML = `<span class="ft8-time">${fmtTime(msg.ts_ms)}</span>${receiverHtml}<span class="ft8-snr">${snr}</span><span class="ft8-dt">${dt}</span><span class="ft8-freq">${freq}</span><span class="ft8-msg">${renderedMessage}</span>`;
row.innerHTML = `<span class="ft8-time">${fmtTime(msg.ts_ms)}</span><span class="ft8-snr">${snr}</span><span class="ft8-dt">${dt}</span><span class="ft8-freq">${freq}</span><span class="ft8-msg">${renderedMessage}</span>`;
applyFt8FilterToRow(row);
return row;
}
@@ -34,10 +34,7 @@ function renderWsprRow(msg) {
const freq = Number.isFinite(rfHz) ? rfHz.toFixed(0) : "--";
const message = (msg.message || "").toString();
row.dataset.message = message.toUpperCase();
const receiverHtml = msg.receiver
? `<span class="decode-rig-badge" style="--decode-rig-color:${msg.receiver.color};">${msg.receiver.label}</span>`
: "";
row.innerHTML = `<span class="ft8-time">${fmtWsprTime(msg.ts_ms)}</span>${receiverHtml}<span class="ft8-snr">${snr}</span><span class="ft8-dt">${dt}</span><span class="ft8-freq">${freq}</span><span class="ft8-msg">${escapeWsprHtml(message)}</span>`;
row.innerHTML = `<span class="ft8-time">${fmtWsprTime(msg.ts_ms)}</span><span class="ft8-snr">${snr}</span><span class="ft8-dt">${dt}</span><span class="ft8-freq">${freq}</span><span class="ft8-msg">${escapeWsprHtml(message)}</span>`;
applyWsprFilterToRow(row);
return row;
}