Added skeleton for new get_ant function that will return ant_tx and ant_rx if known

Every rig will need to be reviewed to fill these in as appropriate
pull/224/head
Michael Black 2020-02-18 23:10:14 -06:00
rodzic 4a964d7fac
commit e315f5e3ac
27 zmienionych plików z 105 dodań i 61 usunięć

Wyświetl plik

@ -540,9 +540,9 @@ void Rig::setAnt(value_t option, ant_t ant, vfo_t vfo)
CHECK_RIG(rig_set_ant(theRig, vfo, ant, option));
}
ant_t Rig::getAnt(value_t &option, ant_t ant, ant_t &ant_curr, vfo_t vfo)
ant_t Rig::getAnt(ant_t &ant_rx, ant_t &ant_tx, ant_t ant, value_t &option, ant_t &ant_curr, vfo_t vfo)
{
CHECK_RIG( rig_get_ant(theRig, vfo, ant, &ant_curr, &option) );
CHECK_RIG( rig_get_ant(theRig, vfo, ant, &option, &ant_curr, &ant_tx, &ant_rx) );
return ant;
}

Wyświetl plik

@ -1768,7 +1768,7 @@ static int netrigctl_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
}
static int netrigctl_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, value_t *option)
static int netrigctl_get_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
int ret, len;
char cmd[CMD_MAX];
@ -1777,6 +1777,8 @@ static int netrigctl_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, v
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
ret = netrigctl_vfostr(rig, vfostr, sizeof(vfostr), vfo);
if (ret != RIG_OK) { return ret; }

Wyświetl plik

@ -157,7 +157,7 @@ public:
shortfreq_t getXit(vfo_t vfo = RIG_VFO_CURR);
void setAnt(value_t option, ant_t ant, vfo_t vfo = RIG_VFO_CURR);
ant_t getAnt(value_t &option, ant_t ant, ant_t &ant_curr, vfo_t vfo = RIG_VFO_CURR);
ant_t getAnt(ant_t &ant_rx, ant_t &ant_tx, ant_t ant, value_t &option, ant_t &ant_curr, vfo_t vfo = RIG_VFO_CURR);
void sendDtmf(const char *digits, vfo_t vfo = RIG_VFO_CURR);
int recvDtmf(char *digits, vfo_t vfo = RIG_VFO_CURR);

Wyświetl plik

@ -504,12 +504,14 @@ int drake_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
* drake_get_ant
* Assumes rig!=NULL
*/
int drake_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int drake_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
int mdbuf_len, retval;
char mdbuf[BUFSZ];
char cant;
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
retval = drake_transaction(rig, "RM" EOM, 3, mdbuf, &mdbuf_len);
if (retval != RIG_OK)
@ -528,17 +530,17 @@ int drake_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
switch (cant & 0x3c)
{
case '0': *ant = RIG_ANT_1; break;
case '0': *ant_curr = RIG_ANT_1; break;
case '4': *ant = RIG_ANT_3; break;
case '4': *ant_curr = RIG_ANT_3; break;
case '8': *ant = RIG_ANT_2; break;
case '8': *ant_curr = RIG_ANT_2; break;
default :
rig_debug(RIG_DEBUG_ERR,
"drake_get_ant: unsupported antenna %c\n",
cant);
*ant = RIG_ANT_NONE;
*ant_curr = RIG_ANT_UNKNOWN;
return -RIG_EINVAL;
}
return RIG_OK;

Wyświetl plik

@ -39,7 +39,7 @@ int drake_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
int drake_init(RIG *rig);
int drake_cleanup(RIG *rig);
int drake_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
int drake_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option);
int drake_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
int drake_set_mem(RIG *rig, vfo_t vfo, int ch);
int drake_get_mem(RIG *rig, vfo_t vfo, int *ch);
int drake_set_chan(RIG *rig, const channel_t *chan);

Wyświetl plik

