+
Waiting for server decode
diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/aprs.js b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/aprs.js
index 389c4f7..5dcdde0 100644
--- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/aprs.js
+++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/aprs.js
@@ -72,10 +72,15 @@ function addAprsPacket(pkt) {
}
}
-document.getElementById("aprs-clear-btn").addEventListener("click", () => {
+document.getElementById("aprs-decode-toggle-btn").addEventListener("click", async () => {
+ try { await postPath("/toggle_aprs_decode"); } catch (e) { console.error("APRS toggle failed", e); }
+});
+
+document.getElementById("aprs-clear-btn").addEventListener("click", async () => {
aprsPacketsEl.innerHTML = "";
aprsPacketHistory = [];
saveSetting("aprsPackets", []);
+ try { await postPath("/clear_aprs_decode"); } catch (e) { console.error("APRS clear failed", e); }
});
// Restore saved packets and map markers on page load
diff --git a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/cw.js b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/cw.js
index 8a03536..1b5820f 100644
--- a/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/cw.js
+++ b/src/trx-client/trx-frontend/trx-frontend-http/assets/web/plugins/cw.js
@@ -6,8 +6,13 @@ const cwToneInput = document.getElementById("cw-tone");
const cwSignalIndicator = document.getElementById("cw-signal-indicator");
const CW_MAX_LINES = 200;
-document.getElementById("cw-clear-btn").addEventListener("click", () => {
+document.getElementById("cw-decode-toggle-btn").addEventListener("click", async () => {
+ try { await postPath("/toggle_cw_decode"); } catch (e) { console.error("CW toggle failed", e); }
+});
+
+document.getElementById("cw-clear-btn").addEventListener("click", async () => {
cwOutputEl.innerHTML = "";
+ try { await postPath("/clear_cw_decode"); } catch (e) { console.error("CW clear failed", e); }
});
// --- Server-side CW decode handler ---
diff --git a/src/trx-client/trx-frontend/trx-frontend-http/src/api.rs b/src/trx-client/trx-frontend/trx-frontend-http/src/api.rs
index 4b76640..222ec52 100644
--- a/src/trx-client/trx-frontend/trx-frontend-http/src/api.rs
+++ b/src/trx-client/trx-frontend/trx-frontend-http/src/api.rs
@@ -264,6 +264,38 @@ pub async fn set_tx_limit(
send_command(&rig_tx, RigCommand::SetTxLimit(query.limit)).await
}
+#[post("/toggle_aprs_decode")]
+pub async fn toggle_aprs_decode(
+ state: web::Data
>,
+ rig_tx: web::Data>,
+) -> Result {
+ let enabled = state.get_ref().borrow().aprs_decode_enabled;
+ send_command(&rig_tx, RigCommand::SetAprsDecodeEnabled(!enabled)).await
+}
+
+#[post("/toggle_cw_decode")]
+pub async fn toggle_cw_decode(
+ state: web::Data>,
+ rig_tx: web::Data>,
+) -> Result {
+ let enabled = state.get_ref().borrow().cw_decode_enabled;
+ send_command(&rig_tx, RigCommand::SetCwDecodeEnabled(!enabled)).await
+}
+
+#[post("/clear_aprs_decode")]
+pub async fn clear_aprs_decode(
+ rig_tx: web::Data>,
+) -> Result {
+ send_command(&rig_tx, RigCommand::ResetAprsDecoder).await
+}
+
+#[post("/clear_cw_decode")]
+pub async fn clear_cw_decode(
+ rig_tx: web::Data>,
+) -> Result {
+ send_command(&rig_tx, RigCommand::ResetCwDecoder).await
+}
+
pub fn configure(cfg: &mut web::ServiceConfig) {
cfg.service(index)
.service(status_api)
@@ -277,6 +309,10 @@ pub fn configure(cfg: &mut web::ServiceConfig) {
.service(set_mode)
.service(set_ptt)
.service(set_tx_limit)
+ .service(toggle_aprs_decode)
+ .service(toggle_cw_decode)
+ .service(clear_aprs_decode)
+ .service(clear_cw_decode)
.service(crate::server::audio::audio_ws)
.service(favicon)
.service(logo)
@@ -405,6 +441,8 @@ async fn wait_for_view(mut rx: watch::Receiver) -> Result