Rig polling not detecting changes against cached values correctly

The  PollingTransceiver class  was not  dealing with  frequency change
commands correctly when the mode was not specified.

Improved some diagnostic messages.

Only leave transmit mode when PTT is seen to drop.

Merged from wsjtx-1.4 branch.



git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@4886 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Bill Somerville
2015-01-08 23:51:56 +00:00
parent f88870df60
commit f4db871ebd
6 changed files with 49 additions and 15 deletions
+22 -5
View File
@@ -12,20 +12,38 @@ namespace
}
class TransceiverBase::impl final
: public QObject
{
Q_OBJECT;
public:
impl ()
impl (TransceiverBase * parent)
: parent_ {parent}
{
connect (this, &TransceiverBase::impl::updated, this, &TransceiverBase::impl::update_complete, Qt::QueuedConnection);
}
impl (impl const&) = delete;
impl& operator = (impl const&) = delete;
Q_SIGNAL void updated ();
Q_SLOT void update_complete ()
{
if (parent_->do_pre_update ())
{
Q_EMIT parent_->update (state_);
}
}
TransceiverBase * parent_;
TransceiverState state_;
};
#include "TransceiverBase.moc"
TransceiverBase::TransceiverBase ()
: m_ {this}
{
}
@@ -260,10 +278,9 @@ void TransceiverBase::update_PTT (bool state)
void TransceiverBase::update_complete ()
{
if (do_pre_update ())
{
Q_EMIT update (m_->state_);
}
// Use a signal to ensure that the calling function completes before
// the Transceiver::update signal is triggered.
Q_EMIT m_->updated ();
}
void TransceiverBase::offline (QString const& reason)