@ -2875,7 +2875,7 @@ int elad_set_ant_no_ack(RIG *rig, vfo_t vfo, ant_t ant)
/*
* get the aerial/antenna in use
*/
int elad_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int elad_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
char ackbuf[8];
int offs;
@ -2904,7 +2904,7 @@ int elad_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
return -RIG_EPROTO;
}
*ant = RIG_ANT_N(ackbuf[offs] - '1');
*ant_curr = RIG_ANT_N(ackbuf[offs] - '1');
/* XXX check that the returned antenna is valid for the current rig */

Wyświetl plik

@ -140,7 +140,7 @@ int elad_reset(RIG *rig, reset_t reset);
int elad_send_morse(RIG *rig, vfo_t vfo, const char *msg);
int elad_set_ant (RIG * rig, vfo_t vfo, ant_t ant, value_t option);
int elad_set_ant_no_ack(RIG * rig, vfo_t vfo, ant_t ant);
int elad_get_ant (RIG * rig, vfo_t vfo, ant_t dummy, ant_t * ant, value_t *option);
int elad_get_ant (RIG * rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
int elad_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt);
int elad_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
int elad_set_ptt_safe(RIG *rig, vfo_t vfo, ptt_t ptt);

Wyświetl plik

@ -417,7 +417,7 @@ const struct rig_caps ic9700_caps =
.rig_model = RIG_MODEL_IC9700,
.model_name = "IC-9700",
.mfg_name = "Icom",
.version = BACKEND_VER ".3",
.version = BACKEND_VER ".3a",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,

Wyświetl plik

@ -47,6 +47,8 @@
#define VFO_HAS_MAIN_SUB_ONLY ((!VFO_HAS_A_B) & VFO_HAS_MAIN_SUB)
#define VFO_HAS_MAIN_SUB_A_B_ONLY (VFO_HAS_A_B & VFO_HAS_MAIN_SUB)
#define VFO_HAS_A_B_ONLY (VFO_HAS_A_B & (!VFO_HAS_MAIN_SUB))
#define VFO_DUAL(RIG_VFO_MAIN_A|RIG_VFO_MAIN_B|RIG_VFO_SUB_A|RIG_VFO_SUB_B)
#define VFO_HAS_DUAL((rig->state.vfo_list & VFO_DUAL) == VFO_DUAL)
static int set_vfo_curr(RIG *rig, vfo_t vfo, vfo_t curr_vfo);
@ -3958,7 +3960,7 @@ int icom_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
if (vfo == RIG_VFO_CURR) {
rig_debug(RIG_DEBUG_TRACE,"%s: asking for currVFO=%s\n", __func__, rig_strvfo(priv->curr_vfo));
rig_debug(RIG_DEBUG_TRACE,"%s: asking for currVFO=(%d)%s\n", __func__, priv->curr_vfo, rig_strvfo(priv->curr_vfo));
vfo = priv->curr_vfo;
}
@ -5395,10 +5397,10 @@ int icom_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
if (priv_caps->antack_len == 0) { // we need to find out the antack_len
ant_t tmp_ant;
ant_t tmp_ant, ant_tx, ant_rx;
int ant = 0;
value_t tmp_option;
retval = rig_get_ant(rig, vfo, ant, &tmp_ant, &tmp_option);
retval = rig_get_ant(rig, vfo, ant, &tmp_option, &tmp_ant, &ant_tx, &ant_rx);
if (retval != RIG_OK) {
rig_debug(RIG_DEBUG_ERR,"%s: rig_get_ant error: %s \n", __func__, rigerror(retval));
return retval;
@ -5470,7 +5472,7 @@ int icom_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
* Assumes rig!=NULL, rig->state.priv!=NULL
* only meaningfull for HF
*/
int icom_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, value_t *option)
int icom_get_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
unsigned char ackbuf[MAXFRAMELEN];
int ack_len = sizeof(ackbuf), retval;
@ -5478,6 +5480,9 @@ int icom_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, value_t *optio
rig_debug(RIG_DEBUG_VERBOSE, "%s called, ant=0x%02x\n", __func__, ant);
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
if (ant != RIG_ANT_CURR)
{
ant = rig_setting2idx(ant);

Wyświetl plik

@ -30,7 +30,7 @@
#include <sys/time.h>
#endif
#define BACKEND_VER "0.28"
#define BACKEND_VER "0.28a"
/*
* defines used by comp_cal_str in rig.c
@ -257,7 +257,7 @@ int icom_get_conf(RIG *rig, token_t token, char *val);
int icom_set_powerstat(RIG *rig, powerstat_t status);
int icom_get_powerstat(RIG *rig, powerstat_t *status);
int icom_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
int icom_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, value_t *option);
int icom_get_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
int icom_decode_event(RIG *rig);
int icom_power2mW(RIG *rig, unsigned int *mwpower, float power, freq_t freq,
rmode_t mode);

Wyświetl plik

@ -445,11 +445,12 @@ int ic10_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
* ic10_get_ant
* Assumes rig!=NULL, ptt!=NULL
*/
int ic10_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int ic10_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
char infobuf[50];
int info_len, retval;
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
info_len = 4;
retval = ic10_transaction(rig, "AN;", 3, infobuf, &info_len);
@ -465,7 +466,7 @@ int ic10_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
return -RIG_ERJCTED;
}
*ant = infobuf[2] == '1' ? RIG_ANT_1 : RIG_ANT_2;
*ant_curr = infobuf[2] == '1' ? RIG_ANT_1 : RIG_ANT_2;
return RIG_OK;
}

