kopia lustrzana https://github.com/Hamlib/Hamlib
Correct handling of max power output of KX2/KX3 with KXPA100
Handle extended reply of K3pull/1022/head
rodzic
e4bd3c8ede
commit
704a6aac4b
|
@ -185,7 +185,7 @@ const struct rig_caps k3_caps =
|
||||||
RIG_MODEL(RIG_MODEL_K3),
|
RIG_MODEL(RIG_MODEL_K3),
|
||||||
.model_name = "K3",
|
.model_name = "K3",
|
||||||
.mfg_name = "Elecraft",
|
.mfg_name = "Elecraft",
|
||||||
.version = BACKEND_VER ".20",
|
.version = BACKEND_VER ".21",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -337,7 +337,7 @@ const struct rig_caps k3s_caps =
|
||||||
RIG_MODEL(RIG_MODEL_K3S),
|
RIG_MODEL(RIG_MODEL_K3S),
|
||||||
.model_name = "K3S",
|
.model_name = "K3S",
|
||||||
.mfg_name = "Elecraft",
|
.mfg_name = "Elecraft",
|
||||||
.version = BACKEND_VER ".16",
|
.version = BACKEND_VER ".17",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -488,7 +488,7 @@ const struct rig_caps k4_caps =
|
||||||
RIG_MODEL(RIG_MODEL_K4),
|
RIG_MODEL(RIG_MODEL_K4),
|
||||||
.model_name = "K4",
|
.model_name = "K4",
|
||||||
.mfg_name = "Elecraft",
|
.mfg_name = "Elecraft",
|
||||||
.version = BACKEND_VER ".18",
|
.version = BACKEND_VER ".19",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -638,7 +638,7 @@ const struct rig_caps kx3_caps =
|
||||||
RIG_MODEL(RIG_MODEL_KX3),
|
RIG_MODEL(RIG_MODEL_KX3),
|
||||||
.model_name = "KX3",
|
.model_name = "KX3",
|
||||||
.mfg_name = "Elecraft",
|
.mfg_name = "Elecraft",
|
||||||
.version = BACKEND_VER ".15",
|
.version = BACKEND_VER ".16",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -788,7 +788,7 @@ const struct rig_caps kx2_caps =
|
||||||
RIG_MODEL(RIG_MODEL_KX2),
|
RIG_MODEL(RIG_MODEL_KX2),
|
||||||
.model_name = "KX2",
|
.model_name = "KX2",
|
||||||
.mfg_name = "Elecraft",
|
.mfg_name = "Elecraft",
|
||||||
.version = BACKEND_VER ".14",
|
.version = BACKEND_VER ".15",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -1781,9 +1781,12 @@ static int k3_get_maxpower(RIG *rig)
|
||||||
struct kenwood_priv_data *priv = rig->state.priv;
|
struct kenwood_priv_data *priv = rig->state.priv;
|
||||||
|
|
||||||
// default range is 0-12 if there is no KPA3 installed
|
// default range is 0-12 if there is no KPA3 installed
|
||||||
if (priv->has_kpa3 || priv->has_kpa100) { maxpower = 110; }
|
if (priv->has_kpa3 || priv->has_kpa100)
|
||||||
|
{
|
||||||
|
maxpower = 110;
|
||||||
|
}
|
||||||
|
|
||||||
if (RIG_IS_KX2 || RIG_IS_KX3)
|
else if (RIG_IS_KX2 || RIG_IS_KX3)
|
||||||
{
|
{
|
||||||
|
|
||||||
int bandnum = -1;
|
int bandnum = -1;
|
||||||
|
@ -2212,15 +2215,29 @@ int k3_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_RFPOWER:
|
case RIG_LEVEL_RFPOWER:
|
||||||
retval = kenwood_safe_transaction(rig, "PC", levelbuf, sizeof(levelbuf), 5);
|
size_t len;
|
||||||
|
retval = kenwood_transaction(rig, "PC", levelbuf, sizeof(levelbuf));
|
||||||
if (retval != RIG_OK)
|
if (retval != RIG_OK)
|
||||||
{
|
{
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
len = strlen(levelbuf);
|
||||||
|
if (len == 5 || len == 6)
|
||||||
|
{
|
||||||
sscanf(levelbuf + 2, "%d", &lvl);
|
sscanf(levelbuf + 2, "%d", &lvl);
|
||||||
|
if (len == 6) {
|
||||||
|
// K2 extended reply
|
||||||
|
lvl /= 10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return RIG_EPROTO;
|
||||||
|
}
|
||||||
|
|
||||||
val->f = (float) lvl / k3_get_maxpower(rig);
|
val->f = (float) lvl / k3_get_maxpower(rig);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
Ładowanie…
Reference in New Issue