kopia lustrzana https://github.com/Hamlib/Hamlib
commit
c5f0e1e577
|
@ -1035,7 +1035,7 @@ typedef uint64_t rig_level_e;
|
|||
//! @cond Doxygen_Suppress
|
||||
#define RIG_LEVEL_FLOAT_LIST (RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_APF|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_COMP|RIG_LEVEL_BALANCE|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_VOXGAIN|RIG_LEVEL_ANTIVOX|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_SPECTRUM_REF|RIG_LEVEL_TEMP_METER|RIG_LEVEL_USB_AF|RIG_LEVEL_AGC_TIME)
|
||||
|
||||
#define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_STRENGTH|RIG_LEVEL_RAWSTR|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS)
|
||||
#define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_STRENGTH|RIG_LEVEL_RAWSTR|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_TEMP_METER|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS)
|
||||
|
||||
#define RIG_LEVEL_IS_FLOAT(l) ((l)&RIG_LEVEL_FLOAT_LIST)
|
||||
#define RIG_LEVEL_SET(l) ((l)&~RIG_LEVEL_READONLY_LIST)
|
||||
|
@ -1619,7 +1619,7 @@ typedef struct chan_list chan_t;
|
|||
*
|
||||
* The granularity is undefined if min = 0, max = 0, and step = 0.
|
||||
*
|
||||
* For float settings, if min.f = 0 and max.f = 0 (and step.f! = 0), max.f is
|
||||
* For float settings, if min.f = 0 and max.f = 0 (and step.f != 0), max.f is
|
||||
* assumed to be actually equal to 1.0.
|
||||
*
|
||||
* If step = 0 (and min and/or max are not null), then this means step can
|
||||
|
|
|
@ -575,6 +575,7 @@ const struct rig_caps ic7300_caps =
|
|||
.has_get_parm = IC7300_PARMS,
|
||||
.has_set_parm = RIG_PARM_SET(IC7300_PARMS),
|
||||
.level_gran = {
|
||||
#include "level_gran_icom.h"
|
||||
// cppcheck-suppress *
|
||||
[LVL_RAWSTR] = {.min = {.i = 0}, .max = {.i = 255}},
|
||||
[LVL_VOXDELAY] = {.min = {.i = 0}, .max = {.i = 20}, .step = {.i = 1}},
|
||||
|
@ -811,6 +812,7 @@ struct rig_caps ic9700_caps =
|
|||
.has_get_parm = IC9700_PARMS,
|
||||
.has_set_parm = RIG_PARM_SET(IC9700_PARMS),
|
||||
.level_gran = {
|
||||
#include "level_gran_icom.h"
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 1 } },
|
||||
[LVL_KEYSPD] = {.min = {.i = 6}, .max = {.i = 48}, .step = {.i = 1}},
|
||||
|
@ -1123,6 +1125,7 @@ const struct rig_caps ic705_caps =
|
|||
.has_get_parm = IC7300_PARMS,
|
||||
.has_set_parm = RIG_PARM_SET(IC7300_PARMS),
|
||||
.level_gran = {
|
||||
#include "level_gran_icom.h"
|
||||
[LVL_RAWSTR] = {.min = {.i = 0}, .max = {.i = 255}},
|
||||
[LVL_VOXDELAY] = {.min = {.i = 0}, .max = {.i = 20}, .step = {.i = 1}},
|
||||
[LVL_KEYSPD] = {.min = {.i = 6}, .max = {.i = 48}, .step = {.i = 1}},
|
||||
|
|
|
@ -16,8 +16,8 @@ LVL_KEYSPD
|
|||
/* raw data */
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
/* levels with dB units */
|
||||
[LVL_PREAMP] = { .min = { .i = 10 }, .max = { .i = 20 }, .step = { .i = 10 } },
|
||||
[LVL_ATT] = { .min = { .i = 12 }, .max = { .i = 12 }, .step = { .i = 0 } },
|
||||
[LVL_PREAMP] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 10 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 12 }, .step = { .i = 0 } },
|
||||
[LVL_STRENGTH] = { .min = { .i = 0 }, .max = { .i = 60 }, .step = { .i = 0 } },
|
||||
[LVL_NB] = { .min = { .f = 0 }, .max = { .f = 10 }, .step = { .f = 1 } },
|
||||
/* levels with WPM units */
|
||||
|
|
|
@ -9,7 +9,7 @@ IC10SRC = ts440.c ts940.c ts711.c ts811.c r5000.c
|
|||
THSRC = thd7.c thf7.c thg71.c tmd700.c tmv7.c thf6a.c thd72.c tmd710.c thd74.c
|
||||
|
||||
KENWOODSRC = kenwood.c kenwood.h th.c th.h ic10.c ic10.h elecraft.c elecraft.h \
|
||||
transfox.c flex.c flex.h level_gran_kenwood.h
|
||||
transfox.c flex.c flex.h level_gran_kenwood.h level_gran_elecraft.h
|
||||
|
||||
noinst_LTLIBRARIES = libhamlib-kenwood.la
|
||||
libhamlib_kenwood_la_SOURCES = $(TSSRC) $(THSRC) $(IC10SRC) $(KENWOODSRC)
|
||||
|
|
|
@ -1122,7 +1122,9 @@ const struct rig_caps f6k_caps =
|
|||
.has_set_level = F6K_LEVEL_ALL,
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {}, /* FIXME: granularity */
|
||||
.level_gran = {
|
||||
[LVL_KEYSPD] = { .min = { .i = 5 }, .max = { .i = 60 }, .step = { .i = 1 } },
|
||||
}, /* FIXME: granularity */
|
||||
.parm_gran = {},
|
||||
//.extlevels = elecraft_ext_levels,
|
||||
//.extparms = kenwood_cfg_params,
|
||||
|
@ -1260,7 +1262,9 @@ const struct rig_caps powersdr_caps =
|
|||
.has_set_level = POWERSDR_LEVEL_SET,
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {}, /* FIXME: granularity */
|
||||
.level_gran = {
|
||||
[LVL_KEYSPD] = { .min = { .i = 5 }, .max = { .i = 60 }, .step = { .i = 1 } },
|
||||
}, /* FIXME: granularity */
|
||||
.parm_gran = {},
|
||||
//.extlevels = elecraft_ext_levels,
|
||||
//.extparms = kenwood_cfg_params,
|
||||
|
|
|
@ -143,7 +143,9 @@ const struct rig_caps k2_caps =
|
|||
.has_set_level = RIG_LEVEL_SET(K2_LEVEL_ALL),
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {}, /* FIXME: granularity */
|
||||
.level_gran = {
|
||||
#include "level_gran_elecraft.h"
|
||||
}, /* FIXME: granularity */
|
||||
.parm_gran = {},
|
||||
.extlevels = elecraft_ext_levels,
|
||||
.extparms = kenwood_cfg_params,
|
||||
|
|
|
@ -216,8 +216,7 @@ const struct rig_caps k3_caps =
|
|||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {
|
||||
// cppcheck-suppress *
|
||||
[LVL_KEYSPD] = { .min = { .i = 8 }, .max = { .i = 50 }, .step = { .i = 1 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 10 }, .step = { .i = 10 } },
|
||||
#include "level_gran_elecraft.h"
|
||||
},
|
||||
.parm_gran = {},
|
||||
.extlevels = k3_ext_levels,
|
||||
|
@ -369,7 +368,7 @@ const struct rig_caps k3s_caps =
|
|||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {
|
||||
[LVL_KEYSPD] = { .min = { .i = 8 }, .max = { .i = 50 }, .step = { .i = 1 } },
|
||||
#include "level_gran_elecraft.h"
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 15 }, .step = { .i = 5 } },
|
||||
},
|
||||
.parm_gran = {},
|
||||
|
@ -522,13 +521,16 @@ const struct rig_caps k4_caps =
|
|||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {
|
||||
[LVL_KEYSPD] = { .min = { .i = 8 }, .max = { .i = 50 }, .step = { .i = 1 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 15 }, .step = { .i = 5 } },
|
||||
#include "level_gran_elecraft.h"
|
||||
[LVL_CWPITCH] = { .min = { .i = 250 }, .max = { .i = 950 }, .step = { .i = 10 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 15 }, .step = { .i = 5 } },
|
||||
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 255 }, .step = { .i = 10 } },
|
||||
[LVL_PREAMP] = { .min = { .i = 0 }, .max = { .i = 30}, .step = { .i = 10 } },
|
||||
},
|
||||
.parm_gran = {},
|
||||
.extlevels = k3_ext_levels,
|
||||
.extparms = kenwood_cfg_params,
|
||||
.preamp = { 1, RIG_DBLST_END, },
|
||||
.preamp = { 10, 20, 30, RIG_DBLST_END, },
|
||||
.attenuator = { 5, 10, 15, RIG_DBLST_END, },
|
||||
.max_rit = Hz(9990),
|
||||
.max_xit = Hz(9990),
|
||||
|
@ -536,6 +538,8 @@ const struct rig_caps k4_caps =
|
|||
.vfo_ops = K3_VFO_OP,
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE,
|
||||
.transceive = RIG_TRN_RIG,
|
||||
.agc_level_count = 3,
|
||||
.agc_levels = { RIG_AGC_OFF, RIG_AGC_SLOW, RIG_AGC_FAST },
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 0,
|
||||
|
||||
|
@ -674,8 +678,7 @@ const struct rig_caps kx3_caps =
|
|||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {
|
||||
[LVL_KEYSPD] = { .min = { .i = 8 }, .max = { .i = 50 }, .step = { .i = 1 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 10 }, .step = { .i = 10 } },
|
||||
#include "level_gran_elecraft.h"
|
||||
},
|
||||
.parm_gran = {},
|
||||
.extlevels = kx3_ext_levels,
|
||||
|
@ -826,8 +829,7 @@ const struct rig_caps kx2_caps =
|
|||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {
|
||||
[LVL_KEYSPD] = { .min = { .i = 8 }, .max = { .i = 50 }, .step = { .i = 1 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 10 }, .step = { .i = 10 } },
|
||||
#include "level_gran_elecraft.h"
|
||||
},
|
||||
.parm_gran = {},
|
||||
.extlevels = kx3_ext_levels,
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
// Once included these values can be overidden in the back-end
|
||||
// Known variants are PREAMP, ATT, NB, CWPITCH, IF, NOTCHF, VOXDELAY, BKINDL, BKIN_DLYMS, RFPOWER_METER(255 or 100), RFPOWER_METER_WATTS(255 or 100)
|
||||
// cppcheck-suppress *
|
||||
/* raw data */
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
/* levels with dB units */
|
||||
[LVL_PREAMP] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 10 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 10 }, .step = { .i = 10 } },
|
||||
[LVL_STRENGTH] = { .min = { .i = 0 }, .max = { .i = 60 }, .step = { .i = 0 } },
|
||||
[LVL_NB] = { .min = { .f = 0 }, .max = { .f = 10 }, .step = { .f = 1 } },
|
||||
/* levels with WPM units */
|
||||
[LVL_KEYSPD] = { .min = { .i = 8 }, .max = { .i = 50 }, .step = { .i = 1 } },
|
||||
/* levels with Hz units */
|
||||
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 800 }, .step = { .i = 10 } },
|
||||
/* levels with time units */
|
||||
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 255 }, .step = { .i = 50 } },
|
||||
/* levels with 0-1 values -- increment based on rig's range */
|
||||
[LVL_NR] = { .min = { .f = 0 }, .max = { .f = 1 }, .step = { .f = 1.0f/10.0f } },
|
||||
[LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/255.0f } },
|
||||
[LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/255.0f } },
|
||||
[LVL_RFPOWER] = { .min = { .f = .05 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
|
||||
[LVL_RFPOWER_METER] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/255.0f } },
|
||||
[LVL_RFPOWER_METER_WATTS] = { .min = { .f = .0 }, .max = { .f = 100 }, .step = { .f = 1.0f/255.0f } },
|
||||
[LVL_SQL] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/100.0f } },
|
||||
[LVL_MICGAIN] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
|
||||
[LVL_MONITOR_GAIN] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
|
||||
[LVL_COMP] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
|
||||
[LVL_VOXGAIN] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
|
||||
[LVL_ALC] = { .min = { .f = .0 }, .max = { .f = 1 }, .step = { .f = 1.0f/100.0f } },
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
/* raw data */
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
/* levels with dB units */
|
||||
[LVL_PREAMP] = { .min = { .i = 10 }, .max = { .i = 20 }, .step = { .i = 10 } },
|
||||
[LVL_PREAMP] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 10 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 12 }, .step = { .i = 0 } },
|
||||
[LVL_STRENGTH] = { .min = { .i = 0 }, .max = { .i = 60 }, .step = { .i = 0 } },
|
||||
/* levels with WPM units */
|
||||
|
@ -18,10 +18,10 @@
|
|||
/* levels with time units */
|
||||
[LVL_VOXDELAY] = { .min = { .i = 3 }, .max = { .i = 300 }, .step = { .i = 1 } },
|
||||
[LVL_BKINDL] = { .min = { .i = 30 }, .max = { .i = 3000 }, .step = { .i = 1 } },
|
||||
[LVL_BKIN_DLYMS] = { .min = { .i = 30 }, .max = { .i = 3000 }, .step = { .i = 1 } },
|
||||
[LVL_BKIN_DLYMS] = { .min = { .i = 30 }, .max = { .i = 3000 }, .step = { .i = 1 } },
|
||||
/* level with misc units */
|
||||
[LVL_SWR] = { .min = { .f = 0 }, .max = { .f = 5.0 }, .step = { .f = 1.0f/255.0f } },
|
||||
[LVL_BAND_SELECT] = { .min = { .i = 0 }, .max = { .i = 16 }, .step = { .i = 1 } },
|
||||
[LVL_BAND_SELECT] = { .min = { .i = 0 }, .max = { .i = 16 }, .step = { .i = 1 } },
|
||||
/* levels with 0-1 values -- increment based on rig's range */
|
||||
[LVL_NR] = { .min = { .f = 0 }, .max = { .f = 1 }, .step = { .f = 1.0f/10.0f } },
|
||||
[LVL_NB] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f/10.0f } },
|
||||
|
|
|
@ -1665,10 +1665,8 @@ const struct rig_caps ts590_caps =
|
|||
#include "level_gran_kenwood.h"
|
||||
[LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } },
|
||||
[LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } },
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } },
|
||||
[LVL_KEYSPD] = {.min = {.i = 4}, .max = {.i = 60}, .step = {.i = 1}},
|
||||
[LVL_CWPITCH] = {.min = {.i = 400}, .max = {.i = 1000}, .step = {.i = 50}},
|
||||
[LVL_CWPITCH] = {.min = {.i = 300}, .max = {.i = 1000}, .step = {.i = 50}},
|
||||
[LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}},
|
||||
[LVL_SLOPE_LOW] = {.min = {.i = 0}, .max = {.i = 2400}, .step = {.i = 10}},
|
||||
[LVL_SLOPE_HIGH] = {.min = {.i = 0}, .max = {.i = 5000}, .step = {.i = 10}},
|
||||
|
@ -1862,10 +1860,8 @@ const struct rig_caps ts590sg_caps =
|
|||
#include "level_gran_kenwood.h"
|
||||
[LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } },
|
||||
[LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } },
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } },
|
||||
[LVL_KEYSPD] = {.min = {.i = 4}, .max = {.i = 60}, .step = {.i = 1}},
|
||||
[LVL_CWPITCH] = {.min = {.i = 400}, .max = {.i = 1000}, .step = {.i = 50}},
|
||||
[LVL_CWPITCH] = {.min = {.i = 300}, .max = {.i = 1000}, .step = {.i = 50}},
|
||||
[LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}},
|
||||
[LVL_SLOPE_LOW] = {.min = {.i = 0}, .max = {.i = 2400}, .step = {.i = 10}},
|
||||
[LVL_SLOPE_HIGH] = {.min = {.i = 0}, .max = {.i = 5000}, .step = {.i = 10}},
|
||||
|
|
|
@ -565,6 +565,7 @@ const struct rig_caps ts870s_caps =
|
|||
.level_gran =
|
||||
{
|
||||
#include "level_gran_kenwood.h"
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 18 }, .step = { .i = 6 } },
|
||||
},
|
||||
.parm_gran = {},
|
||||
.ctcss_list = kenwood38_ctcss_list,
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <hamlib/rig.h>
|
||||
#include "kenwood.h"
|
||||
#include "cal.h"
|
||||
#include "misc.h"
|
||||
|
||||
// TODO: Copied from TS-480, to be verified
|
||||
#define TS890_VFO (RIG_VFO_A|RIG_VFO_B)
|
||||
|
@ -47,10 +48,16 @@
|
|||
int kenwood_ts890_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||
{
|
||||
char levelbuf[16];
|
||||
int kenwood_val;
|
||||
int kenwood_val, retval;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s called\n", __func__);
|
||||
|
||||
retval = check_level_param(rig, level, val, NULL);
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
switch (level)
|
||||
{
|
||||
case RIG_LEVEL_RF:
|
||||
|
@ -68,32 +75,20 @@ int kenwood_ts890_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
/* possible values for TS890 0(=off), 1(=slow), 2(=mid), 3(=fast), 4(=off/Last) */
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s TS890S RIG_LEVEL_AGC\n", __func__);
|
||||
|
||||
switch (val.i)
|
||||
{
|
||||
case RIG_AGC_OFF:
|
||||
kenwood_val = 0;
|
||||
break;
|
||||
|
||||
case RIG_AGC_SLOW:
|
||||
kenwood_val = 1;
|
||||
break;
|
||||
|
||||
case RIG_AGC_MEDIUM:
|
||||
kenwood_val = 2;
|
||||
break;
|
||||
|
||||
case RIG_AGC_FAST:
|
||||
kenwood_val = 3;
|
||||
break;
|
||||
|
||||
case RIG_AGC_AUTO:
|
||||
kenwood_val = 4;
|
||||
break;
|
||||
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported agc value", __func__);
|
||||
kenwood_val = -1; /* Flag invalid value */
|
||||
for (int j = 0; j < rig->caps->agc_level_count; j++)
|
||||
{
|
||||
if (val.i == rig->caps->agc_levels[j])
|
||||
{
|
||||
kenwood_val = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( kenwood_val < 0)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported agc value:%d\n", __func__, val.i);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
SNPRINTF(levelbuf, sizeof(levelbuf), "GC%d", kenwood_val);
|
||||
break;
|
||||
|
@ -228,47 +223,23 @@ int kenwood_ts890_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
return RIG_OK;
|
||||
|
||||
case RIG_LEVEL_AGC:
|
||||
retval = kenwood_transaction(rig, "GC", ackbuf, sizeof(ackbuf));
|
||||
ack_len_expected = 3;
|
||||
retval = kenwood_safe_transaction(rig, "GC", ackbuf, sizeof(ackbuf), 3);
|
||||
|
||||
if (RIG_OK != retval)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
ack_len = strlen(ackbuf);
|
||||
|
||||
if (ack_len != ack_len_expected)
|
||||
{
|
||||
levelint = ackbuf[2] - '0'; /* atoi */
|
||||
if (levelint >= 0 && levelint < rig->caps->agc_level_count)
|
||||
{
|
||||
val->i = rig->caps->agc_levels[levelint];
|
||||
}
|
||||
else
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unknown agc value: %s\n", __func__, ackbuf);
|
||||
return -RIG_EPROTO;
|
||||
}
|
||||
|
||||
switch (ackbuf[ack_len_expected - 1])
|
||||
{
|
||||
case '0':
|
||||
val->i = RIG_AGC_OFF;
|
||||
break;
|
||||
|
||||
case '1':
|
||||
val->i = RIG_AGC_SLOW;
|
||||
|
||||
break;
|
||||
|
||||
case '2':
|
||||
val->i = RIG_AGC_MEDIUM;
|
||||
break;
|
||||
|
||||
case '3':
|
||||
val->i = RIG_AGC_FAST;
|
||||
break;
|
||||
|
||||
case '4':
|
||||
val->i = RIG_AGC_AUTO;
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EPROTO;
|
||||
}
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
|
||||
|
|
|
@ -80,6 +80,7 @@ const struct rig_caps ts930_caps =
|
|||
.level_gran =
|
||||
{
|
||||
#include "level_gran_kenwood.h"
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 18 }, .step = { .i = 6 } },
|
||||
},
|
||||
.parm_gran = {},
|
||||
.preamp = { RIG_DBLST_END, }, /* FIXME: preamp list */
|
||||
|
|
|
@ -127,7 +127,9 @@ const struct rig_caps xg3_caps =
|
|||
.has_set_level = RIG_LEVEL_SET(XG3_LEVEL_ALL),
|
||||
.has_get_parm = XG3_PARM_ALL,
|
||||
.has_set_parm = XG3_PARM_ALL,
|
||||
.level_gran = {}, /* FIXME: granularity */
|
||||
.level_gran = {
|
||||
#include "level_gran_elecraft.h"
|
||||
}, /* FIXME: granularity */
|
||||
.parm_gran = {},
|
||||
.extparms = kenwood_cfg_params,
|
||||
.max_ifshift = Hz(0),
|
||||
|
|
|
@ -97,6 +97,7 @@ const struct rig_caps ftdx101mp_caps =
|
|||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE,
|
||||
.level_gran = {
|
||||
#include "level_gran_yaesu.h"
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 1050 }, .step = { .i = 10 } },
|
||||
[LVL_KEYSPD] = { .min = { .i = 4 }, .max = { .i = 60 }, .step = { .i = 1 } },
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
/* raw data */
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
/* levels with dB units */
|
||||
[LVL_PREAMP] = { .min = { .i = 10 }, .max = { .i = 20 }, .step = { .i = 10 } },
|
||||
[LVL_ATT] = { .min = { .i = 12 }, .max = { .i = 12 }, .step = { .i = 0 } },
|
||||
[LVL_PREAMP] = { .min = { .i = 0 }, .max = { .i = 20 }, .step = { .i = 10 } },
|
||||
[LVL_ATT] = { .min = { .i = 0 }, .max = { .i = 12 }, .step = { .i = 0 } },
|
||||
[LVL_STRENGTH] = { .min = { .i = 0 }, .max = { .i = 60 }, .step = { .i = 0 } },
|
||||
[LVL_NB] = { .min = { .f = 0 }, .max = { .f = 10 }, .step = { .f = 1 } },
|
||||
/* levels with WPM units */
|
||||
[LVL_KEYSPD] = { .min = { .i = 4 }, .max = { .i = 60 }, .step = { .i = 1 } },
|
||||
/* levels with Hz units */
|
||||
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 1050 }, .step = { .i = 50 } },
|
||||
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 1050 }, .step = { .i = 10 } },
|
||||
[LVL_IF] = { .min = { .i = -1200 }, .max = { .i = 1200 }, .step = { .i = 20 } },
|
||||
[LVL_NOTCHF] = { .min = { .i = 1 }, .max = { .i = 3200 }, .step = { .i = 10 } },
|
||||
/* levels with time units */
|
||||
|
|
17
src/misc.c
17
src/misc.c
|
@ -972,6 +972,7 @@ static const struct
|
|||
int check_level_param(RIG *rig, setting_t level, value_t val, gran_t **gran)
|
||||
{
|
||||
gran_t *this_gran;
|
||||
float maxval;
|
||||
|
||||
this_gran = &rig->caps->level_gran[rig_setting2idx(level)];
|
||||
|
||||
|
@ -982,13 +983,21 @@ int check_level_param(RIG *rig, setting_t level, value_t val, gran_t **gran)
|
|||
|
||||
if (RIG_LEVEL_IS_FLOAT(level))
|
||||
{
|
||||
/* If min==max==0, all values are OK here but may be checked later */
|
||||
if (this_gran->min.f == 0.0f && this_gran->max.f == 0.0f)
|
||||
|
||||
/* If min==max==step==0, all values are OK here */
|
||||
maxval = this_gran->max.f;
|
||||
if (this_gran->min.f == 0.0f && maxval == 0.0f)
|
||||
{
|
||||
return RIG_OK;
|
||||
/* if step==0 also, we're good */
|
||||
if (this_gran->step.f == 0.0f)
|
||||
{
|
||||
return RIG_OK;
|
||||
}
|
||||
/* non-zero step, check for max of 1.0 */
|
||||
maxval = 1.0f;
|
||||
}
|
||||
|
||||
if (val.f < this_gran->min.f || val.f > this_gran->max.f)
|
||||
if (val.f < this_gran->min.f || val.f > maxval)
|
||||
{
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue