From 0c94ba468ac1cd5e03de2e948784ad5e83bf5f11 Mon Sep 17 00:00:00 2001 From: aa5sh <84428382+aa5sh@users.noreply.github.com> Date: Thu, 3 Jul 2025 00:21:50 -0500 Subject: [PATCH] smartsdr--CWX Updates Needed to replace spaces with 0x7f characters. --- rigs/flexradio/smartsdr.c | 23 +++++++++++++++++------ rigs/flexradio/smartsdr_caps.h | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/rigs/flexradio/smartsdr.c b/rigs/flexradio/smartsdr.c index b61da374a..8cb105e0f 100644 --- a/rigs/flexradio/smartsdr.c +++ b/rigs/flexradio/smartsdr.c @@ -624,17 +624,28 @@ int sdr1k_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) int smartsdr_send_morse(RIG *rig, vfo_t vfo, const char *msg) { - int buf_len; - int retval; - buf_len = strlen(msg) + 12; - char cmd[buf_len]; ENTERFUNC; - sprintf(cmd, "cwx send \"%s\"", msg); + int retval; + size_t msg_len = strlen(msg); + size_t buf_len = msg_len + 20; + + char newmsg[msg_len + 1]; + strncpy(newmsg, msg, msg_len + 1); + + // Replace spaces with 0x7f + for (size_t i = 0; newmsg[i] != '\0'; i++) { + if (newmsg[i] == ' ') { + newmsg[i] = 0x7f; + } + } + + char cmd[buf_len]; + snprintf(cmd, sizeof(cmd), "cwx send \"%s\"", newmsg); + retval = smartsdr_transaction(rig, cmd); RETURNFUNC(retval); - } int smartsdr_stop_morse(RIG *rig, vfo_t vfo) diff --git a/rigs/flexradio/smartsdr_caps.h b/rigs/flexradio/smartsdr_caps.h index ca6487a94..8aaa487e9 100644 --- a/rigs/flexradio/smartsdr_caps.h +++ b/rigs/flexradio/smartsdr_caps.h @@ -77,4 +77,4 @@ // .set_func = _set_func, .send_morse = smartsdr_send_morse, .stop_morse = smartsdr_stop_morse, - .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS + .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS \ No newline at end of file