Fix TS590 and TS890 RIG_LEVEL_RFPOWER_METER_WATTS

pull/1513/head
Mike Black W9MDB 2024-02-14 16:35:34 -06:00
rodzic 47fcf999f0
commit c471884122
2 zmienionych plików z 19 dodań i 16 usunięć

Wyświetl plik

@ -41,11 +41,11 @@
#define TS590_LEVEL_GET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_MICGAIN|RIG_LEVEL_STRENGTH|RIG_LEVEL_KEYSPD|RIG_LEVEL_CWPITCH| \
RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_NR|RIG_LEVEL_PREAMP|RIG_LEVEL_COMP|RIG_LEVEL_ATT|RIG_LEVEL_VOXDELAY|RIG_LEVEL_VOXGAIN|RIG_LEVEL_BKIN_DLYMS| \
RIG_LEVEL_SWR|RIG_LEVEL_COMP_METER|RIG_LEVEL_ALC|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW|RIG_LEVEL_USB_AF|RIG_LEVEL_USB_AF_INPUT)
RIG_LEVEL_SWR|RIG_LEVEL_COMP_METER|RIG_LEVEL_ALC|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW|RIG_LEVEL_USB_AF|RIG_LEVEL_USB_AF_INPUT)
#define TS590_LEVEL_SET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_CWPITCH| \
RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_NR|RIG_LEVEL_PREAMP|RIG_LEVEL_COMP|RIG_LEVEL_ATT|RIG_LEVEL_VOXDELAY|RIG_LEVEL_VOXGAIN|RIG_LEVEL_BKIN_DLYMS| \
RIG_LEVEL_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW|RIG_LEVEL_USB_AF|RIG_LEVEL_USB_AF_INPUT)
RIG_LEVEL_METER|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW|RIG_LEVEL_USB_AF|RIG_LEVEL_USB_AF_INPUT)
#define TS590_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_NR|RIG_FUNC_NR|RIG_FUNC_BC|RIG_FUNC_BC2|RIG_FUNC_RIT|RIG_FUNC_XIT| \
RIG_FUNC_TUNER|RIG_FUNC_MON|RIG_FUNC_FBKIN|RIG_FUNC_LOCK)
@ -1013,6 +1013,13 @@ static int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
case RIG_LEVEL_RFPOWER_METER:
case RIG_LEVEL_RFPOWER_METER_WATTS:
{
static cal_table_t power_meter =
{
7, { { 0, 0}, { 3, 5}, { 6, 10}, { 8, 15}, {12, 25},
{ 17, 50}, { 30, 100}
}
};
int raw_value;
if (rig->state.cache.ptt == RIG_PTT_OFF)
@ -1030,13 +1037,16 @@ static int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
sscanf(ackbuf, "SM0%d", &raw_value);
val->f = (float) raw_value / 30.0f;
// val->f = (float) raw_value / 30.0f;
if (level == RIG_LEVEL_RFPOWER_METER_WATTS)
{
val->f *= 100;
if (val->f >= 10) val->f = roundf(val->f);
else val->f = roundf(val->f*10.0)/10.0;
val->f = roundf(rig_raw2val(raw_value, &power_meter));
if (val->f < 10)
{
val->f = roundf(rig_raw2val(raw_value, &power_meter) * 10.0) / 10.0;
}
}
break;
@ -1703,7 +1713,7 @@ struct rig_caps ts590_caps =
RIG_MODEL(RIG_MODEL_TS590S),
.model_name = "TS-590S",
.mfg_name = "Kenwood",
.version = BACKEND_VER ".15",
.version = BACKEND_VER ".16",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -2097,7 +2107,7 @@ struct rig_caps ts590sg_caps =
RIG_MODEL(RIG_MODEL_TS590SG),
.model_name = "TS-590SG",
.mfg_name = "Kenwood",
.version = BACKEND_VER ".9",
.version = BACKEND_VER ".10",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,

Wyświetl plik

@ -359,14 +359,7 @@ int kenwood_ts890_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
if (level == RIG_LEVEL_RFPOWER_METER_WATTS)
{
if (val->f >= 10)
{
val->f = roundf(rig_raw2val(val->i, &power_meter));
}
else
{
val->f = roundf(rig_raw2val(val->i, &power_meter) * 10.0) / 10.0;
}
val->f = roundf(rig_raw2val(val->i, &power_meter));
}
else
{