Some HRD commands need a settling time otherwise they don't stick

This seems  to be  limited to  the Yaesu  FTdx3000 "RX  A" and  "RX B"
commands so a short delay has been added after these sort of commands.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5299 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Bill Somerville 2015-04-26 16:50:40 +00:00
parent a84b7cdfd3
commit d9a8b798f0
6 changed files with 19 additions and 11 deletions

View File

@ -33,7 +33,7 @@ public:
protected:
void do_start () override;
void do_stop () override;
void do_frequency (Frequency, MODE = UNK) override;
void do_frequency (Frequency, MODE) override;
void do_tx_frequency (Frequency, bool rationalise_mode) override;
void do_mode (MODE, bool rationalise) override;
void do_ptt (bool on) override;

View File

@ -13,6 +13,10 @@
namespace
{
char const * const HRD_transceiver_name = "Ham Radio Deluxe";
// some commands require a settling time, particularly "RX A" and
// "RX B" on the Yaesu FTdx3000.
int constexpr yaesu_delay {250};
}
void HRDTransceiver::register_transceivers (TransceiverFactory::Transceivers * registry, int id)
@ -445,6 +449,10 @@ void HRDTransceiver::set_button (int button_index, bool checked)
if (button_index >= 0)
{
send_simple_command ("set button-select " + buttons_.value (button_index) + (checked ? " 1" : " 0"));
if (button_index == rx_A_button_ || button_index == rx_B_button_)
{
QThread::msleep (yaesu_delay);
}
}
else
{
@ -840,7 +848,7 @@ QString HRDTransceiver::send_command (QString const& cmd, bool no_debug, bool pr
// required on some radios because commands don't get executed
// correctly otherwise (ICOM for example)
QThread::msleep (50);
}
}
if (!recurse && prepend_context)
{

View File

@ -41,9 +41,9 @@ protected:
// Implement the TransceiverBase interface.
void do_start () override;
void do_stop () override;
void do_frequency (Frequency, MODE = UNK) override;
void do_tx_frequency (Frequency, bool rationalise_mode = true) override;
void do_mode (MODE, bool rationalise = true) override;
void do_frequency (Frequency, MODE) override;
void do_tx_frequency (Frequency, bool rationalise_mode) override;
void do_mode (MODE, bool rationalise) override;
void do_ptt (bool on) override;
// Implement the PollingTransceiver interface.

View File

@ -33,9 +33,9 @@ class HamlibTransceiver final
private:
void do_start () override;
void do_stop () override;
void do_frequency (Frequency, MODE = UNK) override;
void do_tx_frequency (Frequency, bool rationalise_mode = true) override;
void do_mode (MODE, bool rationalise = true) override;
void do_frequency (Frequency, MODE) override;
void do_tx_frequency (Frequency, bool rationalise_mode) override;
void do_mode (MODE, bool rationalise) override;
void do_ptt (bool) override;
void poll () override;

View File

@ -35,7 +35,7 @@ public:
void do_start () override;
void do_stop () override;
void do_frequency (Frequency, MODE = UNK) override;
void do_frequency (Frequency, MODE) override;
void do_tx_frequency (Frequency, bool rationalise_mode) override;
void do_mode (MODE, bool rationalise) override;
void do_ptt (bool on) override;

View File

@ -98,8 +98,8 @@ protected:
virtual void do_frequency (Frequency rx, MODE = UNK) = 0;
virtual void do_post_frequency (Frequency, MODE = UNK) {}
virtual void do_tx_frequency (Frequency tx = 0, bool rationalise_mode = true) = 0;
virtual void do_post_tx_frequency (Frequency, bool /* rationalise_mode */ = true) {}
virtual void do_tx_frequency (Frequency tx = 0u, bool rationalise_mode = false) = 0;
virtual void do_post_tx_frequency (Frequency = 0u, bool /* rationalise_mode */ = false) {}
virtual void do_mode (MODE, bool rationalise = true) = 0;
virtual void do_post_mode (MODE, bool /* rationalise */ = true) {}