Wyświetl plik

@ -33,7 +33,7 @@ int ic10_get_split_vfo(RIG *rig, vfo_t vfo , split_t *split, vfo_t *txvfo);
int ic10_get_freq(RIG *rig, vfo_t vfo, freq_t *freq);
int ic10_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
int ic10_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
int ic10_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option);
int ic10_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
int ic10_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
int ic10_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status);
int ic10_set_parm(RIG *rig, setting_t parm, value_t val);

Wyświetl plik

@ -3095,7 +3095,7 @@ int kenwood_set_ant_no_ack(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
/*
* get the aerial/antenna in use
*/
int kenwood_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int kenwood_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
char ackbuf[8];
int offs;
@ -3103,7 +3103,9 @@ int kenwood_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *optio
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
if (!ant)
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
if (!ant_curr)
{
return -RIG_EINVAL;
}
@ -3129,7 +3131,7 @@ int kenwood_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *optio
return -RIG_EPROTO;
}
*ant = RIG_ANT_N(ackbuf[offs] - '1');
*ant_curr = RIG_ANT_N(ackbuf[offs] - '1');
/* XXX check that the returned antenna is valid for the current rig */

Wyświetl plik

@ -159,7 +159,7 @@ int kenwood_reset(RIG *rig, reset_t reset);
int kenwood_send_morse(RIG *rig, vfo_t vfo, const char *msg);
int kenwood_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
int kenwood_set_ant_no_ack(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
int kenwood_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option);
int kenwood_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
int kenwood_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt);
int kenwood_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
int kenwood_set_ptt_safe(RIG *rig, vfo_t vfo, ptt_t ptt);

Wyświetl plik

@ -2552,13 +2552,15 @@ int th_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
/*
* get the aerial/antenna in use
*/
int th_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int th_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
char buf[8];
int retval;
rig_debug(RIG_DEBUG_TRACE, "%s\n", __func__);
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
retval = kenwood_safe_transaction(rig, "ANT", buf, sizeof(buf), 5);
if (retval != RIG_OK)
@ -2571,9 +2573,9 @@ int th_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
return -RIG_EPROTO;
}
*ant = RIG_ANT_N(buf[4] - '0');
*ant_curr = RIG_ANT_N(buf[4] - '0');
rig_debug(RIG_DEBUG_TRACE, "%s: ant = %d\n", __func__, *ant);
rig_debug(RIG_DEBUG_TRACE, "%s: ant = %d\n", __func__, *ant_curr);
return RIG_OK;
}

Wyświetl plik

