kopia lustrzana https://github.com/Hamlib/Hamlib
Add RIG_TARGETABLE_FUNC and RIG_TARGETABLE_TONE to ftdx101d
Ensure VFO is only set on FUNC calls when TARGETABLE_FUNC is on for newcat.c https://github.com/Hamlib/Hamlib/issues/385pull/412/head
rodzic
37cff7ffc1
commit
f0dc0f71d4
|
@ -87,7 +87,7 @@ const struct rig_caps ftdx5000_caps =
|
|||
.max_xit = Hz(9999),
|
||||
.max_ifshift = Hz(1000),
|
||||
.vfo_ops = FTDX5000_VFO_OPS,
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE,
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE | RIG_TARGETABLE_TONE,
|
||||
.transceive = RIG_TRN_OFF, /* May enable later as the 5000 has an Auto Info command */
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 0,
|
||||
|
@ -387,7 +387,7 @@ const struct rig_caps ftdx101d_caps =
|
|||
RIG_MODEL(RIG_MODEL_FTDX101D),
|
||||
.model_name = "FT-DX101D",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = NEWCAT_VER ".0",
|
||||
.version = NEWCAT_VER ".1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -422,7 +422,7 @@ const struct rig_caps ftdx101d_caps =
|
|||
.max_xit = Hz(9999),
|
||||
.max_ifshift = Hz(1000),
|
||||
.vfo_ops = FTDX5000_VFO_OPS,
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE,
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE | RIG_TARGETABLE_FUNC,
|
||||
.transceive = RIG_TRN_OFF, /* May enable later as the 5000 has an Auto Info command */
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 0,
|
||||
|
|
|
@ -3550,7 +3550,7 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
return err;
|
||||
}
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
if (rig->caps->targetable_vfo & (RIG_TARGETABLE_MODE | RIG_TARGETABLE_TONE))
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo) ? '1' : '0';
|
||||
}
|
||||
|
@ -3607,7 +3607,12 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "CT0%d%c", status ? 2 : 0,
|
||||
cat_term);
|
||||
priv->cmd_str[2] = main_sub_vfo;
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_TONE)
|
||||
{
|
||||
priv->cmd_str[2] = main_sub_vfo;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case RIG_FUNC_TSQL:
|
||||
|
@ -3618,7 +3623,12 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "CT0%d%c", status ? 1 : 0,
|
||||
cat_term);
|
||||
priv->cmd_str[2] = main_sub_vfo;
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_TONE)
|
||||
{
|
||||
priv->cmd_str[2] = main_sub_vfo;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case RIG_FUNC_LOCK:
|
||||
|
@ -3649,7 +3659,9 @@ 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,
|
||||
cat_term);
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE){
|
||||
priv->cmd_str[2] = main_sub_vfo;
|
||||
}
|
||||
break;
|
||||
|
||||
case RIG_FUNC_NR:
|
||||
|
@ -3660,7 +3672,9 @@ 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,
|
||||
cat_term);
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE){
|
||||
priv->cmd_str[2] = main_sub_vfo;
|
||||
}
|
||||
break;
|
||||
|
||||
case RIG_FUNC_COMP:
|
||||
|
@ -3780,7 +3794,7 @@ int newcat_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "CT0%c", cat_term);
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_TONE)
|
||||
{
|
||||
priv->cmd_str[2] = main_sub_vfo;
|
||||
}
|
||||
|
@ -3795,7 +3809,7 @@ int newcat_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
|
||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "CT0%c", cat_term);
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_MODE)
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_TONE)
|
||||
{
|
||||
priv->cmd_str[2] = main_sub_vfo;
|
||||
}
|
||||
|
@ -6485,56 +6499,56 @@ int newcat_get_cmd(RIG *rig)
|
|||
}
|
||||
|
||||
// any command that is read only should not expire cache
|
||||
is_read_cmd =
|
||||
strcmp(priv->cmd_str,"AG0;")==0
|
||||
|| strcmp(priv->cmd_str,"AG1;")==0
|
||||
|| strcmp(priv->cmd_str,"AN0;")==0
|
||||
|| strcmp(priv->cmd_str,"AN1;")==0
|
||||
|| strcmp(priv->cmd_str,"BP00;")==0
|
||||
|| strcmp(priv->cmd_str,"BP01;")==0
|
||||
|| strcmp(priv->cmd_str,"BP10;")==0
|
||||
|| strcmp(priv->cmd_str,"BP11;")==0
|
||||
|| strcmp(priv->cmd_str,"CN00;")==0
|
||||
|| strcmp(priv->cmd_str,"CN10;")==0
|
||||
|| strcmp(priv->cmd_str,"CO00;")==0
|
||||
|| strcmp(priv->cmd_str,"CO01;")==0
|
||||
|| strcmp(priv->cmd_str,"CO02;")==0
|
||||
|| strcmp(priv->cmd_str,"CO03;")==0
|
||||
|| strcmp(priv->cmd_str,"CO10;")==0
|
||||
|| strcmp(priv->cmd_str,"CO11;")==0
|
||||
|| strcmp(priv->cmd_str,"CO12;")==0
|
||||
|| strcmp(priv->cmd_str,"CO13;")==0
|
||||
|| strcmp(priv->cmd_str,"IS1;")==0
|
||||
|| strcmp(priv->cmd_str,"IS0;")==0
|
||||
|| strcmp(priv->cmd_str,"IS1;")==0
|
||||
|| strcmp(priv->cmd_str,"MD0;")==0
|
||||
|| strcmp(priv->cmd_str,"MD1;")==0
|
||||
|| strcmp(priv->cmd_str,"NA0;")==0
|
||||
|| strcmp(priv->cmd_str,"NA1;")==0
|
||||
|| strcmp(priv->cmd_str,"NB0;")==0
|
||||
|| strcmp(priv->cmd_str,"NB1;")==0
|
||||
|| strcmp(priv->cmd_str,"NL0;")==0
|
||||
|| strcmp(priv->cmd_str,"NL1;")==0
|
||||
|| strcmp(priv->cmd_str,"NR0;")==0
|
||||
|| strcmp(priv->cmd_str,"NR1;")==0
|
||||
|| strcmp(priv->cmd_str,"OS0;")==0
|
||||
|| strcmp(priv->cmd_str,"OS1;")==0
|
||||
|| strcmp(priv->cmd_str,"PA0;")==0
|
||||
|| strcmp(priv->cmd_str,"PA1;")==0
|
||||
|| strcmp(priv->cmd_str,"RA0;")==0
|
||||
|| strcmp(priv->cmd_str,"RA1;")==0
|
||||
|| strcmp(priv->cmd_str,"RF0;")==0
|
||||
|| strcmp(priv->cmd_str,"RF1;")==0
|
||||
|| strcmp(priv->cmd_str,"RL0;")==0
|
||||
|| strcmp(priv->cmd_str,"RL1;")==0
|
||||
|| strcmp(priv->cmd_str,"RM0;")==0
|
||||
|| strcmp(priv->cmd_str,"RM1;")==0
|
||||
|| strcmp(priv->cmd_str,"SM0;")==0
|
||||
|| strcmp(priv->cmd_str,"SM1;")==0
|
||||
|| strcmp(priv->cmd_str,"SQ0;")==0
|
||||
|| strcmp(priv->cmd_str,"SQ1;")==0
|
||||
|| strcmp(priv->cmd_str,"VT0;")==0
|
||||
|| strcmp(priv->cmd_str,"VT1;")==0;
|
||||
is_read_cmd =
|
||||
strcmp(priv->cmd_str, "AG0;") == 0
|
||||
|| strcmp(priv->cmd_str, "AG1;") == 0
|
||||
|| strcmp(priv->cmd_str, "AN0;") == 0
|
||||
|| strcmp(priv->cmd_str, "AN1;") == 0
|
||||
|| strcmp(priv->cmd_str, "BP00;") == 0
|
||||
|| strcmp(priv->cmd_str, "BP01;") == 0
|
||||
|| strcmp(priv->cmd_str, "BP10;") == 0
|
||||
|| strcmp(priv->cmd_str, "BP11;") == 0
|
||||
|| strcmp(priv->cmd_str, "CN00;") == 0
|
||||
|| strcmp(priv->cmd_str, "CN10;") == 0
|
||||
|| strcmp(priv->cmd_str, "CO00;") == 0
|
||||
|| strcmp(priv->cmd_str, "CO01;") == 0
|
||||
|| strcmp(priv->cmd_str, "CO02;") == 0
|
||||
|| strcmp(priv->cmd_str, "CO03;") == 0
|
||||
|| strcmp(priv->cmd_str, "CO10;") == 0
|
||||
|| strcmp(priv->cmd_str, "CO11;") == 0
|
||||
|| strcmp(priv->cmd_str, "CO12;") == 0
|
||||
|| strcmp(priv->cmd_str, "CO13;") == 0
|
||||
|| strcmp(priv->cmd_str, "IS1;") == 0
|
||||
|| strcmp(priv->cmd_str, "IS0;") == 0
|
||||
|| strcmp(priv->cmd_str, "IS1;") == 0
|
||||
|| strcmp(priv->cmd_str, "MD0;") == 0
|
||||
|| strcmp(priv->cmd_str, "MD1;") == 0
|
||||
|| strcmp(priv->cmd_str, "NA0;") == 0
|
||||
|| strcmp(priv->cmd_str, "NA1;") == 0
|
||||
|| strcmp(priv->cmd_str, "NB0;") == 0
|
||||
|| strcmp(priv->cmd_str, "NB1;") == 0
|
||||
|| strcmp(priv->cmd_str, "NL0;") == 0
|
||||
|| strcmp(priv->cmd_str, "NL1;") == 0
|
||||
|| strcmp(priv->cmd_str, "NR0;") == 0
|
||||
|| strcmp(priv->cmd_str, "NR1;") == 0
|
||||
|| strcmp(priv->cmd_str, "OS0;") == 0
|
||||
|| strcmp(priv->cmd_str, "OS1;") == 0
|
||||
|| strcmp(priv->cmd_str, "PA0;") == 0
|
||||
|| strcmp(priv->cmd_str, "PA1;") == 0
|
||||
|| strcmp(priv->cmd_str, "RA0;") == 0
|
||||
|| strcmp(priv->cmd_str, "RA1;") == 0
|
||||
|| strcmp(priv->cmd_str, "RF0;") == 0
|
||||
|| strcmp(priv->cmd_str, "RF1;") == 0
|
||||
|| strcmp(priv->cmd_str, "RL0;") == 0
|
||||
|| strcmp(priv->cmd_str, "RL1;") == 0
|
||||
|| strcmp(priv->cmd_str, "RM0;") == 0
|
||||
|| strcmp(priv->cmd_str, "RM1;") == 0
|
||||
|| strcmp(priv->cmd_str, "SM0;") == 0
|
||||
|| strcmp(priv->cmd_str, "SM1;") == 0
|
||||
|| strcmp(priv->cmd_str, "SQ0;") == 0
|
||||
|| strcmp(priv->cmd_str, "SQ1;") == 0
|
||||
|| strcmp(priv->cmd_str, "VT0;") == 0
|
||||
|| strcmp(priv->cmd_str, "VT1;") == 0;
|
||||
|
||||
if (priv->cmd_str[2] !=
|
||||
';' && !is_read_cmd) // then we must be setting something so we'll invalidate the cache
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
typedef char ncboolean;
|
||||
|
||||
/* shared function version */
|
||||
#define NEWCAT_VER "20200926"
|
||||
#define NEWCAT_VER "20200927"
|
||||
|
||||
/* Hopefully large enough for future use, 128 chars plus '\0' */
|
||||
#define NEWCAT_DATA_LEN 129
|
||||
|
|
Ładowanie…
Reference in New Issue