Add attenuator level control for TS890

Update SMeter/SWR tables for TS890
Thanks to N3GB George Baltz
pull/1242/head
Mike Black W9MDB 2023-02-08 12:02:19 -06:00
rodzic cbd5f9ad3e
commit f9adf5de0a
3 zmienionych plików z 10 dodań i 8 usunięć

Wyświetl plik

@ -3097,7 +3097,7 @@ static int kenwood_find_slope_filter_for_value(RIG *rig, vfo_t vfo,
int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
{ {
char levelbuf[16]; char levelbuf[16];
int i, kenwood_val; int i, kenwood_val, len;
struct kenwood_priv_data *priv = rig->state.priv; struct kenwood_priv_data *priv = rig->state.priv;
struct kenwood_priv_caps *caps = kenwood_caps(rig); struct kenwood_priv_caps *caps = kenwood_caps(rig);
@ -3210,10 +3210,11 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
case RIG_LEVEL_ATT: case RIG_LEVEL_ATT:
len = RIG_IS_TS890S ? 1 : 2;
/* set the attenuator if a correct value is entered */ /* set the attenuator if a correct value is entered */
if (val.i == 0) if (val.i == 0)
{ {
SNPRINTF(levelbuf, sizeof(levelbuf), "RA00"); SNPRINTF(levelbuf, sizeof(levelbuf), "RA%0*d", len, 0);
} }
else else
{ {
@ -3223,7 +3224,7 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
{ {
if (val.i == rig->state.attenuator[i]) if (val.i == rig->state.attenuator[i])
{ {
SNPRINTF(levelbuf, sizeof(levelbuf), "RA%02d", i + 1); SNPRINTF(levelbuf, sizeof(levelbuf), "RA%0*d", len, i + 1);
foundit = 1; foundit = 1;
break; break;
} }
@ -3479,7 +3480,8 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
break; break;
case RIG_LEVEL_ATT: case RIG_LEVEL_ATT:
retval = kenwood_safe_transaction(rig, "RA", lvlbuf, 50, 6); len = RIG_IS_TS890S ? 3 : 6;
retval = kenwood_safe_transaction(rig, "RA", lvlbuf, 50, len);
if (retval != RIG_OK) if (retval != RIG_OK)
{ {

Wyświetl plik

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

Wyświetl plik

@ -39,8 +39,8 @@
#define TS890_AM_TX_MODES RIG_MODE_AM #define TS890_AM_TX_MODES RIG_MODE_AM
// TODO: Copied from TS-480, to be verified // TODO: Copied from TS-480, to be verified
#define TS890_LEVEL_SET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_KEYSPD|RIG_LEVEL_CWPITCH) #define TS890_LEVEL_SET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_KEYSPD|RIG_LEVEL_CWPITCH|RIG_LEVEL_ATT)
#define TS890_LEVEL_GET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_KEYSPD|RIG_LEVEL_ALC|RIG_LEVEL_SWR|RIG_LEVEL_COMP_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_TEMP_METER|RIG_LEVEL_CWPITCH|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH) #define TS890_LEVEL_GET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_KEYSPD|RIG_LEVEL_ALC|RIG_LEVEL_SWR|RIG_LEVEL_COMP_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_TEMP_METER|RIG_LEVEL_CWPITCH|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH|RIG_LEVEL_ATT)
#define TS890_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_NB2|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_NR|RIG_FUNC_BC|RIG_FUNC_BC2|RIG_FUNC_RIT|RIG_FUNC_XIT|RIG_FUNC_TUNER|RIG_FUNC_SEND_MORSE) #define TS890_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_NB2|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_NR|RIG_FUNC_BC|RIG_FUNC_BC2|RIG_FUNC_RIT|RIG_FUNC_XIT|RIG_FUNC_TUNER|RIG_FUNC_SEND_MORSE)
#define TS890_VFO_OPS (RIG_OP_UP|RIG_OP_DOWN|RIG_OP_BAND_UP|RIG_OP_BAND_DOWN|RIG_OP_CPY|RIG_OP_TUNE) #define TS890_VFO_OPS (RIG_OP_UP|RIG_OP_DOWN|RIG_OP_BAND_UP|RIG_OP_BAND_DOWN|RIG_OP_CPY|RIG_OP_TUNE)
@ -472,7 +472,7 @@ const struct rig_caps ts890s_caps =
.timeout = 500, .timeout = 500,
.retry = 10, .retry = 10,
.preamp = {12, RIG_DBLST_END,}, .preamp = {12, RIG_DBLST_END,},
.attenuator = {12, RIG_DBLST_END,}, .attenuator = {6, 12, 18, RIG_DBLST_END,},
.max_rit = kHz(9.99), .max_rit = kHz(9.99),
.max_xit = kHz(9.99), .max_xit = kHz(9.99),
.max_ifshift = Hz(0), .max_ifshift = Hz(0),