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)
{
char levelbuf[16];
int i, kenwood_val;
int i, kenwood_val, len;
struct kenwood_priv_data *priv = rig->state.priv;
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:
len = RIG_IS_TS890S ? 1 : 2;
/* set the attenuator if a correct value is entered */
if (val.i == 0)
{
SNPRINTF(levelbuf, sizeof(levelbuf), "RA00");
SNPRINTF(levelbuf, sizeof(levelbuf), "RA%0*d", len, 0);
}
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])
{
SNPRINTF(levelbuf, sizeof(levelbuf), "RA%02d", i + 1);
SNPRINTF(levelbuf, sizeof(levelbuf), "RA%0*d", len, i + 1);
foundit = 1;
break;
}
@ -3479,7 +3480,8 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
break;
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)
{

Wyświetl plik

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

Wyświetl plik

@ -39,8 +39,8 @@
#define TS890_AM_TX_MODES RIG_MODE_AM
// 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_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_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|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_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,
.retry = 10,
.preamp = {12, RIG_DBLST_END,},
.attenuator = {12, RIG_DBLST_END,},
.attenuator = {6, 12, 18, RIG_DBLST_END,},
.max_rit = kHz(9.99),
.max_xit = kHz(9.99),
.max_ifshift = Hz(0),