kopia lustrzana https://github.com/Hamlib/Hamlib
Restore elecraft extended K2 cmd set to startup value
rodzic
34566d433b
commit
5a079e03a4
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue