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),
.model_name = "K3",
.mfg_name = "Elecraft",
.version = BACKEND_VER ".25",
.version = BACKEND_VER ".26",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -343,7 +343,7 @@ const struct rig_caps k3s_caps =
RIG_MODEL(RIG_MODEL_K3S),
.model_name = "K3S",
.mfg_name = "Elecraft",
.version = BACKEND_VER ".20",
.version = BACKEND_VER ".21",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.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;
rmode_t temp_m;
pbwidth_t temp_w;
char *cmd_mode = "DT";
char *cmd_data = "DT";
char *cmd_bw = "BW";
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));
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_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)
{
err = kenwood_safe_transaction(rig, cmd_mode, buf, KENWOOD_MAX_BUF_LEN,
strlen(cmd_mode) + 1);
err = kenwood_safe_transaction(rig, cmd_data, buf, KENWOOD_MAX_BUF_LEN,
strlen(cmd_data) + 1);
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)
{
err = kenwood_safe_transaction(rig, cmd_mode, buf, KENWOOD_MAX_BUF_LEN,
strlen(cmd_mode) + 1);
err = kenwood_safe_transaction(rig, cmd_data, buf, KENWOOD_MAX_BUF_LEN,
strlen(cmd_data) + 1);
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
{
if (vfo == RIG_VFO_B
&& rig->caps->rig_model == RIG_MODEL_K4) // K4 new MD$ command for VFOB
if ((priv->is_k3 || priv->is_k3s || priv->is_k4 || priv->is_k4d
|| priv->is_k4hd) && vfo == RIG_VFO_B)
{
SNPRINTF(cmd, sizeof(cmd), "MD$");
offs = 3;

Wyświetl plik

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