kopia lustrzana https://github.com/Hamlib/Hamlib
rodzic
50c00cd115
commit
0acbc83a85
|
@ -194,11 +194,19 @@ int elecraft_open(RIG *rig)
|
||||||
priv->has_kpa3 = 0;
|
priv->has_kpa3 = 0;
|
||||||
|
|
||||||
if (strstr(buf, "P")) { priv->has_kpa3 = 1; }
|
if (strstr(buf, "P")) { priv->has_kpa3 = 1; }
|
||||||
|
|
||||||
// could also use K4; command
|
// could also use K4; command
|
||||||
if (rig->caps->rig_model == RIG_MODEL_K4) { priv->is_k4 = 1; }
|
if (rig->caps->rig_model == RIG_MODEL_K4) { priv->is_k4d = 1; }
|
||||||
else if (strstr(buf, "R")) { priv->is_k3s = 1; }
|
else if (strstr(buf, "R")) { priv->is_k3s = 1; }
|
||||||
else if (strncmp(&buf[13], "--", 2) == 0) { priv->is_k3 = 1; }
|
else if (strncmp(&buf[13], "--", 2) == 0) { priv->is_k3 = 1; }
|
||||||
|
|
||||||
|
if (strstr(buf, "S") && strstr(buf, "4") && strstr(buf, "H"))
|
||||||
|
{
|
||||||
|
// new firmware should recognize k4hd now
|
||||||
|
priv->is_k4d = 0;
|
||||||
|
priv->is_k4hd = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (buf[13] == '0') // then we have a KX3 or KX2
|
if (buf[13] == '0') // then we have a KX3 or KX2
|
||||||
{
|
{
|
||||||
char modelnum;
|
char modelnum;
|
||||||
|
@ -232,9 +240,9 @@ int elecraft_open(RIG *rig)
|
||||||
}
|
}
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_TRACE,
|
rig_debug(RIG_DEBUG_TRACE,
|
||||||
"%s: model=%s, is_k2=%d, is_k3=%d, is_k3s=%d, is_kx3=%d, is_kx2=%d, is_k4=%d, kpa3=%d\n",
|
"%s: model=%s, is_k2=%d, is_k3=%d, is_k3s=%d, is_kx3=%d, is_kx2=%d, is_k4d=%d, is_k4hd=%d, kpa3=%d\n",
|
||||||
__func__, model, priv->is_k2, priv->is_k3, priv->is_k3s, priv->is_kx3,
|
__func__, model, priv->is_k2, priv->is_k3, priv->is_k3s, priv->is_kx3,
|
||||||
priv->is_kx2, priv->is_k4, priv->has_kpa3);
|
priv->is_kx2, priv->is_k4d, priv->is_k4hd, priv->has_kpa3);
|
||||||
|
|
||||||
err = elecraft_get_extension_level(rig, "K2", &priv->k2_ext_lvl);
|
err = elecraft_get_extension_level(rig, "K2", &priv->k2_ext_lvl);
|
||||||
|
|
||||||
|
|
|
@ -183,7 +183,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 ".8",
|
.version = BACKEND_VER ".9",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -334,7 +334,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 ".7",
|
.version = BACKEND_VER ".8",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -484,7 +484,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 ".7",
|
.version = BACKEND_VER ".8",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -633,7 +633,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 ".7",
|
.version = BACKEND_VER ".8",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -782,7 +782,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 ".7",
|
.version = BACKEND_VER ".8",
|
||||||
.copyright = "LGPL",
|
.copyright = "LGPL",
|
||||||
.status = RIG_STATUS_STABLE,
|
.status = RIG_STATUS_STABLE,
|
||||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
@ -1028,11 +1028,11 @@ int k3_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
||||||
*/
|
*/
|
||||||
if (vfo == RIG_VFO_B)
|
if (vfo == RIG_VFO_B)
|
||||||
{
|
{
|
||||||
err = kenwood_safe_transaction(rig, "BW$", buf, KENWOOD_MAX_BUF_LEN, 7);
|
err = kenwood_safe_transaction(rig, "BW$", buf, KENWOOD_MAX_BUF_LEN, 7);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
err = kenwood_safe_transaction(rig, "BW", buf, KENWOOD_MAX_BUF_LEN, 6);
|
err = kenwood_safe_transaction(rig, "BW", buf, KENWOOD_MAX_BUF_LEN, 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (err != RIG_OK)
|
if (err != RIG_OK)
|
||||||
|
@ -1117,6 +1117,7 @@ int k3_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
int kmode;
|
int kmode;
|
||||||
int c;
|
int c;
|
||||||
kmode = rmode2kenwood(mode, caps->mode_table);
|
kmode = rmode2kenwood(mode, caps->mode_table);
|
||||||
|
|
||||||
if (kmode < 0)
|
if (kmode < 0)
|
||||||
{
|
{
|
||||||
rig_debug(RIG_DEBUG_WARN, "%s: unsupported mode '%s'\n",
|
rig_debug(RIG_DEBUG_WARN, "%s: unsupported mode '%s'\n",
|
||||||
|
@ -1143,6 +1144,7 @@ int k3_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof(buf), "MD%c", c);
|
snprintf(buf, sizeof(buf), "MD%c", c);
|
||||||
}
|
}
|
||||||
|
|
||||||
err = kenwood_transaction(rig, buf, NULL, 0);
|
err = kenwood_transaction(rig, buf, NULL, 0);
|
||||||
|
|
||||||
if (err != RIG_OK) { RETURNFUNC(err); }
|
if (err != RIG_OK) { RETURNFUNC(err); }
|
||||||
|
@ -1173,6 +1175,7 @@ int k3_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
{
|
{
|
||||||
width = rig_passband_normal(rig, mode);
|
width = rig_passband_normal(rig, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
else if (width < pb_nar)
|
else if (width < pb_nar)
|
||||||
{
|
{
|
||||||
|
@ -1182,19 +1185,21 @@ int k3_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
||||||
{
|
{
|
||||||
width = pb_wid;
|
width = pb_wid;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// width is 50Hz rounded down
|
// width is 50Hz rounded down
|
||||||
struct kenwood_priv_data *priv = rig->state.priv;
|
struct kenwood_priv_data *priv = rig->state.priv;
|
||||||
if (priv->is_k4)
|
|
||||||
|
if (priv->is_k4d || priv->is_k4hd)
|
||||||
{
|
{
|
||||||
width += 9; // rounds to 10Hz
|
width += 9; // rounds to 10Hz
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
width += 49;
|
width += 49;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (width > 99999) width = 99999;
|
if (width > 99999) { width = 99999; }
|
||||||
|
|
||||||
if (vfo == RIG_VFO_B)
|
if (vfo == RIG_VFO_B)
|
||||||
{
|
{
|
||||||
|
|
|
@ -139,7 +139,8 @@ struct kenwood_priv_data
|
||||||
int is_k3s;
|
int is_k3s;
|
||||||
int is_kx3;
|
int is_kx3;
|
||||||
int is_kx2;
|
int is_kx2;
|
||||||
int is_k4;
|
int is_k4d;
|
||||||
|
int is_k4hd;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue