kopia lustrzana https://github.com/Hamlib/Hamlib
Added FT950 "EX117" ANTIVOX level_set/get.
Added FT950 COMP Level_set/get. Added "AB" for FT950 VFO copy. Changed Command "VV" FT950 to FALSE. Added RIG_LEVEL_VOX bounds checking. Keep at ms for GRIG2. Added RIG_LEVEL_BKINDL bounds checking. Keep at ms for GRIG2. Changed newcat_set/get_freq to not set or change priv->current_vfo *** Want to NOT ping-pong vfos when changing freq. *** Changed newcat_get/set_rit logic. Changed newcat_get/set_xit logic. Changed RIG_LEVEL_IF logic. Found odd compiler problem with %+04d versus %+.4d Fixed some scale references between FT450 and FT950. Some code cleanup. Sorry cvs diff -wB Some testing on GRIG2 GUI and FlDigi. Terry KJ4EED git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2497 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.9
rodzic
6686489197
commit
3b71851086
|
@ -8,7 +8,7 @@
|
||||||
* via serial interface to an FT-950 using the "CAT" interface
|
* via serial interface to an FT-950 using the "CAT" interface
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Id: ft950.h,v 1.4 2008-12-06 02:37:45 mrtembry Exp $
|
* $Id: ft950.h,v 1.5 2008-12-10 23:53:56 mrtembry Exp $
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
|
@ -57,7 +57,8 @@
|
||||||
RIG_LEVEL_MICGAIN|RIG_LEVEL_IF|RIG_LEVEL_CWPITCH|\
|
RIG_LEVEL_MICGAIN|RIG_LEVEL_IF|RIG_LEVEL_CWPITCH|\
|
||||||
RIG_LEVEL_KEYSPD|RIG_LEVEL_AF|RIG_LEVEL_AGC|\
|
RIG_LEVEL_KEYSPD|RIG_LEVEL_AF|RIG_LEVEL_AGC|\
|
||||||
RIG_LEVEL_METER|RIG_LEVEL_BKINDL|RIG_LEVEL_SQL|\
|
RIG_LEVEL_METER|RIG_LEVEL_BKINDL|RIG_LEVEL_SQL|\
|
||||||
RIG_LEVEL_VOXGAIN|RIG_LEVEL_VOXDELAY)
|
RIG_LEVEL_VOXGAIN|RIG_LEVEL_VOXDELAY|RIG_LEVEL_COMP|\
|
||||||
|
RIG_LEVEL_ANTIVOX)
|
||||||
|
|
||||||
#define FT950_FUNCS (RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_LOCK|\
|
#define FT950_FUNCS (RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_LOCK|\
|
||||||
RIG_FUNC_MON|RIG_FUNC_NB|RIG_FUNC_NR|RIG_FUNC_VOX|\
|
RIG_FUNC_MON|RIG_FUNC_NB|RIG_FUNC_NR|RIG_FUNC_VOX|\
|
||||||
|
|
153
yaesu/newcat.c
153
yaesu/newcat.c
|
@ -13,7 +13,7 @@
|
||||||
* FT-950, FT-450. Much testing remains. -N0NB
|
* FT-950, FT-450. Much testing remains. -N0NB
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Id: newcat.c,v 1.16 2008-12-07 23:16:51 mrtembry Exp $
|
* $Id: newcat.c,v 1.17 2008-12-10 23:53:56 mrtembry Exp $
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
|
@ -171,7 +171,7 @@ yaesu_newcat_commands_t valid_commands[] = {
|
||||||
{"VM", TRUE, TRUE, TRUE, FALSE },
|
{"VM", TRUE, TRUE, TRUE, FALSE },
|
||||||
{"VR", TRUE, FALSE, FALSE, FALSE },
|
{"VR", TRUE, FALSE, FALSE, FALSE },
|
||||||
{"VS", TRUE, TRUE, TRUE, FALSE },
|
{"VS", TRUE, TRUE, TRUE, FALSE },
|
||||||
{"VV", TRUE, TRUE, FALSE, FALSE },
|
{"VV", TRUE, FALSE, FALSE, FALSE },
|
||||||
{"VX", TRUE, TRUE, TRUE, TRUE },
|
{"VX", TRUE, TRUE, TRUE, TRUE },
|
||||||
{"XT", FALSE, TRUE, TRUE, TRUE },
|
{"XT", FALSE, TRUE, TRUE, TRUE },
|
||||||
};
|
};
|
||||||
|
@ -310,10 +310,8 @@ int newcat_close(RIG *rig) {
|
||||||
* rig_set_freq
|
* rig_set_freq
|
||||||
*
|
*
|
||||||
* Set frequency for a given VFO
|
* Set frequency for a given VFO
|
||||||
*
|
* RIG_TARGETABLE_VFO
|
||||||
* If vfo is set to RIG_VFO_CUR then vfo from priv_data is used.
|
* Does not SET priv->current_vfo
|
||||||
* If vfo differs from stored value then VFO will be set to the
|
|
||||||
* passed vfo.
|
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -344,15 +342,19 @@ int newcat_set_freq(RIG *rig, vfo_t vfo, freq_t freq) {
|
||||||
freq < caps->rx_range_list2[0].start || freq > caps->rx_range_list2[0].end)
|
freq < caps->rx_range_list2[0].start || freq > caps->rx_range_list2[0].end)
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
if (vfo == RIG_VFO_CURR) {
|
//if (vfo == RIG_VFO_CURR) {
|
||||||
vfo = priv->current_vfo; /* from previous vfo cmd */
|
// vfo = priv->current_vfo; /* from previous vfo cmd */
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: priv->current_vfo = 0x%02x\n", __func__, vfo);
|
// rig_debug(RIG_DEBUG_TRACE, "%s: priv->current_vfo = 0x%02x\n", __func__, vfo);
|
||||||
} else if (vfo != priv->current_vfo) {
|
//} else if (vfo != priv->current_vfo) {
|
||||||
/* force a VFO change if requested vfo value differs from stored value */
|
// /* force a VFO change if requested vfo value differs from stored value */
|
||||||
err = newcat_set_vfo(rig, vfo);
|
// err = newcat_set_vfo(rig, vfo);
|
||||||
if (err != RIG_OK)
|
// if (err != RIG_OK)
|
||||||
|
// return err;
|
||||||
|
//}
|
||||||
|
|
||||||
|
err = newcat_set_vfo_from_alias(rig, &vfo);
|
||||||
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
}
|
|
||||||
|
|
||||||
switch (vfo) {
|
switch (vfo) {
|
||||||
case RIG_VFO_A:
|
case RIG_VFO_A:
|
||||||
|
@ -392,6 +394,8 @@ int newcat_set_freq(RIG *rig, vfo_t vfo, freq_t freq) {
|
||||||
* rig_get_freq
|
* rig_get_freq
|
||||||
*
|
*
|
||||||
* Return Freq for a given VFO
|
* Return Freq for a given VFO
|
||||||
|
* RIG_TARGETABLE_FREQ
|
||||||
|
* Does not SET priv->current_vfo
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -411,15 +415,19 @@ int newcat_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) {
|
||||||
priv = (struct newcat_priv_data *)rig->state.priv;
|
priv = (struct newcat_priv_data *)rig->state.priv;
|
||||||
state = &rig->state;
|
state = &rig->state;
|
||||||
|
|
||||||
if (vfo == RIG_VFO_CURR) {
|
//if (vfo == RIG_VFO_CURR) {
|
||||||
err = newcat_get_vfo(rig, &priv->current_vfo);
|
// err = newcat_get_vfo(rig, &priv->current_vfo);
|
||||||
if (err != RIG_OK)
|
// if (err != RIG_OK)
|
||||||
return err;
|
// return err;
|
||||||
|
|
||||||
vfo = priv->current_vfo; /* from previous get_vfo cmd */
|
// vfo = priv->current_vfo; /* from previous get_vfo cmd */
|
||||||
rig_debug(RIG_DEBUG_TRACE,
|
// rig_debug(RIG_DEBUG_TRACE,
|
||||||
"%s: priv->current_vfo = 0x%02x\n", __func__, vfo);
|
// "%s: priv->current_vfo = 0x%02x\n", __func__, vfo);
|
||||||
}
|
//}
|
||||||
|
|
||||||
|
err = newcat_set_vfo_from_alias(rig, &vfo);
|
||||||
|
if (err < 0)
|
||||||
|
return err;
|
||||||
|
|
||||||
switch(vfo) {
|
switch(vfo) {
|
||||||
case RIG_VFO_A:
|
case RIG_VFO_A:
|
||||||
|
@ -1056,21 +1064,18 @@ int newcat_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit)
|
||||||
struct newcat_priv_data *priv;
|
struct newcat_priv_data *priv;
|
||||||
struct rig_state *state;
|
struct rig_state *state;
|
||||||
int err;
|
int err;
|
||||||
shortfreq_t tmp_rit;
|
|
||||||
priv = (struct newcat_priv_data *)rig->state.priv;
|
priv = (struct newcat_priv_data *)rig->state.priv;
|
||||||
state = &rig->state;
|
state = &rig->state;
|
||||||
|
|
||||||
tmp_rit = rit;
|
if (abs(rit) > rig->caps->max_rit)
|
||||||
rit = abs(rit);
|
|
||||||
if (rit > rig->caps->max_rit)
|
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
if (tmp_rit == 0)
|
if (rit == 0)
|
||||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRT0%c", cat_term, cat_term);
|
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRT0%c", cat_term, cat_term);
|
||||||
else if (tmp_rit < 0)
|
else if (rit < 0)
|
||||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRD%04ld%cRT1%c", cat_term, rit, cat_term, cat_term);
|
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRD%04d%cRT1%c", cat_term, abs(rit), cat_term, cat_term);
|
||||||
else
|
else
|
||||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRU%04ld%cRT1%c", cat_term, rit, cat_term, cat_term);
|
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRU%04d%cRT1%c", cat_term, abs(rit), cat_term, cat_term);
|
||||||
|
|
||||||
err = write_block(&state->rigport, priv->cmd_str, strlen(priv->cmd_str));
|
err = write_block(&state->rigport, priv->cmd_str, strlen(priv->cmd_str));
|
||||||
if (err != RIG_OK)
|
if (err != RIG_OK)
|
||||||
|
@ -1136,24 +1141,21 @@ int newcat_set_xit(RIG * rig, vfo_t vfo, shortfreq_t xit)
|
||||||
struct newcat_priv_data *priv;
|
struct newcat_priv_data *priv;
|
||||||
struct rig_state *state;
|
struct rig_state *state;
|
||||||
int err;
|
int err;
|
||||||
shortfreq_t tmp_xit;
|
|
||||||
priv = (struct newcat_priv_data *)rig->state.priv;
|
priv = (struct newcat_priv_data *)rig->state.priv;
|
||||||
state = &rig->state;
|
state = &rig->state;
|
||||||
|
|
||||||
if (!newcat_valid_command(rig, "XT"))
|
if (!newcat_valid_command(rig, "XT"))
|
||||||
return -RIG_ENAVAIL;
|
return -RIG_ENAVAIL;
|
||||||
|
|
||||||
tmp_xit = xit;
|
if (abs(xit) > rig->caps->max_xit)
|
||||||
xit = abs(xit);
|
|
||||||
if (xit > rig->caps->max_xit)
|
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
if (tmp_xit == 0)
|
if (xit == 0)
|
||||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cXT0%c", cat_term, cat_term);
|
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cXT0%c", cat_term, cat_term);
|
||||||
else if (tmp_xit < 0)
|
else if (xit < 0)
|
||||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRD%04ld%cXT1%c", cat_term, xit, cat_term, cat_term);
|
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRD%04d%cXT1%c", cat_term, abs(xit), cat_term, cat_term);
|
||||||
else
|
else
|
||||||
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRU%04ld%cXT1%c", cat_term, xit, cat_term, cat_term);
|
snprintf(priv->cmd_str, sizeof(priv->cmd_str), "RC%cRU%04d%cXT1%c", cat_term, abs(xit), cat_term, cat_term);
|
||||||
|
|
||||||
err = write_block(&state->rigport, priv->cmd_str, strlen(priv->cmd_str));
|
err = write_block(&state->rigport, priv->cmd_str, strlen(priv->cmd_str));
|
||||||
if (err != RIG_OK)
|
if (err != RIG_OK)
|
||||||
|
@ -1496,8 +1498,7 @@ int newcat_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
int err;
|
int err;
|
||||||
int i;
|
int i;
|
||||||
char cmdstr[16];
|
char cmdstr[16];
|
||||||
float scale;
|
int scale;
|
||||||
char c;
|
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||||
|
|
||||||
|
@ -1509,7 +1510,7 @@ int newcat_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
|
|
||||||
switch (level) {
|
switch (level) {
|
||||||
case RIG_LEVEL_RFPOWER:
|
case RIG_LEVEL_RFPOWER:
|
||||||
scale = (newcat_is_rig(rig, RIG_MODEL_FT950)) ? 100. : 255.;
|
scale = (newcat_is_rig(rig, RIG_MODEL_FT950)) ? 100 : 255;
|
||||||
sprintf(cmdstr, "PC%03d%c", (int)(scale * val.f), cat_term);
|
sprintf(cmdstr, "PC%03d%c", (int)(scale * val.f), cat_term);
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_AF:
|
case RIG_LEVEL_AF:
|
||||||
|
@ -1526,11 +1527,9 @@ int newcat_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_IF:
|
case RIG_LEVEL_IF:
|
||||||
if (val.i < 0)
|
if (abs(val.i) > rig->caps->max_ifshift)
|
||||||
c = '-';
|
return -RIG_EINVAL;
|
||||||
else
|
sprintf(cmdstr, "IS0%+.4d;", val.i); /* format problem with %+04d */
|
||||||
c = '+'; /* FT950 IF Shift needs "+0000" for center */
|
|
||||||
sprintf(cmdstr, "IS0%c%04d;", c, abs(val.i));
|
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_CWPITCH:
|
case RIG_LEVEL_CWPITCH:
|
||||||
if (val.i < 300)
|
if (val.i < 300)
|
||||||
|
@ -1539,7 +1538,6 @@ int newcat_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
i = 1050;
|
i = 1050;
|
||||||
else
|
else
|
||||||
i = val.i;
|
i = val.i;
|
||||||
|
|
||||||
sprintf(cmdstr, "KP%02d;", 2*((i+50-300)/100));
|
sprintf(cmdstr, "KP%02d;", 2*((i+50-300)/100));
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_KEYSPD:
|
case RIG_LEVEL_KEYSPD:
|
||||||
|
@ -1593,10 +1591,17 @@ int newcat_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
sprintf(cmdstr, "RL0%02d;", (int)(10*val.f)+1);
|
sprintf(cmdstr, "RL0%02d;", (int)(10*val.f)+1);
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_COMP:
|
case RIG_LEVEL_COMP:
|
||||||
sprintf(cmdstr, "PL%03d;", (int)(255*val.f));
|
scale = (newcat_is_rig(rig, RIG_MODEL_FT950)) ? 100 : 255;
|
||||||
|
sprintf(cmdstr, "PL%03d;", (int)(scale * val.f));
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_BKINDL:
|
case RIG_LEVEL_BKINDL:
|
||||||
/* FIXME: should be tenth of dots, newcat expects ms */
|
/* FIXME: should be tenth of dots, newcat expects ms */
|
||||||
|
/* GUI GRIG2 expects ms so keep FT450 and FT950 BKIN DELAY in ms for now */
|
||||||
|
if (newcat_is_rig(rig, RIG_MODEL_FT950) || newcat_is_rig(rig, RIG_MODEL_FT450)) {
|
||||||
|
if (((val.i > 0) && (val.i < 30)) || (val.i > 3000)) /* 0000, is rejected by FT950 */
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
sprintf(cmdstr, "SD%04d;", val.i);
|
||||||
|
} else
|
||||||
sprintf(cmdstr, "SD%04d;", val.i);
|
sprintf(cmdstr, "SD%04d;", val.i);
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_SQL:
|
case RIG_LEVEL_SQL:
|
||||||
|
@ -1604,12 +1609,28 @@ int newcat_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val)
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_VOX:
|
case RIG_LEVEL_VOX:
|
||||||
/* VOX delay, arg int (tenth of seconds), expects ms */
|
/* VOX delay, arg int (tenth of seconds), expects ms */
|
||||||
|
/* GUI GRIG2 expects ms so keep FT950 and FT450 VOX delay in ms */
|
||||||
|
if (newcat_is_rig(rig, RIG_MODEL_FT950)) {
|
||||||
|
if (((val.i >= 0) && (val.i < 30)) || (val.i > 3000))
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
sprintf(cmdstr, "VD%04d;", val.i);
|
||||||
|
} else if (newcat_is_rig(rig, RIG_MODEL_FT450)) {
|
||||||
|
if (((val.i >= 0) && (val.i < 100)) || (val.i > 3000))
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
sprintf(cmdstr, "VD%04d;", val.i);
|
||||||
|
} else
|
||||||
sprintf(cmdstr, "VD%04d;", val.i*100);
|
sprintf(cmdstr, "VD%04d;", val.i*100);
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_VOXGAIN:
|
case RIG_LEVEL_VOXGAIN:
|
||||||
scale = (newcat_is_rig(rig, RIG_MODEL_FT950)) ? 100. : 255.;
|
scale = (newcat_is_rig(rig, RIG_MODEL_FT950)) ? 100 : 255;
|
||||||
sprintf(cmdstr, "VG%03d;", (int)(scale * val.f));
|
sprintf(cmdstr, "VG%03d;", (int)(scale * val.f));
|
||||||
break;
|
break;
|
||||||
|
case RIG_LEVEL_ANTIVOX:
|
||||||
|
if (newcat_is_rig(rig, RIG_MODEL_FT950))
|
||||||
|
sprintf(cmdstr, "EX117%03d;", (int)(100 * val.f));
|
||||||
|
else
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -1706,6 +1727,12 @@ int newcat_get_level(RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
||||||
case RIG_LEVEL_ALC:
|
case RIG_LEVEL_ALC:
|
||||||
cmdstr = "RM4;";
|
cmdstr = "RM4;";
|
||||||
break;
|
break;
|
||||||
|
case RIG_LEVEL_ANTIVOX:
|
||||||
|
if (newcat_is_rig(rig, RIG_MODEL_FT950))
|
||||||
|
cmdstr = "EX117;";
|
||||||
|
else
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
@ -1735,6 +1762,8 @@ int newcat_get_level(RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
||||||
switch (level) {
|
switch (level) {
|
||||||
case RIG_LEVEL_RFPOWER:
|
case RIG_LEVEL_RFPOWER:
|
||||||
case RIG_LEVEL_VOXGAIN:
|
case RIG_LEVEL_VOXGAIN:
|
||||||
|
case RIG_LEVEL_COMP:
|
||||||
|
case RIG_LEVEL_ANTIVOX:
|
||||||
scale = (newcat_is_rig(rig, RIG_MODEL_FT950)) ? 100. : 255.;
|
scale = (newcat_is_rig(rig, RIG_MODEL_FT950)) ? 100. : 255.;
|
||||||
val->f = (float)atoi(retlvl)/scale;
|
val->f = (float)atoi(retlvl)/scale;
|
||||||
break;
|
break;
|
||||||
|
@ -1742,25 +1771,26 @@ int newcat_get_level(RIG * rig, vfo_t vfo, setting_t level, value_t * val)
|
||||||
case RIG_LEVEL_MICGAIN:
|
case RIG_LEVEL_MICGAIN:
|
||||||
case RIG_LEVEL_RF:
|
case RIG_LEVEL_RF:
|
||||||
case RIG_LEVEL_SQL:
|
case RIG_LEVEL_SQL:
|
||||||
case RIG_LEVEL_COMP:
|
|
||||||
case RIG_LEVEL_SWR:
|
case RIG_LEVEL_SWR:
|
||||||
case RIG_LEVEL_ALC:
|
case RIG_LEVEL_ALC:
|
||||||
val->f = (float)atoi(retlvl)/255.;
|
val->f = (float)atoi(retlvl)/255.;
|
||||||
break;
|
break;
|
||||||
|
case RIG_LEVEL_BKINDL: /* FIXME FT950 FT450 works with GUI GRIG2; */
|
||||||
case RIG_LEVEL_RAWSTR:
|
case RIG_LEVEL_RAWSTR:
|
||||||
case RIG_LEVEL_KEYSPD:
|
case RIG_LEVEL_KEYSPD:
|
||||||
case RIG_LEVEL_BKINDL: /* FIXME */
|
|
||||||
case RIG_LEVEL_IF:
|
case RIG_LEVEL_IF:
|
||||||
val->i = atoi(retlvl);
|
val->i = atoi(retlvl);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RIG_LEVEL_NR:
|
case RIG_LEVEL_NR:
|
||||||
val->f = (float)(atoi(retlvl)-1)/10.;
|
val->f = (float)(atoi(retlvl)-1)/10.;
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_VOX:
|
case RIG_LEVEL_VOX:
|
||||||
|
if (newcat_is_rig(rig, RIG_MODEL_FT950) || newcat_is_rig(rig, RIG_MODEL_FT450)) {
|
||||||
|
val->i = atoi(retlvl); /* ms, works with GRIG2 */
|
||||||
|
} else {
|
||||||
/* VOX delay, arg int (tenth of seconds) */
|
/* VOX delay, arg int (tenth of seconds) */
|
||||||
val->i = atoi(retlvl)/100;
|
val->i = atoi(retlvl)/100;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case RIG_LEVEL_PREAMP:
|
case RIG_LEVEL_PREAMP:
|
||||||
if (retlvl[0] < '0' || retlvl[0] > '9')
|
if (retlvl[0] < '0' || retlvl[0] > '9')
|
||||||
|
@ -1821,10 +1851,10 @@ int newcat_set_func(RIG * rig, vfo_t vfo, setting_t func, int status)
|
||||||
|
|
||||||
switch (func) {
|
switch (func) {
|
||||||
case RIG_FUNC_ANF:
|
case RIG_FUNC_ANF:
|
||||||
sprintf(cmdstr, "BC%d;", status ? 1 : 0);
|
sprintf(cmdstr, "BC0%d;", status ? 1 : 0);
|
||||||
break;
|
break;
|
||||||
case RIG_FUNC_MN:
|
case RIG_FUNC_MN:
|
||||||
sprintf(cmdstr, "BP00%d;", status ? 1 : 0);
|
sprintf(cmdstr, "BP00%03d;", status ? 1 : 0);
|
||||||
break;
|
break;
|
||||||
case RIG_FUNC_FBKIN:
|
case RIG_FUNC_FBKIN:
|
||||||
sprintf(cmdstr, "BI%d;", status ? 1 : 0);
|
sprintf(cmdstr, "BI%d;", status ? 1 : 0);
|
||||||
|
@ -1884,7 +1914,7 @@ int newcat_get_func(RIG * rig, vfo_t vfo, setting_t func, int *status)
|
||||||
|
|
||||||
switch (func) {
|
switch (func) {
|
||||||
case RIG_FUNC_ANF:
|
case RIG_FUNC_ANF:
|
||||||
cmdstr = "BC;";
|
cmdstr = "BC0;";
|
||||||
break;
|
break;
|
||||||
case RIG_FUNC_MN:
|
case RIG_FUNC_MN:
|
||||||
cmdstr = "BP00;";
|
cmdstr = "BP00;";
|
||||||
|
@ -1943,8 +1973,10 @@ int newcat_get_func(RIG * rig, vfo_t vfo, setting_t func, int *status)
|
||||||
priv->ret_data[ret_data_len-1] = '\0';
|
priv->ret_data[ret_data_len-1] = '\0';
|
||||||
|
|
||||||
switch (func) {
|
switch (func) {
|
||||||
case RIG_FUNC_ANF:
|
|
||||||
case RIG_FUNC_MN:
|
case RIG_FUNC_MN:
|
||||||
|
*status = (retfunc[2] == '0') ? 0 : 1;
|
||||||
|
break;
|
||||||
|
case RIG_FUNC_ANF:
|
||||||
case RIG_FUNC_FBKIN:
|
case RIG_FUNC_FBKIN:
|
||||||
case RIG_FUNC_LOCK:
|
case RIG_FUNC_LOCK:
|
||||||
case RIG_FUNC_MON:
|
case RIG_FUNC_MON:
|
||||||
|
@ -2156,7 +2188,10 @@ int newcat_vfo_op(RIG * rig, vfo_t vfo, vfo_op_t op)
|
||||||
cmdstr = "AC002;";
|
cmdstr = "AC002;";
|
||||||
break;
|
break;
|
||||||
case RIG_OP_CPY:
|
case RIG_OP_CPY:
|
||||||
|
if (newcat_is_rig(rig, RIG_MODEL_FT450))
|
||||||
cmdstr = "VV;";
|
cmdstr = "VV;";
|
||||||
|
else
|
||||||
|
cmdstr = "AB;"; /* VFO_A to VFO_B */
|
||||||
break;
|
break;
|
||||||
case RIG_OP_XCHG:
|
case RIG_OP_XCHG:
|
||||||
cmdstr = "SV;";
|
cmdstr = "SV;";
|
||||||
|
@ -2669,13 +2704,13 @@ int newcat_set_vfo_from_alias(RIG * rig, vfo_t * vfo) {
|
||||||
struct newcat_priv_data *priv;
|
struct newcat_priv_data *priv;
|
||||||
priv = (struct newcat_priv_data *)rig->state.priv;
|
priv = (struct newcat_priv_data *)rig->state.priv;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_TRACE, "%s: raw vfo = 0x%02x\n", __func__, *vfo);
|
rig_debug(RIG_DEBUG_TRACE, "%s: alias vfo = 0x%02x\n", __func__, *vfo);
|
||||||
|
|
||||||
switch (*vfo) {
|
switch (*vfo) {
|
||||||
case RIG_VFO_A:
|
case RIG_VFO_A:
|
||||||
case RIG_VFO_B:
|
case RIG_VFO_B:
|
||||||
case RIG_VFO_MEM:
|
case RIG_VFO_MEM:
|
||||||
/* pass these through */
|
/* passes through */
|
||||||
break;
|
break;
|
||||||
case RIG_VFO_CURR: /* RIG_VFO_RX == RIG_VFO_CURR */
|
case RIG_VFO_CURR: /* RIG_VFO_RX == RIG_VFO_CURR */
|
||||||
case RIG_VFO_VFO:
|
case RIG_VFO_VFO:
|
||||||
|
|
Ładowanie…
Reference in New Issue