mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2026-06-08 00:44:39 -04:00
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:
+22
-5
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user