@ -63,7 +63,7 @@ extern int th_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd);
extern int th_get_channel(RIG *rig, channel_t *chan);
extern int th_set_channel(RIG *rig, const channel_t *chan);
extern int th_set_ant (RIG * rig, vfo_t vfo, ant_t ant, value_t option);
extern int th_get_ant (RIG * rig, vfo_t vfo, ant_t dummy, ant_t * ant, value_t *option);
extern int th_get_ant (RIG * rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t * ant_curr, ant_t *ant_tx, ant_t *ant_rx);
extern int th_reset(RIG *rig, reset_t reset);
extern int th_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch);

Wyświetl plik

@ -54,7 +54,7 @@ static int elektor507_set_level(RIG *rig, vfo_t vfo, setting_t level,
static int elektor507_get_level(RIG *rig, vfo_t vfo, setting_t level,
value_t *val);
static int elektor507_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
static int elektor507_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option);
static int elektor507_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
static int elektor507_set_conf(RIG *rig, token_t token, const char *val);
static int elektor507_get_conf(RIG *rig, token_t token, char *val);
@ -1191,12 +1191,12 @@ int elektor507_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
return (ret != 0) ? -RIG_EIO : RIG_OK;
}
int elektor507_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int elektor507_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
struct elektor507_priv_data *priv = (struct elektor507_priv_data *)
rig->state.priv;
*ant = priv->ant;
*ant_curr = priv->ant;
return RIG_OK;
}

Wyświetl plik

@ -751,11 +751,13 @@ int ra37xx_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
return ra37xx_transaction(rig, buf, NULL, NULL);
}
int ra37xx_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int ra37xx_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
char buf[BUFSZ];
int retval, buflen, ra_ant;
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
retval = ra37xx_transaction(rig, "QANT", buf, &buflen);
if (retval != RIG_OK)
@ -770,10 +772,10 @@ int ra37xx_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option
return -RIG_EPROTO;
}
*ant = ((ra_ant & (1 << 0)) ? RIG_ANT_1 : 0) |
((ra_ant & (1 << 1)) ? RIG_ANT_2 : 0) |
((ra_ant & (1 << 2)) ? RIG_ANT_3 : 0) |
((ra_ant & (1 << 3)) ? RIG_ANT_4 : 0);
*ant_curr = ((ra_ant & (1 << 0)) ? RIG_ANT_1 : 0) |
((ra_ant & (1 << 1)) ? RIG_ANT_2 : 0) |
((ra_ant & (1 << 2)) ? RIG_ANT_3 : 0) |
((ra_ant & (1 << 3)) ? RIG_ANT_4 : 0);
return RIG_OK;
}

Wyświetl plik

@ -77,7 +77,7 @@ int ra37xx_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val);
int ra37xx_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
const char* ra37xx_get_info(RIG *rig);
int ra37xx_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
int ra37xx_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option);
int ra37xx_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
int ra37xx_set_mem(RIG *rig, vfo_t vfo, int ch);
int ra37xx_get_mem(RIG *rig, vfo_t vfo, int *ch);
int ra37xx_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch);

Wyświetl plik

@ -2116,11 +2116,13 @@ int tt565_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
*
* \sa tt565_set_ant
*/
int tt565_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int tt565_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
char respbuf[TT565_BUFSIZE];
int resp_len, retval;
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
resp_len = sizeof(respbuf);
retval = tt565_transaction(rig, "?KA" EOM, 4, respbuf, &resp_len);
@ -2139,17 +2141,17 @@ int tt565_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
/* Look for first occurrence of M or S in ant 1, 2, 3 characters */
if (respbuf[3] == which_receiver(rig, vfo) || respbuf[3] == 'B')
{
*ant = RIG_ANT_1;
*ant_curr = RIG_ANT_1;
return RIG_OK;
}
if (respbuf[4] == which_receiver(rig, vfo) || respbuf[4] == 'B')
{
*ant = RIG_ANT_2;
*ant_curr = RIG_ANT_2;
return RIG_OK;
}
*ant = RIG_ANT_NONE; /* ignore possible RIG_ANT_3 = rx only ant */
*ant_curr = RIG_ANT_NONE; /* ignore possible RIG_ANT_3 = rx only ant */
return RIG_OK;
}
/* End of orion.c */

Wyświetl plik

@ -78,7 +78,7 @@ static int tt565_send_morse(RIG *rig, vfo_t vfo, const char *msg);
static int tt565_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status);
static int tt565_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
static int tt565_set_ant(RIG * rig, vfo_t vfo, ant_t ant, value_t option);
static int tt565_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option);
static int tt565_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
/** \brief Orion private data */
struct tt565_priv_data {

Wyświetl plik

@ -2450,7 +2450,7 @@ int newcat_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
}
int newcat_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option)
int newcat_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
int err;
@ -2492,26 +2492,27 @@ int newcat_get_ant(RIG *rig, vfo_t vfo, ant_t dummy, ant_t *ant, value_t *option
switch (c)
{
case '1':
*ant = RIG_ANT_1;
*ant_curr = RIG_ANT_1;
break;
case '2' :
*ant = RIG_ANT_2;
*ant_curr = RIG_ANT_2;
break;
case '3' :
*ant = RIG_ANT_3;
*ant_curr = RIG_ANT_3;
break;
case '4' :
*ant = RIG_ANT_4;
*ant_curr = RIG_ANT_4;
break;
case '5' :
*ant = RIG_ANT_5;
*ant_curr = RIG_ANT_5;
break;
default:
*ant_curr = RIG_ANT_UNKNOWN;
return -RIG_EPROTO;
}

Wyświetl plik

@ -146,7 +146,7 @@ int newcat_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
int newcat_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
int newcat_get_ptt(RIG * rig, vfo_t vfo, ptt_t * ptt);
int newcat_set_ant(RIG * rig, vfo_t vfo, ant_t ant, value_t option);
int newcat_get_ant(RIG * rig, vfo_t vfo, ant_t dummy, ant_t * ant, value_t * option);
int newcat_get_ant(RIG * rig, vfo_t vfo, ant_t dummy, value_t * option, ant_t * ant_curr, ant_t * ant_tx, ant_t *ant_rx);
int newcat_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val);
int newcat_get_level(RIG * rig, vfo_t vfo, setting_t level, value_t * val);
int newcat_set_func(RIG * rig, vfo_t vfo, setting_t func, int status);

Wyświetl plik

@ -447,7 +447,8 @@ static int generic_save_channel(RIG *rig, channel_t *chan)
if (mem_cap->ant)
{
rig_get_ant(rig, RIG_VFO_CURR, RIG_ANT_CURR, &chan->ant, &vdummy);
ant_t ant_tx, ant_rx;
rig_get_ant(rig, RIG_VFO_CURR, RIG_ANT_CURR, &vdummy, &chan->ant, &ant_tx, &ant_rx);
}
if (mem_cap->tuning_step)

Wyświetl plik

