Fix K3/K3S VFOB mode/bandwidth setting

https://github.com/Hamlib/Hamlib/issues/1224
pull/1242/head
Mike Black W9MDB 2023-01-22 16:45:22 -06:00
rodzic 9b89a99f99
commit 9626894029
3 zmienionych plików z 18 dodań i 12 usunięć

Wyświetl plik

@ -190,7 +190,7 @@ const struct rig_caps k3_caps =
RIG_MODEL(RIG_MODEL_K3), RIG_MODEL(RIG_MODEL_K3),
.model_name = "K3", .model_name = "K3",
.mfg_name = "Elecraft", .mfg_name = "Elecraft",
.version = BACKEND_VER ".25", .version = BACKEND_VER ".26",
.copyright = "LGPL", .copyright = "LGPL",
.status = RIG_STATUS_STABLE, .status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER, .rig_type = RIG_TYPE_TRANSCEIVER,
@ -343,7 +343,7 @@ const struct rig_caps k3s_caps =
RIG_MODEL(RIG_MODEL_K3S), RIG_MODEL(RIG_MODEL_K3S),
.model_name = "K3S", .model_name = "K3S",
.mfg_name = "Elecraft", .mfg_name = "Elecraft",
.version = BACKEND_VER ".20", .version = BACKEND_VER ".21",
.copyright = "LGPL", .copyright = "LGPL",
.status = RIG_STATUS_STABLE, .status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER, .rig_type = RIG_TYPE_TRANSCEIVER,
@ -960,15 +960,21 @@ int k3_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
int err; int err;
rmode_t temp_m; rmode_t temp_m;
pbwidth_t temp_w; pbwidth_t temp_w;
char *cmd_mode = "DT"; char *cmd_data = "DT";
char *cmd_bw = "BW"; char *cmd_bw = "BW";
int cmd_bw_len = 6; int cmd_bw_len = 6;
struct kenwood_priv_data *priv = rig->state.priv;
rig_debug(RIG_DEBUG_VERBOSE, "%s called vfo=%s\n", __func__, rig_strvfo(vfo)); rig_debug(RIG_DEBUG_VERBOSE, "%s called vfo=%s\n", __func__, rig_strvfo(vfo));
if (vfo == RIG_VFO_B && rig->caps->rig_model == RIG_MODEL_K4) if ((priv->is_k3 || priv->is_k3s || priv->is_k4 || priv->is_k4d
|| priv->is_k4hd) && vfo == RIG_VFO_B)
{ {
cmd_mode = "DT$"; if (!(priv->is_k3 || priv->is_k3s))
{
cmd_data = "DT$";
}
cmd_bw = "BW$"; cmd_bw = "BW$";
cmd_bw_len = 7; cmd_bw_len = 7;
@ -993,8 +999,8 @@ int k3_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
if (temp_m == RIG_MODE_RTTY) if (temp_m == RIG_MODE_RTTY)
{ {
err = kenwood_safe_transaction(rig, cmd_mode, buf, KENWOOD_MAX_BUF_LEN, err = kenwood_safe_transaction(rig, cmd_data, buf, KENWOOD_MAX_BUF_LEN,
strlen(cmd_mode) + 1); strlen(cmd_data) + 1);
if (err != RIG_OK) if (err != RIG_OK)
{ {
@ -1021,8 +1027,8 @@ int k3_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
} }
else if (temp_m == RIG_MODE_RTTYR) else if (temp_m == RIG_MODE_RTTYR)
{ {
err = kenwood_safe_transaction(rig, cmd_mode, buf, KENWOOD_MAX_BUF_LEN, err = kenwood_safe_transaction(rig, cmd_data, buf, KENWOOD_MAX_BUF_LEN,
strlen(cmd_mode) + 1); strlen(cmd_data) + 1);
if (err != RIG_OK) if (err != RIG_OK)
{ {

Wyświetl plik

@ -2640,8 +2640,8 @@ int kenwood_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
} }
else else
{ {
if (vfo == RIG_VFO_B if ((priv->is_k3 || priv->is_k3s || priv->is_k4 || priv->is_k4d
&& rig->caps->rig_model == RIG_MODEL_K4) // K4 new MD$ command for VFOB || priv->is_k4hd) && vfo == RIG_VFO_B)
{ {
SNPRINTF(cmd, sizeof(cmd), "MD$"); SNPRINTF(cmd, sizeof(cmd), "MD$");
offs = 3; offs = 3;

Wyświetl plik

@ -29,7 +29,7 @@
#include "misc.h" #include "misc.h"
#include "idx_builtin.h" #include "idx_builtin.h"
#define BACKEND_VER "20230115" #define BACKEND_VER "20230222"
#define EOM_KEN ';' #define EOM_KEN ';'
#define EOM_TH '\r' #define EOM_TH '\r'