From adadcb4a778582ac14d2d8270d53cd0b56b78159 Mon Sep 17 00:00:00 2001 From: Stan Grams Date: Sat, 28 Feb 2026 12:01:27 +0100 Subject: [PATCH] [fix](trx-backend-soapysdr,trx-frontend-http): preserve raw rds ps text Co-authored-by: Codex Signed-off-by: Stan Grams --- .../trx-frontend-http/assets/web/app.js | 13 ++++++------- .../trx-backend/trx-backend-soapysdr/src/lib.rs | 3 --- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js index 66a6e63..4a327e2 100644 --- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js +++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/app.js @@ -3182,10 +3182,9 @@ function clearSpectrumCanvas() { } function formatOverlayPs(ps) { - const padded = String(ps ?? "") + return String(ps ?? "") .slice(0, 8) - .padEnd(8, " "); - return padded.replaceAll(" ", "_"); + .padEnd(8, "_"); } function formatOverlayPi(pi) { @@ -3199,8 +3198,8 @@ function formatOverlayPty(pty) { } async function copyRdsPsToClipboard() { - const ps = lastSpectrumData?.rds?.program_service?.trim(); - if (!ps) { + const ps = lastSpectrumData?.rds?.program_service; + if (!ps || ps.length === 0) { showHint("No RDS PS", 1200); return; } @@ -3223,8 +3222,8 @@ if (rdsPsValueEl) { function updateRdsPsOverlay(rds) { // Overview strip overlay if (rdsPsOverlay) { - const ps = rds?.program_service?.trim(); - if (ps) { + const ps = rds?.program_service; + if (ps && ps.length > 0) { rdsPsOverlay.innerHTML = `${escapeMapHtml(formatOverlayPs(ps))}` + `${escapeMapHtml(formatOverlayPi(rds?.pi))} ยท ${escapeMapHtml(formatOverlayPty(rds?.pty))}`; diff --git a/src/trx-server/trx-backend/trx-backend-soapysdr/src/lib.rs b/src/trx-server/trx-backend/trx-backend-soapysdr/src/lib.rs index a656134..65ae832 100644 --- a/src/trx-server/trx-backend/trx-backend-soapysdr/src/lib.rs +++ b/src/trx-server/trx-backend/trx-backend-soapysdr/src/lib.rs @@ -476,9 +476,6 @@ impl RigCat for SoapySdrRig { .channel_dsps .get(self.primary_channel_idx) .and_then(|dsp| dsp.lock().ok().and_then(|d| d.rds_data())); - if let Some(ref r) = rds { - tracing::debug!("RDS: pi={:?} ps={:?} pty={:?}({})", r.pi, r.program_service, r.pty, r.pty_name.as_deref().unwrap_or("?")); - } Some(SpectrumData { bins, center_hz: self.center_hz.max(0) as u64,