@ -3555,7 +3555,7 @@ int HAMLIB_API rig_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
*
* \sa rig_set_ant()
*/
int HAMLIB_API rig_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, value_t *option)
int HAMLIB_API rig_get_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
{
const struct rig_caps *caps;
int retcode, rc2;
@ -3563,6 +3563,8 @@ int HAMLIB_API rig_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, valu
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
*ant_tx = *ant_rx = RIG_ANT_UNKNOWN;
if (CHECK_RIG_ARG(rig) || !ant_curr)
{
return -RIG_EINVAL;
@ -3579,7 +3581,7 @@ int HAMLIB_API rig_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, valu
|| vfo == RIG_VFO_CURR
|| vfo == rig->state.current_vfo)
{
return caps->get_ant(rig, vfo, ant, ant_curr, option);
return caps->get_ant(rig, vfo, ant, option, ant_curr, ant_tx, ant_rx);
}
if (!caps->set_vfo)
@ -3595,7 +3597,7 @@ int HAMLIB_API rig_get_ant(RIG *rig, vfo_t vfo, ant_t ant, ant_t *ant_curr, valu
return retcode;
}
retcode = caps->get_ant(rig, vfo, ant, ant_curr, option);
retcode = caps->get_ant(rig, vfo, ant, option, ant_curr, ant_tx, ant_rx);
/* try and revert even if we had an error above */
rc2 = caps->set_vfo(rig, curr_vfo);

Wyświetl plik

@ -288,7 +288,7 @@ static struct test_table test_list[] =
{ 'Z', "set_xit", ACTION(set_xit), ARG_IN, "XIT" },
{ 'z', "get_xit", ACTION(get_xit), ARG_OUT, "XIT" },
{ 'Y', "set_ant", ACTION(set_ant), ARG_IN, "Antenna", "Option" },
{ 'y', "get_ant", ACTION(get_ant), ARG_IN1 | ARG_OUT2 |ARG_NOVFO, "Antenna", "Option" },
{ 'y', "get_ant", ACTION(get_ant), ARG_IN1 | ARG_OUT2 |ARG_NOVFO, "AntCurr", "Option", "AntTx", "AntRx" },
{ 0x87, "set_powerstat", ACTION(set_powerstat), ARG_IN | ARG_NOVFO, "Power Status" },
{ 0x88, "get_powerstat", ACTION(get_powerstat), ARG_OUT | ARG_NOVFO, "Power Status" },
{ 0x89, "send_dtmf", ACTION(send_dtmf), ARG_IN, "Digits" },
@ -3985,18 +3985,19 @@ declare_proto_rig(set_ant)
declare_proto_rig(get_ant)
{
int status;
ant_t ant, ant_curr;
ant_t ant, ant_curr, ant_tx, ant_rx;
value_t option;
char antbuf[32];
CHKSCN1ARG(sscanf(arg1, "%d", &ant));
if (ant == 0) // then we want the current antenna info
{
status = rig_get_ant(rig, vfo, RIG_ANT_CURR, &ant_curr, &option);
status = rig_get_ant(rig, vfo, RIG_ANT_CURR, &option, &ant_curr, &ant_tx, &ant_rx);
}
else
{
status = rig_get_ant(rig, vfo, rig_idx2setting(ant-1), &ant_curr, &option);
status = rig_get_ant(rig, vfo, rig_idx2setting(ant-1), &option, &ant_curr, &ant_tx, &ant_rx);
}
if (status != RIG_OK)
@ -4008,7 +4009,9 @@ declare_proto_rig(get_ant)
fprintf(fout, "%s: ", cmd->arg1);
}
fprintf(fout, "%d%c", rig_setting2idx(ant_curr)+1, resp_sep);
sprintf_ant(antbuf,ant_curr);
fprintf(fout, "%s%c", antbuf, resp_sep);
//fprintf(fout, "%d%c", rig_setting2idx(ant_curr)+1, resp_sep);
if ((interactive && prompt) || (interactive && !prompt && ext_resp))
{
@ -4017,6 +4020,24 @@ declare_proto_rig(get_ant)
fprintf(fout, "%d%c", option.i, resp_sep);
if ((interactive && prompt) || (interactive && !prompt && ext_resp))
{
fprintf(fout, "%s: ", cmd->arg3);
}
sprintf_ant(antbuf,ant_tx);
fprintf(fout, "%s%c", antbuf, resp_sep);
//fprintf(fout, "%d%c", rig_setting2idx(ant_tx)+1, resp_sep);
if ((interactive && prompt) || (interactive && !prompt && ext_resp))
{
fprintf(fout, "%s: ", cmd->arg4);
}
sprintf_ant(antbuf,ant_rx);
fprintf(fout, "%s%c", antbuf, resp_sep);
//fprintf(fout, "%d%c", rig_setting2idx(ant_rx)+1, resp_sep);
return status;
}

Wyświetl plik

@ -105,6 +105,7 @@ int sprintf_ant(char *str, ant_t ant)
if (ant == RIG_ANT_NONE)
{
sprintf(str, "ANT_NONE");
return 0;
}