On 09/07/2015 19:08, Michael Black wrote:
Hi Mike,
Try this…in mainwindow.cpp replace stopTx2() with the following. It
defers the frequency change for 2 seconds which is probably too long
but succeeds in moving ptt=0 in front of the frequency change.
If you follow the code from MainWindow::WSPR_scheduling() through
MainWindow::on_bandComboBox_activated() -> MainWindow::band_changed()
you will see the line:
Q_EMIT m_config.transceiver_frequency (f);
this just like the line:
Q_EMIT m_config.transceiver_ptt (false); //Lower PTT
is queuing a Qt signal which eventually crosses the thread boundary to
the transceiver control thread. These signals are processed strictly in
the order they are queued. So your assumption that the above lines are
processed in the wrong order is incorrect.
73
Mike W9MDB
73
Bill
G4WJS.
void MainWindow::stopTx2a()
{
WSPR_scheduling ();
}
void MainWindow::stopTx2()
{
Q_EMIT m_config.transceiver_ptt (false); //Lower PTT
if (m_mode.mid(0,4)!="WSPR" and m_mode!="Echo" and m_config.watchdog() and
m_repeatMsg>=m_watchdogLimit-1) {
on_stopTxButton_clicked();
msgBox("Runaway Tx watchdog");
m_repeatMsg=0;
}
// we let ptt signal process first by doing the timer here
qDebug() << "stopTx2a";
if(m_mode.mid(0,4)=="WSPR" and m_ntr==-1 and !m_tuneup) {
m_wideGraph->setWSPRtransmitted();
// WSPR_scheduling (); // let the timer do this
QTimer::singleShot(2000,this,SLOT(stopTx2a()));
m_ntr=0;
}
}
------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
wsjt-devel mailing list
wsjt-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wsjt-devel