Hi,

There is a problem in HamlibTransceiver::do_start() which manifests
itself when using a FT-817ND through rigctld.

The FT-817ND doesn't have support for get_vfo, set_vfo, nor
RIG_OP_TOGGLE. However, rigctld advertises all the capabilities, so each
of the capabilities must be tested instead of trusting rig_->caps

Currently, only get_vfo is tested (get_vfo_works_).

The problem is as follows:

In lines 461 and 481 of HamlibTransceiver.cpp, either RIG_OP_TOGGLE or
set_vfo is used according as to whether rig_->caps->set_vfo is false.
However, the FT-817ND supports none of this.

Probably the whole block of code between lines 446 and 511 should not
run for the FT-817ND.

The main problem is the

(rig_->caps->set_vfo || rig_has_vfo_op (rig_.data (), RIG_OP_TOGGLE)

condition in the if statement for this block. If using rigctld this
evaluates to true, since rig_->caps->set_vfo is true regardless of
whether the rig supports it or not. It would be better to test for
set_vfo before and use a variable set_vfo_works_ instead of
rig->caps->set_vfo (in the manner of get_vfo_works_).

I am not doing this change myself because I'm not familiar with the code
and I'm not sure if my proposed solution will give problems with other rigs.

73,

Dani EA4GPZ.

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel

Reply via email to