Logo Search packages:      
Sourcecode: hamlib version File versions  Download package

int HAMLIB_API rig_set_freq ( RIG rig,
vfo_t  vfo,
freq_t  freq 

set the frequency of the target VFO

rig The rig handle
vfo The target VFO
freq The frequency to set to
Sets the frequency of the target VFO.

RIG_OK if the operation has been sucessful, otherwise a negative value if an error occured (in which case, cause is set appropriately).
See also:

Definition at line 723 of file rig.c.

References rig::caps, rig_state::current_freq, rig_state::current_vfo, RIG_VFO_CURR, rig_caps::set_freq, rig_caps::set_vfo, rig::state, rig_caps::targetable_vfo, and rig_state::vfo_comp.

      const struct rig_caps *caps;
      int retcode;
      vfo_t curr_vfo;

      if (CHECK_RIG_ARG(rig))
            return -RIG_EINVAL;

      caps = rig->caps;

      if (rig->state.vfo_comp != 0.0)
            freq += (freq_t)((double)rig->state.vfo_comp * freq);

      if (caps->set_freq == NULL)
            return -RIG_ENAVAIL;

      if ((caps->targetable_vfo&RIG_TARGETABLE_FREQ) || 
                  vfo == RIG_VFO_CURR || vfo == rig->state.current_vfo) {
            retcode = caps->set_freq(rig, vfo, freq);
      } else {
            if (!caps->set_vfo)
                  return -RIG_ENTARGET;
            curr_vfo = rig->state.current_vfo;
            retcode = caps->set_vfo(rig, vfo);
            if (retcode != RIG_OK)
                  return retcode;

            retcode = caps->set_freq(rig, vfo, freq);
            caps->set_vfo(rig, curr_vfo);
      if (retcode == RIG_OK &&
                  (vfo == RIG_VFO_CURR || vfo == rig->state.current_vfo))
            rig->state.current_freq = freq;

      return retcode;

Generated by  Doxygen 1.6.0   Back to index