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
