Restore elecraft extended K2 cmd set to startup value

pull/1289/head
Mike Black W9MDB 2023-04-30 09:52:24 -05:00
rodzic 34566d433b
commit 5a079e03a4
5 zmienionych plików z 40 dodań i 8 usunięć

Wyświetl plik

@ -174,8 +174,17 @@ int elecraft_open(RIG *rig)
}
}
priv->save_k2_ext_lvl = -1; // so we don't restore if not neeede
if (rig->caps->rig_model != RIG_MODEL_XG3) // XG3 doesn't have extended
{
err = elecraft_get_extension_level(rig, "K2", &priv->save_k2_ext_lvl);
if (err != RIG_OK)
{
rig_debug(RIG_DEBUG_ERR, "%s: error getting K2 ext_lvl: %s\n", __func__,
rigerror(err));
return err;
}
// turn on k2 extended to get PC values in more resolution
err = kenwood_transaction(rig, "K22;", NULL, 0);
@ -347,7 +356,27 @@ int elecraft_open(RIG *rig)
return RIG_OK;
}
int elecraft_close(RIG *rig)
{
struct kenwood_priv_data *priv = rig->state.priv;
char cmd[32];
int err;
if (priv->save_k2_ext_lvl >= 0)
{
sprintf(cmd, "K2%d;", priv->save_k2_ext_lvl);
err = kenwood_transaction(rig, cmd, NULL, 0);
if (err != RIG_OK)
{
rig_debug(RIG_DEBUG_ERR, "%s: error restoring %s='%s'...continuing\n", __func__,
cmd,
rigerror(err));
}
}
return kenwood_close(rig);
}
/* Private helper functions */

Wyświetl plik

@ -75,6 +75,7 @@ extern const struct confparams elecraft_ext_levels[];
/* Elecraft extension function declarations */
int elecraft_open(RIG *rig);
int elecraft_close(RIG *rig);
/* S-meter calibration tables */

Wyświetl plik

@ -208,9 +208,9 @@ const struct rig_caps k2_caps =
.priv = (void *)& k2_priv_caps,
.rig_init = kenwood_init,
.rig_cleanup = kenwood_cleanup,
.rig_cleanup = kenwood_cleanup,
.rig_open = k2_open,
.rig_close = kenwood_close,
.rig_close = elecraft_close,
.set_freq = kenwood_set_freq,
.get_freq = kenwood_get_freq,
.set_mode = k2_set_mode,

Wyświetl plik

@ -299,7 +299,7 @@ const struct rig_caps k3_caps =
.rig_init = kenwood_init,
.rig_cleanup = kenwood_cleanup,
.rig_open = elecraft_open,
.rig_close = kenwood_close,
.rig_close = elecraft_close,
.set_freq = k3_set_freq,
.get_freq = kenwood_get_freq,
.set_mode = k3_set_mode,
@ -452,7 +452,7 @@ const struct rig_caps k3s_caps =
.rig_init = kenwood_init,
.rig_cleanup = kenwood_cleanup,
.rig_open = elecraft_open,
.rig_close = kenwood_close,
.rig_close = elecraft_close,
.set_freq = k3_set_freq,
.get_freq = kenwood_get_freq,
.set_mode = k3_set_mode,
@ -605,7 +605,7 @@ const struct rig_caps k4_caps =
.rig_init = kenwood_init,
.rig_cleanup = kenwood_cleanup,
.rig_open = elecraft_open,
.rig_close = kenwood_close,
.rig_close = elecraft_close,
.set_freq = kenwood_set_freq,
.get_freq = kenwood_get_freq,
.set_mode = k3_set_mode,
@ -757,7 +757,7 @@ const struct rig_caps kx3_caps =
.rig_init = kenwood_init,
.rig_cleanup = kenwood_cleanup,
.rig_open = elecraft_open,
.rig_close = kenwood_close,
.rig_close = elecraft_close,
.set_freq = kenwood_set_freq,
.get_freq = kenwood_get_freq,
.set_mode = k3_set_mode,
@ -909,7 +909,7 @@ const struct rig_caps kx2_caps =
.rig_init = kenwood_init,
.rig_cleanup = kenwood_cleanup,
.rig_open = elecraft_open,
.rig_close = kenwood_close,
.rig_close = elecraft_close,
.set_freq = kenwood_set_freq,
.get_freq = kenwood_get_freq,
.set_mode = k3_set_mode,

Wyświetl plik

@ -28,7 +28,7 @@
#include "token.h"
#include "idx_builtin.h"
#define BACKEND_VER "20230414"
#define BACKEND_VER "20230430"
#define EOM_KEN ';'
#define EOM_TH '\r'
@ -177,6 +177,8 @@ struct kenwood_priv_data
int datamodeB; // datamode status from get_mode or set_mode
int ps_cmd_wakeup_data; // PS command requires wakeup characters (;)
int question_mark_response_means_rejected; /* the question mark response has multiple meanings */
int save_k2_ext_lvl; // so we can restore to original
int save_k3_ext_lvl; // so we can restore to original -- for future use if needed
};