kopia lustrzana https://github.com/Hamlib/Hamlib
Improve emulation performance and promote TS2000 to stable
rodzic
783ba3edd5
commit
ee13edb4e8
|
@ -218,6 +218,9 @@ int kenwood_transaction(RIG *rig, const char *cmdstr, char *data, size_t datasiz
|
||||||
rs = &rig->state;
|
rs = &rig->state;
|
||||||
rs->hold_decode = 1;
|
rs->hold_decode = 1;
|
||||||
|
|
||||||
|
/* Emulators don't need any post_write_delay */
|
||||||
|
if (priv->is_emulation) rs->rigport.post_write_delay = 0;
|
||||||
|
|
||||||
cmdtrm[0] = caps->cmdtrm;
|
cmdtrm[0] = caps->cmdtrm;
|
||||||
cmdtrm[1] = '\0';
|
cmdtrm[1] = '\0';
|
||||||
|
|
||||||
|
@ -496,6 +499,7 @@ int kenwood_init(RIG *rig)
|
||||||
strcpy (priv->verify_cmd, RIG_MODEL_XG3 == rig->caps->rig_model ? ";" : "ID;");
|
strcpy (priv->verify_cmd, RIG_MODEL_XG3 == rig->caps->rig_model ? ";" : "ID;");
|
||||||
priv->split = RIG_SPLIT_OFF;
|
priv->split = RIG_SPLIT_OFF;
|
||||||
priv->trn_state = -1;
|
priv->trn_state = -1;
|
||||||
|
priv->curr_mode = 0;
|
||||||
rig->state.priv = priv;
|
rig->state.priv = priv;
|
||||||
|
|
||||||
/* default mode_table */
|
/* default mode_table */
|
||||||
|
@ -713,6 +717,14 @@ int kenwood_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
struct kenwood_priv_data *priv = rig->state.priv;
|
struct kenwood_priv_data *priv = rig->state.priv;
|
||||||
|
|
||||||
|
/* Emulations do not need to set VFO since VFOB is a copy of VFOA
|
||||||
|
* except for frequency. And we can change freq without changing VFOS
|
||||||
|
* This prevents a 1.8 second delay in PowerSDR when switching VFOs
|
||||||
|
* We'll do this once if curr_mode has not been set yet
|
||||||
|
*/
|
||||||
|
if (priv->is_emulation && priv->curr_mode > 0) return RIG_OK;
|
||||||
|
|
||||||
char cmdbuf[6];
|
char cmdbuf[6];
|
||||||
int retval;
|
int retval;
|
||||||
char vfo_function;
|
char vfo_function;
|
||||||
|
@ -1564,6 +1576,12 @@ int kenwood_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
||||||
int offs;
|
int offs;
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
|
/* for emulation do not read mode from VFOB as it is copy of VFOA */
|
||||||
|
/* we avoid the VFO swapping most of the time this way */
|
||||||
|
/* only need to get it if it has to be initialized */
|
||||||
|
if (priv->curr_mode > 0 && priv->is_emulation && vfo == RIG_VFO_B) {
|
||||||
|
return priv->curr_mode;
|
||||||
|
}
|
||||||
if (RIG_MODEL_TS990S == rig->caps->rig_model)
|
if (RIG_MODEL_TS990S == rig->caps->rig_model)
|
||||||
{
|
{
|
||||||
char c;
|
char c;
|
||||||
|
@ -3345,6 +3363,7 @@ DECLARE_PROBERIG_BACKEND(kenwood)
|
||||||
"with ID %03d, please report to Hamlib "
|
"with ID %03d, please report to Hamlib "
|
||||||
"developers.\n", k_id);
|
"developers.\n", k_id);
|
||||||
|
|
||||||
|
rig_debug(RIG_DEBUG_TRACE, "%s: post_write_delay=%d\n", __func__, port->post_write_delay);
|
||||||
return RIG_MODEL_NONE;
|
return RIG_MODEL_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "token.h"
|
#include "token.h"
|
||||||
|
|
||||||
#define BACKEND_VER "0.9"
|
#define BACKEND_VER "1.0"
|
||||||
|
|
||||||
#define EOM_KEN ';'
|
#define EOM_KEN ';'
|
||||||
#define EOM_TH '\r'
|
#define EOM_TH '\r'
|
||||||
|
@ -80,6 +80,7 @@ struct kenwood_priv_data {
|
||||||
char verify_cmd[4]; /* command used to verify set commands */
|
char verify_cmd[4]; /* command used to verify set commands */
|
||||||
int is_emulation; /* flag for TS-2000 emulations */
|
int is_emulation; /* flag for TS-2000 emulations */
|
||||||
void * data; /* model specific data */
|
void * data; /* model specific data */
|
||||||
|
rmode_t curr_mode; /* used for is_emulation to avoid get_mode on VFOB */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,7 @@ const struct rig_caps ts2000_caps = {
|
||||||
.mfg_name = "Kenwood",
|
.mfg_name = "Kenwood",
|
||||||
.version = BACKEND_VER ".4",
|
.version = BACKEND_VER ".4",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_BETA,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
.ptt_type = RIG_PTT_RIG,
|
.ptt_type = RIG_PTT_RIG,
|
||||||
.dcd_type = RIG_DCD_RIG,
|
.dcd_type = RIG_DCD_RIG,
|
||||||
|
|
Ładowanie…
Reference in New Issue