From b365d988a42ba468bc663f3d59043f75bc245fa2 Mon Sep 17 00:00:00 2001 From: Michael Morgan <84428382+aa5sh@users.noreply.github.com> Date: Sat, 28 Jun 2025 08:08:59 -0500 Subject: [PATCH] FlexCW Added the option to send CW using CWX commands on Flex's. --- rigs/flexradio/smartsdr.c | 28 ++++++++++++++++++++++++++++ rigs/flexradio/smartsdr_caps.h | 2 ++ 2 files changed, 30 insertions(+) diff --git a/rigs/flexradio/smartsdr.c b/rigs/flexradio/smartsdr.c index e91cab9c0..16c8402ab 100644 --- a/rigs/flexradio/smartsdr.c +++ b/rigs/flexradio/smartsdr.c @@ -45,6 +45,8 @@ static int smartsdr_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width); static int smartsdr_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width); +static int smartsdr_send_morse(RIG *rig, vfo_t vfo, const char *msg); +static int smartsdr_stop_morse(RIG *rig, vfo_t vfo); //static int smartsdr_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val); struct smartsdr_priv_data @@ -619,3 +621,29 @@ int sdr1k_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) } } #endif + +int smartsdr_send_morse(RIG *rig, vfo_t vfo, const char *msg) +{ + int buf_len; + buf_len = strlen(msg) + 12; + char cmd[buf_len]; + ENTERFUNC; + + sprintf(cmd, "cwx send \"%s\"", msg); + smartsdr_transaction(rig, cmd); + + RETURNFUNC(RIG_OK); + +} + +int smartsdr_stop_morse(RIG *rig, vfo_t vfo) +{ + char cmd[64]; + ENTERFUNC; + + sprintf(cmd, "cwx clear"); + smartsdr_transaction(rig, cmd); + + RETURNFUNC(RIG_OK); + +} \ No newline at end of file diff --git a/rigs/flexradio/smartsdr_caps.h b/rigs/flexradio/smartsdr_caps.h index 4736412f2..ca6487a94 100644 --- a/rigs/flexradio/smartsdr_caps.h +++ b/rigs/flexradio/smartsdr_caps.h @@ -75,4 +75,6 @@ // .reset = smartsdr_reset, // .set_level = smartsdr_set_level, // .set_func = _set_func, + .send_morse = smartsdr_send_morse, + .stop_morse = smartsdr_stop_morse, .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS