From 6115a6ddf1001456c319f7e5d88e38da99f01ff8 Mon Sep 17 00:00:00 2001 From: markjfine Date: Thu, 5 Jun 2025 18:35:27 -0400 Subject: [PATCH] Fix NB and NB2 used by 535 and 545 JRC uses one command to switch between NB and NB2. Combined both in the get and set switch blocks to better accommodate this. --- rigs/jrc/jrc.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/rigs/jrc/jrc.c b/rigs/jrc/jrc.c index 91b9378d7..8f24f1e41 100644 --- a/rigs/jrc/jrc.c +++ b/rigs/jrc/jrc.c @@ -466,6 +466,7 @@ int jrc_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) int jrc_set_func(RIG *rig, vfo_t vfo, setting_t func, int status) { char cmdbuf[BUFSZ]; + int blanker; /* Optimize: * sort the switch cases with the most frequent first @@ -479,11 +480,18 @@ int jrc_set_func(RIG *rig, vfo_t vfo, setting_t func, int status) return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); case RIG_FUNC_NB: - /* FIXME: NB1 and NB2 */ - SNPRINTF(cmdbuf, sizeof(cmdbuf), "N%d" EOM, status ? 1 : 0); - + case RIG_FUNC_NB2: + if (!status) + blanker = 0; + else if (func == RIG_FUNC_NB) + blanker = 1; + else if (func == RIG_FUNC_NB2) + blanker = 2; + + SNPRINTF(cmdbuf, sizeof(cmdbuf), "N%d" EOM, blanker); + return jrc_transaction(rig, cmdbuf, strlen(cmdbuf), NULL, NULL); - + /* * FIXME: which BB mode for NR and BC at same time ? */ @@ -555,7 +563,7 @@ int jrc_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status) return RIG_OK; case RIG_FUNC_NB: - /* FIXME: NB1 and NB2 */ + case RIG_FUNC_NB2: retval = jrc_transaction(rig, "N" EOM, 2, funcbuf, &func_len); if (retval != RIG_OK) @@ -570,7 +578,7 @@ int jrc_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status) return -RIG_ERJCTED; } - *status = funcbuf[1] != '0'; + *status = (((func == RIG_FUNC_NB) && (funcbuf[1] == '1')) || ((func == RIG_FUNC_NB2) && (funcbuf[1] == '2'))); return RIG_OK; @@ -1679,4 +1687,3 @@ DECLARE_INITRIG_BACKEND(jrc) return RIG_OK; } -