kopia lustrzana https://github.com/Hamlib/Hamlib
Typical sequence
RX/TX will show correct answers at startup based on rig current status This sequence is for the dummy device Rig command: F RX Frequency: 14500000 Rig command: F TX Frequency: 14500000 Rig command: V VFOB Rig command: F 16000000 Rig command: V VFOA Rig command: S 1 VFOB Rig command: V TX Rig command: f Frequency: 16000000 Rig command: S 0 VFOA Rig command: f Frequency: 145000000 What should this behavior be? Return VFOA or VFOB or error? Rig command: S 0 VFOB Rig command: f Frequency: 16000000pull/137/head
rodzic
ca034f4c93
commit
de418729cf
|
@ -48,6 +48,8 @@ struct dummy_priv_data {
|
||||||
vfo_t curr_vfo;
|
vfo_t curr_vfo;
|
||||||
vfo_t last_vfo; /* VFO A or VFO B, when in MEM mode */
|
vfo_t last_vfo; /* VFO A or VFO B, when in MEM mode */
|
||||||
|
|
||||||
|
split_t split;
|
||||||
|
vfo_t tx_vfo;
|
||||||
ptt_t ptt;
|
ptt_t ptt;
|
||||||
powerstat_t powerstat;
|
powerstat_t powerstat;
|
||||||
int bank;
|
int bank;
|
||||||
|
@ -116,6 +118,7 @@ static void init_chan(RIG *rig, vfo_t vfo, channel_t *chan)
|
||||||
chan->tx_mode = chan->mode;
|
chan->tx_mode = chan->mode;
|
||||||
chan->tx_width = chan->width;
|
chan->tx_width = chan->width;
|
||||||
chan->split = RIG_SPLIT_OFF;
|
chan->split = RIG_SPLIT_OFF;
|
||||||
|
chan->tx_vfo = vfo;
|
||||||
|
|
||||||
chan->rptr_shift = RIG_RPT_SHIFT_NONE;
|
chan->rptr_shift = RIG_RPT_SHIFT_NONE;
|
||||||
chan->rptr_offs = 0;
|
chan->rptr_offs = 0;
|
||||||
|
@ -328,7 +331,7 @@ static int dummy_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
||||||
struct dummy_priv_data *priv = (struct dummy_priv_data *)rig->state.priv;
|
struct dummy_priv_data *priv = (struct dummy_priv_data *)rig->state.priv;
|
||||||
channel_t *curr = priv->curr;
|
channel_t *curr = priv->curr;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE,"%s called: %s\n", __FUNCTION__, rig_strvfo(vfo));
|
rig_debug(RIG_DEBUG_VERBOSE,"%s called: %s\n", __FUNCTION__, rig_strvfo(vfo),vfo);
|
||||||
|
|
||||||
*freq = curr->freq;
|
*freq = curr->freq;
|
||||||
|
|
||||||
|
@ -385,6 +388,7 @@ static int dummy_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
switch (vfo) {
|
switch (vfo) {
|
||||||
case RIG_VFO_VFO: /* FIXME */
|
case RIG_VFO_VFO: /* FIXME */
|
||||||
|
|
||||||
|
case RIG_VFO_RX:
|
||||||
case RIG_VFO_A: priv->curr = &priv->vfo_a; break;
|
case RIG_VFO_A: priv->curr = &priv->vfo_a; break;
|
||||||
case RIG_VFO_B: priv->curr = &priv->vfo_b; break;
|
case RIG_VFO_B: priv->curr = &priv->vfo_b; break;
|
||||||
case RIG_VFO_MEM:
|
case RIG_VFO_MEM:
|
||||||
|
@ -392,6 +396,12 @@ static int dummy_set_vfo(RIG *rig, vfo_t vfo)
|
||||||
priv->curr = &priv->mem[curr->channel_num];
|
priv->curr = &priv->mem[curr->channel_num];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case RIG_VFO_TX:
|
||||||
|
if (priv->tx_vfo == RIG_VFO_A) priv->curr = &priv->vfo_a;
|
||||||
|
else if (priv->tx_vfo == RIG_VFO_B) priv->curr = &priv->vfo_b;
|
||||||
|
else if (priv->tx_vfo == RIG_VFO_MEM) priv->curr = &priv->mem[curr->channel_num];
|
||||||
|
else priv->curr = &priv->vfo_a;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
rig_debug(RIG_DEBUG_VERBOSE,"%s unknown vfo: %s\n", __FUNCTION__, rig_strvfo(vfo));
|
rig_debug(RIG_DEBUG_VERBOSE,"%s unknown vfo: %s\n", __FUNCTION__, rig_strvfo(vfo));
|
||||||
}
|
}
|
||||||
|
@ -663,8 +673,10 @@ static int dummy_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
|
||||||
struct dummy_priv_data *priv = (struct dummy_priv_data *)rig->state.priv;
|
struct dummy_priv_data *priv = (struct dummy_priv_data *)rig->state.priv;
|
||||||
channel_t *curr = priv->curr;
|
channel_t *curr = priv->curr;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __FUNCTION__);
|
rig_debug(RIG_DEBUG_VERBOSE, "%s called split=%d, vfo=%s, tx_vfo=%s\n", __FUNCTION__, split, rig_strvfo(vfo), rig_strvfo(tx_vfo));
|
||||||
curr->split = split;
|
curr->split = split;
|
||||||
|
priv->tx_vfo = tx_vfo;
|
||||||
|
if (priv->curr_vfo == RIG_VFO_TX) dummy_set_vfo(rig,RIG_VFO_TX);
|
||||||
|
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue