kopia lustrzana https://github.com/Hamlib/Hamlib
astyle files
rodzic
3f94e66c9f
commit
0576a01ec2
|
@ -1273,21 +1273,23 @@ static int dummy_set_ext_func(RIG *rig, vfo_t vfo, token_t token, int status)
|
||||||
|
|
||||||
switch (token)
|
switch (token)
|
||||||
{
|
{
|
||||||
case TOK_EL_MAGICEXTFUNC:
|
case TOK_EL_MAGICEXTFUNC:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (cfp->type)
|
switch (cfp->type)
|
||||||
{
|
{
|
||||||
case RIG_CONF_CHECKBUTTON:
|
case RIG_CONF_CHECKBUTTON:
|
||||||
break;
|
break;
|
||||||
case RIG_CONF_BUTTON:
|
|
||||||
break;
|
case RIG_CONF_BUTTON:
|
||||||
default:
|
break;
|
||||||
return -RIG_EINTERNAL;
|
|
||||||
|
default:
|
||||||
|
return -RIG_EINTERNAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
elp = find_ext(priv->ext_funcs, token);
|
elp = find_ext(priv->ext_funcs, token);
|
||||||
|
@ -1301,7 +1303,7 @@ static int dummy_set_ext_func(RIG *rig, vfo_t vfo, token_t token, int status)
|
||||||
elp->val.i = status;
|
elp->val.i = status;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called: %s %d\n", __func__,
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called: %s %d\n", __func__,
|
||||||
cfp->name, status);
|
cfp->name, status);
|
||||||
|
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
@ -1322,10 +1324,11 @@ static int dummy_get_ext_func(RIG *rig, vfo_t vfo, token_t token, int *status)
|
||||||
|
|
||||||
switch (token)
|
switch (token)
|
||||||
{
|
{
|
||||||
case TOK_EL_MAGICEXTFUNC:
|
case TOK_EL_MAGICEXTFUNC:
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
return -RIG_EINVAL;
|
default:
|
||||||
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
elp = find_ext(priv->ext_funcs, token);
|
elp = find_ext(priv->ext_funcs, token);
|
||||||
|
@ -1339,7 +1342,7 @@ static int dummy_get_ext_func(RIG *rig, vfo_t vfo, token_t token, int *status)
|
||||||
*status = elp->val.i;
|
*status = elp->val.i;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called: %s\n", __func__,
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called: %s\n", __func__,
|
||||||
cfp->name);
|
cfp->name);
|
||||||
|
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -901,7 +901,7 @@ int ic7300_set_parm(RIG *rig, setting_t parm, value_t val)
|
||||||
|
|
||||||
switch (parm)
|
switch (parm)
|
||||||
{
|
{
|
||||||
unsigned char prmbuf[MAXFRAMELEN];
|
unsigned char prmbuf[MAXFRAMELEN];
|
||||||
|
|
||||||
case RIG_PARM_ANN:
|
case RIG_PARM_ANN:
|
||||||
{
|
{
|
||||||
|
|
|
@ -129,7 +129,8 @@ struct cmdparams ic7600_extcmds[] =
|
||||||
{ { 0 } }
|
{ { 0 } }
|
||||||
};
|
};
|
||||||
|
|
||||||
int ic7600_ext_tokens[] = {
|
int ic7600_ext_tokens[] =
|
||||||
|
{
|
||||||
TOK_DRIVE_GAIN, TOK_BACKEND_NONE
|
TOK_DRIVE_GAIN, TOK_BACKEND_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,8 @@ struct cmdparams ic7610_extcmds[] =
|
||||||
{ { 0 } }
|
{ { 0 } }
|
||||||
};
|
};
|
||||||
|
|
||||||
int ic7610_ext_tokens[] = {
|
int ic7610_ext_tokens[] =
|
||||||
|
{
|
||||||
TOK_DRIVE_GAIN, TOK_DIGI_SEL_FUNC, TOK_DIGI_SEL_LEVEL, TOK_BACKEND_NONE
|
TOK_DRIVE_GAIN, TOK_DIGI_SEL_FUNC, TOK_DIGI_SEL_LEVEL, TOK_BACKEND_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -111,7 +111,8 @@ struct cmdparams ic7700_extcmds[] =
|
||||||
{ { 0 } }
|
{ { 0 } }
|
||||||
};
|
};
|
||||||
|
|
||||||
int ic7700_ext_tokens[] = {
|
int ic7700_ext_tokens[] =
|
||||||
|
{
|
||||||
TOK_DRIVE_GAIN, TOK_DIGI_SEL_FUNC, TOK_DIGI_SEL_LEVEL, TOK_BACKEND_NONE
|
TOK_DRIVE_GAIN, TOK_DIGI_SEL_FUNC, TOK_DIGI_SEL_LEVEL, TOK_BACKEND_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,8 @@ struct cmdparams ic7800_extcmds[] =
|
||||||
{ { 0 } }
|
{ { 0 } }
|
||||||
};
|
};
|
||||||
|
|
||||||
int ic7800_ext_tokens[] = {
|
int ic7800_ext_tokens[] =
|
||||||
|
{
|
||||||
TOK_DRIVE_GAIN, TOK_DIGI_SEL_FUNC, TOK_DIGI_SEL_LEVEL, TOK_BACKEND_NONE
|
TOK_DRIVE_GAIN, TOK_DIGI_SEL_FUNC, TOK_DIGI_SEL_LEVEL, TOK_BACKEND_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -347,6 +348,7 @@ int ic7800_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
}
|
}
|
||||||
|
|
||||||
return icom_set_level(rig, vfo, level, val);
|
return icom_set_level(rig, vfo, level, val);
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return icom_set_level(rig, vfo, level, val);
|
return icom_set_level(rig, vfo, level, val);
|
||||||
}
|
}
|
||||||
|
@ -378,7 +380,9 @@ int ic7800_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
{
|
{
|
||||||
val->i = rig->state.attenuator[val->i - 1];
|
val->i = rig->state.attenuator[val->i - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return icom_get_level(rig, vfo, level, val);
|
return icom_get_level(rig, vfo, level, val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,7 +120,8 @@ struct cmdparams ic785x_extcmds[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
int ic785x_ext_tokens[] = {
|
int ic785x_ext_tokens[] =
|
||||||
|
{
|
||||||
TOK_DRIVE_GAIN, TOK_DIGI_SEL_FUNC, TOK_DIGI_SEL_LEVEL, TOK_BACKEND_NONE
|
TOK_DRIVE_GAIN, TOK_DIGI_SEL_FUNC, TOK_DIGI_SEL_LEVEL, TOK_BACKEND_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -331,5 +332,5 @@ int ic785x_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
|
|
||||||
int ic785x_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
int ic785x_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
{
|
{
|
||||||
return ic7800_get_level(rig, vfo, level, val);
|
return ic7800_get_level(rig, vfo, level, val);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3241,9 +3241,12 @@ int icom_get_ext_func(RIG *rig, vfo_t vfo, token_t token, int *status)
|
||||||
{
|
{
|
||||||
value_t value;
|
value_t value;
|
||||||
int result = icom_get_ext_cmd(rig, vfo, token, &value);
|
int result = icom_get_ext_cmd(rig, vfo, token, &value);
|
||||||
if (result == RIG_OK) {
|
|
||||||
|
if (result == RIG_OK)
|
||||||
|
{
|
||||||
*status = value.i;
|
*status = value.i;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
else { i++; }
|
else { i++; }
|
||||||
|
@ -5411,6 +5414,7 @@ int icom_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||||
|
|
||||||
value_t value;
|
value_t value;
|
||||||
|
|
||||||
for (i = 0; extcmds && extcmds[i].id.s != 0; i++)
|
for (i = 0; extcmds && extcmds[i].id.s != 0; i++)
|
||||||
{
|
{
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: i=%d\n", __func__, i);
|
rig_debug(RIG_DEBUG_TRACE, "%s: i=%d\n", __func__, i);
|
||||||
|
@ -5418,9 +5422,12 @@ int icom_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
||||||
if (extcmds[i].cmdparamtype == CMD_PARAM_TYPE_FUNC && extcmds[i].id.s == func)
|
if (extcmds[i].cmdparamtype == CMD_PARAM_TYPE_FUNC && extcmds[i].id.s == func)
|
||||||
{
|
{
|
||||||
int result = icom_get_cmd(rig, vfo, (struct cmdparams *)&extcmds[i], &value);
|
int result = icom_get_cmd(rig, vfo, (struct cmdparams *)&extcmds[i], &value);
|
||||||
if (result == RIG_OK) {
|
|
||||||
|
if (result == RIG_OK)
|
||||||
|
{
|
||||||
*status = value.i;
|
*status = value.i;
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -183,31 +183,44 @@ int elecraft_open(RIG *rig)
|
||||||
case RIG_MODEL_K3S:
|
case RIG_MODEL_K3S:
|
||||||
case RIG_MODEL_KX2:
|
case RIG_MODEL_KX2:
|
||||||
case RIG_MODEL_KX3:
|
case RIG_MODEL_KX3:
|
||||||
// we need to know what's hooked up for PC command max levels
|
// we need to know what's hooked up for PC command max levels
|
||||||
err = kenwood_safe_transaction(rig, "OM", buf, KENWOOD_MAX_BUF_LEN, 15);
|
err = kenwood_safe_transaction(rig, "OM", buf, KENWOOD_MAX_BUF_LEN, 15);
|
||||||
if (err != RIG_OK) { return err; }
|
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: OM=%s\n", __func__, buf);
|
if (err != RIG_OK) { return err; }
|
||||||
priv->has_kpa3 = 0;
|
|
||||||
if (strstr(buf,"P")) priv->has_kpa3 = 1;
|
rig_debug(RIG_DEBUG_TRACE, "%s: OM=%s\n", __func__, buf);
|
||||||
if (buf[13] == '0') // then we have a KX3 or KX2
|
priv->has_kpa3 = 0;
|
||||||
{
|
|
||||||
char modelnum;
|
if (strstr(buf, "P")) { priv->has_kpa3 = 1; }
|
||||||
modelnum = buf[14];
|
|
||||||
switch (modelnum)
|
if (buf[13] == '0') // then we have a KX3 or KX2
|
||||||
{
|
{
|
||||||
case '1': model = "KX2";break;
|
char modelnum;
|
||||||
case '2': model = "KX3";break;
|
modelnum = buf[14];
|
||||||
default:
|
|
||||||
rig_debug(RIG_DEBUG_ERR, "%s: Unknown Elecraft modelnum=%c, expected 1 or 2\n", __func__, modelnum);
|
switch (modelnum)
|
||||||
break;
|
{
|
||||||
}
|
case '1': model = "KX2"; break;
|
||||||
if (strstr(buf,"P")) priv->has_kpa100 = 1;
|
|
||||||
}
|
case '2': model = "KX3"; break;
|
||||||
else {
|
|
||||||
model = "K3";
|
default:
|
||||||
if (strstr(buf,"R")) model = "K3S";
|
rig_debug(RIG_DEBUG_ERR, "%s: Unknown Elecraft modelnum=%c, expected 1 or 2\n",
|
||||||
}
|
__func__, modelnum);
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: model=%s, kpa3%d\n", __func__, model, priv->has_kpa3);
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strstr(buf, "P")) { priv->has_kpa100 = 1; }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
model = "K3";
|
||||||
|
|
||||||
|
if (strstr(buf, "R")) { model = "K3S"; }
|
||||||
|
}
|
||||||
|
|
||||||
|
rig_debug(RIG_DEBUG_TRACE, "%s: model=%s, kpa3%d\n", __func__, model,
|
||||||
|
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);
|
||||||
|
|
||||||
|
|
|
@ -1581,44 +1581,54 @@ int k3_get_split_mode(RIG *rig, vfo_t vfo, rmode_t *tx_mode,
|
||||||
|
|
||||||
static int k3_get_maxpower(RIG *rig)
|
static int k3_get_maxpower(RIG *rig)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
int maxpower = 12; // K3 default power level
|
int maxpower = 12; // K3 default power level
|
||||||
char levelbuf[16];
|
char levelbuf[16];
|
||||||
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
|
|
||||||
if (priv->has_kpa3 || priv->has_kpa100) maxpower = 110;
|
|
||||||
if (RIG_IS_KX2 || RIG_IS_KX3) {
|
|
||||||
|
|
||||||
int bandnum = -1;
|
// default range is 0-12 if there is no KPA3 installed
|
||||||
retval = kenwood_safe_transaction(rig, "BN", levelbuf, KENWOOD_MAX_BUF_LEN, 4);
|
if (priv->has_kpa3 || priv->has_kpa100) { maxpower = 110; }
|
||||||
if (retval != RIG_OK) { return retval; }
|
|
||||||
sscanf(levelbuf,"BN%d", &bandnum);
|
if (RIG_IS_KX2 || RIG_IS_KX3)
|
||||||
switch(bandnum)
|
{
|
||||||
{
|
|
||||||
case 1:
|
int bandnum = -1;
|
||||||
case 2:
|
retval = kenwood_safe_transaction(rig, "BN", levelbuf, KENWOOD_MAX_BUF_LEN, 4);
|
||||||
case 3:
|
|
||||||
case 4:
|
if (retval != RIG_OK) { return retval; }
|
||||||
case 5:
|
|
||||||
maxpower = 15;
|
sscanf(levelbuf, "BN%d", &bandnum);
|
||||||
break;
|
|
||||||
case 0: // 160M
|
switch (bandnum)
|
||||||
case 6: // 17M
|
{
|
||||||
case 7: // 15M
|
case 1:
|
||||||
case 8: // 12M
|
case 2:
|
||||||
case 9: // 10M
|
case 3:
|
||||||
maxpower = 12;
|
case 4:
|
||||||
break;
|
case 5:
|
||||||
case 10: // 6M
|
maxpower = 15;
|
||||||
maxpower = 10;
|
break;
|
||||||
break;
|
|
||||||
default: // are transverters all limited to 3W??
|
case 0: // 160M
|
||||||
maxpower = 3;
|
case 6: // 17M
|
||||||
break;
|
case 7: // 15M
|
||||||
}
|
case 8: // 12M
|
||||||
}
|
case 9: // 10M
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: maxpower=%d\n", __func__, maxpower);
|
maxpower = 12;
|
||||||
return maxpower;
|
break;
|
||||||
|
|
||||||
|
case 10: // 6M
|
||||||
|
maxpower = 10;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default: // are transverters all limited to 3W??
|
||||||
|
maxpower = 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rig_debug(RIG_DEBUG_TRACE, "%s: maxpower=%d\n", __func__, maxpower);
|
||||||
|
return maxpower;
|
||||||
}
|
}
|
||||||
|
|
||||||
int k3_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
int k3_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
|
@ -1724,8 +1734,9 @@ int k3_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_RFPOWER:
|
case RIG_LEVEL_RFPOWER:
|
||||||
snprintf(levelbuf, sizeof(levelbuf), "PC%03d", (int)(val.f * k3_get_maxpower(rig)));
|
snprintf(levelbuf, sizeof(levelbuf), "PC%03d",
|
||||||
break;
|
(int)(val.f * k3_get_maxpower(rig)));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return kenwood_set_level(rig, vfo, level, val);
|
return kenwood_set_level(rig, vfo, level, val);
|
||||||
|
@ -1970,7 +1981,7 @@ int k3_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
|
|
||||||
sscanf(levelbuf + 2, "%d", &lvl);
|
sscanf(levelbuf + 2, "%d", &lvl);
|
||||||
val->f = (float) lvl / 250.0f;
|
val->f = (float) lvl / 250.0f;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_AF:
|
case RIG_LEVEL_AF:
|
||||||
retval = kenwood_safe_transaction(rig, "AG", levelbuf, sizeof(levelbuf), 5);
|
retval = kenwood_safe_transaction(rig, "AG", levelbuf, sizeof(levelbuf), 5);
|
||||||
|
@ -1998,6 +2009,7 @@ int k3_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
sscanf(levelbuf + 2, "%d", &lvl);
|
sscanf(levelbuf + 2, "%d", &lvl);
|
||||||
val->f = (float) lvl / 60.0f;
|
val->f = (float) lvl / 60.0f;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_RFPOWER:
|
case RIG_LEVEL_RFPOWER:
|
||||||
retval = kenwood_safe_transaction(rig, "PC", levelbuf, sizeof(levelbuf), 5);
|
retval = kenwood_safe_transaction(rig, "PC", levelbuf, sizeof(levelbuf), 5);
|
||||||
|
|
||||||
|
@ -2008,7 +2020,7 @@ int k3_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
|
|
||||||
sscanf(levelbuf + 2, "%d", &lvl);
|
sscanf(levelbuf + 2, "%d", &lvl);
|
||||||
val->f = (float) lvl / k3_get_maxpower(rig);
|
val->f = (float) lvl / k3_get_maxpower(rig);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return kenwood_get_level(rig, vfo, level, val);
|
return kenwood_get_level(rig, vfo, level, val);
|
||||||
|
@ -2030,16 +2042,18 @@ int kx3_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
{
|
{
|
||||||
case RIG_LEVEL_RF:
|
case RIG_LEVEL_RF:
|
||||||
ival = val.f * (250.0 - 190.0) + 190.0;
|
ival = val.f * (250.0 - 190.0) + 190.0;
|
||||||
snprintf(cmdbuf,sizeof(cmdbuf)-1,"RG%03d", ival);
|
snprintf(cmdbuf, sizeof(cmdbuf) - 1, "RG%03d", ival);
|
||||||
return kenwood_transaction(rig, cmdbuf, NULL, 0);
|
return kenwood_transaction(rig, cmdbuf, NULL, 0);
|
||||||
|
|
||||||
case RIG_LEVEL_AF:
|
case RIG_LEVEL_AF:
|
||||||
// manual says 0-255 as of Rev G5 but experiment says 0-60
|
// manual says 0-255 as of Rev G5 but experiment says 0-60
|
||||||
snprintf(cmdbuf, sizeof(cmdbuf), "AG%03d", (int)(val.f * 60.0f));
|
snprintf(cmdbuf, sizeof(cmdbuf), "AG%03d", (int)(val.f * 60.0f));
|
||||||
return kenwood_transaction(rig, cmdbuf, NULL, 0);
|
return kenwood_transaction(rig, cmdbuf, NULL, 0);
|
||||||
|
|
||||||
case RIG_LEVEL_MICGAIN:
|
case RIG_LEVEL_MICGAIN:
|
||||||
// manual says 0-255 as of Rev G5 but experiment says 0-80
|
// manual says 0-255 as of Rev G5 but experiment says 0-80
|
||||||
snprintf(cmdbuf, sizeof(cmdbuf), "MG%03d", (int)(val.f * 80.0f));
|
snprintf(cmdbuf, sizeof(cmdbuf), "MG%03d", (int)(val.f * 80.0f));
|
||||||
return kenwood_transaction(rig, cmdbuf, NULL, 0);
|
return kenwood_transaction(rig, cmdbuf, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return k3_set_level(rig, vfo, level, val);
|
return k3_set_level(rig, vfo, level, val);
|
||||||
|
@ -2055,20 +2069,26 @@ int kx3_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
{
|
{
|
||||||
case RIG_LEVEL_AF:
|
case RIG_LEVEL_AF:
|
||||||
retval = get_kenwood_level(rig, "AG", NULL, &val->i);
|
retval = get_kenwood_level(rig, "AG", NULL, &val->i);
|
||||||
|
|
||||||
if (retval != RIG_OK) { return retval; }
|
if (retval != RIG_OK) { return retval; }
|
||||||
// manual says 0-255 as of Rev G5 but experiment says 0-60
|
|
||||||
|
// manual says 0-255 as of Rev G5 but experiment says 0-60
|
||||||
val->f = val->i / 60.0;
|
val->f = val->i / 60.0;
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
case RIG_LEVEL_RF:
|
case RIG_LEVEL_RF:
|
||||||
retval = get_kenwood_level(rig, "RG", NULL, &val->i);
|
retval = get_kenwood_level(rig, "RG", NULL, &val->i);
|
||||||
|
|
||||||
if (retval != RIG_OK) { return retval; }
|
if (retval != RIG_OK) { return retval; }
|
||||||
val->f = (val->i - 190.0) / (250.0-190.0);
|
|
||||||
|
val->f = (val->i - 190.0) / (250.0 - 190.0);
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
case RIG_LEVEL_MICGAIN:
|
case RIG_LEVEL_MICGAIN:
|
||||||
retval = get_kenwood_level(rig, "MG", NULL, &val->i);
|
retval = get_kenwood_level(rig, "MG", NULL, &val->i);
|
||||||
|
|
||||||
if (retval != RIG_OK) { return retval; }
|
if (retval != RIG_OK) { return retval; }
|
||||||
|
|
||||||
val->f = val->i / 80.0;
|
val->f = val->i / 80.0;
|
||||||
return retval;
|
return retval;
|
||||||
|
|
||||||
|
|
|
@ -2203,7 +2203,7 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
/*
|
/*
|
||||||
* Best estimate: 1.0 corresponds to 100W
|
* Best estimate: 1.0 corresponds to 100W
|
||||||
*/
|
*/
|
||||||
kenwood_val = val.f * 100;
|
kenwood_val = val.f * 100;
|
||||||
snprintf(levelbuf, sizeof(levelbuf), "PC%03d", kenwood_val);
|
snprintf(levelbuf, sizeof(levelbuf), "PC%03d", kenwood_val);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2240,6 +2240,7 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
case RIG_LEVEL_MICGAIN:
|
case RIG_LEVEL_MICGAIN:
|
||||||
|
|
||||||
if (val.f > 1.0 || val.f < 0) { return -RIG_EINVAL; }
|
if (val.f > 1.0 || val.f < 0) { return -RIG_EINVAL; }
|
||||||
|
|
||||||
kenwood_val = val.f * 100;
|
kenwood_val = val.f * 100;
|
||||||
snprintf(levelbuf, sizeof(levelbuf), "MG%03d", kenwood_val);
|
snprintf(levelbuf, sizeof(levelbuf), "MG%03d", kenwood_val);
|
||||||
break;
|
break;
|
||||||
|
@ -2249,6 +2250,7 @@ int kenwood_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
/* XXX check level range */
|
/* XXX check level range */
|
||||||
// KX2 and KX3 have range -190 to 250
|
// KX2 and KX3 have range -190 to 250
|
||||||
if (val.f > 1.0 || val.f < 0) { return -RIG_EINVAL; }
|
if (val.f > 1.0 || val.f < 0) { return -RIG_EINVAL; }
|
||||||
|
|
||||||
kenwood_val = val.f * 255.0;
|
kenwood_val = val.f * 255.0;
|
||||||
snprintf(levelbuf, sizeof(levelbuf), "RG%03d", kenwood_val);
|
snprintf(levelbuf, sizeof(levelbuf), "RG%03d", kenwood_val);
|
||||||
break;
|
break;
|
||||||
|
@ -2661,6 +2663,7 @@ int kenwood_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
||||||
rig_debug(RIG_DEBUG_ERR, "%s: Error getting MICGAIN\n", __func__);
|
rig_debug(RIG_DEBUG_ERR, "%s: Error getting MICGAIN\n", __func__);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
val->f = val->i / 255.0;
|
val->f = val->i / 255.0;
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
|
|
||||||
|
|
|
@ -2685,9 +2685,12 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
{
|
{
|
||||||
return -RIG_ENAVAIL;
|
return -RIG_ENAVAIL;
|
||||||
}
|
}
|
||||||
if (newcat_is_rig(rig, RIG_MODEL_TS890S)) // new format for the command with VFO selection
|
|
||||||
|
if (newcat_is_rig(rig,
|
||||||
|
RIG_MODEL_TS890S)) // new format for the command with VFO selection
|
||||||
{
|
{
|
||||||
format = "MS0%d;";
|
format = "MS0%d;";
|
||||||
|
|
||||||
if (vfo == RIG_VFO_SUB)
|
if (vfo == RIG_VFO_SUB)
|
||||||
{
|
{
|
||||||
format = "MS1%d";
|
format = "MS1%d";
|
||||||
|
@ -3672,9 +3675,12 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
||||||
|
|
||||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "NB0%d%c", status ? 1 : 0,
|
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "NB0%d%c", status ? 1 : 0,
|
||||||
cat_term);
|
cat_term);
|
||||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE){
|
|
||||||
priv->cmd_str[2] = main_sub_vfo;
|
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||||
|
{
|
||||||
|
priv->cmd_str[2] = main_sub_vfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_FUNC_NR:
|
case RIG_FUNC_NR:
|
||||||
|
@ -3685,9 +3691,12 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
||||||
|
|
||||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "NR0%d%c", status ? 1 : 0,
|
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "NR0%d%c", status ? 1 : 0,
|
||||||
cat_term);
|
cat_term);
|
||||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE){
|
|
||||||
priv->cmd_str[2] = main_sub_vfo;
|
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||||
|
{
|
||||||
|
priv->cmd_str[2] = main_sub_vfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_FUNC_COMP:
|
case RIG_FUNC_COMP:
|
||||||
|
|
20
src/ext.c
20
src/ext.c
|
@ -62,7 +62,8 @@ static int rig_has_ext_token(RIG *rig, token_t token)
|
||||||
|
|
||||||
for (i = 0; ext_tokens[i] != TOK_BACKEND_NONE; i++)
|
for (i = 0; ext_tokens[i] != TOK_BACKEND_NONE; i++)
|
||||||
{
|
{
|
||||||
if (ext_tokens[i] == token) {
|
if (ext_tokens[i] == token)
|
||||||
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,10 +84,10 @@ static int rig_has_ext_token(RIG *rig, token_t token)
|
||||||
* rig_ext_func_foreach.
|
* rig_ext_func_foreach.
|
||||||
*/
|
*/
|
||||||
int HAMLIB_API rig_ext_func_foreach(RIG *rig,
|
int HAMLIB_API rig_ext_func_foreach(RIG *rig,
|
||||||
int (*cfunc)(RIG *,
|
int (*cfunc)(RIG *,
|
||||||
const struct confparams *,
|
const struct confparams *,
|
||||||
rig_ptr_t),
|
rig_ptr_t),
|
||||||
rig_ptr_t data)
|
rig_ptr_t data)
|
||||||
{
|
{
|
||||||
const struct confparams *cfp;
|
const struct confparams *cfp;
|
||||||
|
|
||||||
|
@ -99,7 +100,8 @@ int HAMLIB_API rig_ext_func_foreach(RIG *rig,
|
||||||
|
|
||||||
for (cfp = rig->caps->extfuncs; cfp && cfp->name; cfp++)
|
for (cfp = rig->caps->extfuncs; cfp && cfp->name; cfp++)
|
||||||
{
|
{
|
||||||
if (!rig_has_ext_token(rig, cfp->token)) {
|
if (!rig_has_ext_token(rig, cfp->token))
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,7 +150,8 @@ int HAMLIB_API rig_ext_level_foreach(RIG *rig,
|
||||||
|
|
||||||
for (cfp = rig->caps->extlevels; cfp && cfp->name; cfp++)
|
for (cfp = rig->caps->extlevels; cfp && cfp->name; cfp++)
|
||||||
{
|
{
|
||||||
if (!rig_has_ext_token(rig, cfp->token)) {
|
if (!rig_has_ext_token(rig, cfp->token))
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +200,8 @@ int HAMLIB_API rig_ext_parm_foreach(RIG *rig,
|
||||||
|
|
||||||
for (cfp = rig->caps->extparms; cfp && cfp->name; cfp++)
|
for (cfp = rig->caps->extparms; cfp && cfp->name; cfp++)
|
||||||
{
|
{
|
||||||
if (!rig_has_ext_token(rig, cfp->token)) {
|
if (!rig_has_ext_token(rig, cfp->token))
|
||||||
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -534,9 +534,11 @@ int HAMLIB_API rig_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
||||||
|
|
||||||
return caps->set_func(rig, vfo, func, status);
|
return caps->set_func(rig, vfo, func, status);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
int targetable = caps->targetable_vfo & RIG_TARGETABLE_FUNC;
|
int targetable = caps->targetable_vfo & RIG_TARGETABLE_FUNC;
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: targetable=%d, vfo=%s, currvfo=%s\n", __func__, targetable, rig_strvfo(vfo), rig_strvfo(rig->state.current_vfo));
|
rig_debug(RIG_DEBUG_TRACE, "%s: targetable=%d, vfo=%s, currvfo=%s\n", __func__,
|
||||||
|
targetable, rig_strvfo(vfo), rig_strvfo(rig->state.current_vfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!caps->set_vfo)
|
if (!caps->set_vfo)
|
||||||
|
|
Ładowanie…
Reference in New Issue