mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-12-23 10:05:46 -05:00
AudioCATSISO: fixed CAT worker handling
This commit is contained in:
parent
c33c8464cd
commit
956d1e6c07
@ -151,7 +151,7 @@ bool AudioCATSISO::startRx()
|
|||||||
|
|
||||||
m_catWorkerThread = new QThread();
|
m_catWorkerThread = new QThread();
|
||||||
m_catWorker = new AudioCATSISOCATWorker();
|
m_catWorker = new AudioCATSISOCATWorker();
|
||||||
m_inputWorker->moveToThread(m_catWorkerThread);
|
m_catWorker->moveToThread(m_catWorkerThread);
|
||||||
|
|
||||||
QObject::connect(m_catWorkerThread, &QThread::started, m_catWorker, &AudioCATSISOCATWorker::startWork);
|
QObject::connect(m_catWorkerThread, &QThread::started, m_catWorker, &AudioCATSISOCATWorker::startWork);
|
||||||
QObject::connect(m_catWorkerThread, &QThread::finished, m_catWorker, &QObject::deleteLater);
|
QObject::connect(m_catWorkerThread, &QThread::finished, m_catWorker, &QObject::deleteLater);
|
||||||
@ -159,6 +159,7 @@ bool AudioCATSISO::startRx()
|
|||||||
|
|
||||||
m_catWorker->setMessageQueueToGUI(getMessageQueueToGUI());
|
m_catWorker->setMessageQueueToGUI(getMessageQueueToGUI());
|
||||||
m_catWorker->setMessageQueueToSISO(getInputMessageQueue());
|
m_catWorker->setMessageQueueToSISO(getInputMessageQueue());
|
||||||
|
m_catWorker->startWork();
|
||||||
m_catWorkerThread->start();
|
m_catWorkerThread->start();
|
||||||
|
|
||||||
AudioCATSISOCATWorker::MsgConfigureAudioCATSISOCATWorker *msgToCAT = AudioCATSISOCATWorker::MsgConfigureAudioCATSISOCATWorker::create(
|
AudioCATSISOCATWorker::MsgConfigureAudioCATSISOCATWorker *msgToCAT = AudioCATSISOCATWorker::MsgConfigureAudioCATSISOCATWorker::create(
|
||||||
@ -166,6 +167,9 @@ bool AudioCATSISO::startRx()
|
|||||||
);
|
);
|
||||||
m_catWorker->getInputMessageQueue()->push(msgToCAT);
|
m_catWorker->getInputMessageQueue()->push(msgToCAT);
|
||||||
|
|
||||||
|
AudioCATSISOCATWorker::MsgPollTimerConnect *startTimerMsg = AudioCATSISOCATWorker::MsgPollTimerConnect::create();
|
||||||
|
m_catWorker->getInputMessageQueue()->push(startTimerMsg);
|
||||||
|
|
||||||
qDebug() << "AudioCATSISO::startRx: CAT started";
|
qDebug() << "AudioCATSISO::startRx: CAT started";
|
||||||
m_catRunning = true;
|
m_catRunning = true;
|
||||||
|
|
||||||
@ -557,6 +561,10 @@ void AudioCATSISO::applySettings(const AudioCATSISOSettings& settings, const QLi
|
|||||||
forwardTxChange = true;
|
forwardTxChange = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (settingsKeys.contains("catPollingMs") || force) {
|
||||||
|
forwardToCAT = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (settings.m_useReverseAPI)
|
if (settings.m_useReverseAPI)
|
||||||
{
|
{
|
||||||
bool fullUpdate = (settingsKeys.contains("useReverseAPI") && settings.m_useReverseAPI) ||
|
bool fullUpdate = (settingsKeys.contains("useReverseAPI") && settings.m_useReverseAPI) ||
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
///////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
#include "audiocatsisocatworker.h"
|
#include "audiocatsisocatworker.h"
|
||||||
|
|
||||||
@ -25,6 +26,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
MESSAGE_CLASS_DEFINITION(AudioCATSISOCATWorker::MsgConfigureAudioCATSISOCATWorker, Message)
|
MESSAGE_CLASS_DEFINITION(AudioCATSISOCATWorker::MsgConfigureAudioCATSISOCATWorker, Message)
|
||||||
|
MESSAGE_CLASS_DEFINITION(AudioCATSISOCATWorker::MsgPollTimerConnect, Message)
|
||||||
MESSAGE_CLASS_DEFINITION(AudioCATSISOCATWorker::MsgReportFrequency, Message)
|
MESSAGE_CLASS_DEFINITION(AudioCATSISOCATWorker::MsgReportFrequency, Message)
|
||||||
|
|
||||||
AudioCATSISOCATWorker::AudioCATSISOCATWorker(QObject* parent) :
|
AudioCATSISOCATWorker::AudioCATSISOCATWorker(QObject* parent) :
|
||||||
@ -33,6 +35,7 @@ AudioCATSISOCATWorker::AudioCATSISOCATWorker(QObject* parent) :
|
|||||||
m_inputMessageQueueToSISO(nullptr),
|
m_inputMessageQueueToSISO(nullptr),
|
||||||
m_running(false),
|
m_running(false),
|
||||||
m_connected(false),
|
m_connected(false),
|
||||||
|
m_pollTimer(nullptr),
|
||||||
m_ptt(false),
|
m_ptt(false),
|
||||||
m_frequency(0)
|
m_frequency(0)
|
||||||
{
|
{
|
||||||
@ -42,6 +45,10 @@ AudioCATSISOCATWorker::AudioCATSISOCATWorker(QObject* parent) :
|
|||||||
AudioCATSISOCATWorker::~AudioCATSISOCATWorker()
|
AudioCATSISOCATWorker::~AudioCATSISOCATWorker()
|
||||||
{
|
{
|
||||||
stopWork();
|
stopWork();
|
||||||
|
|
||||||
|
if (m_pollTimer) {
|
||||||
|
delete m_pollTimer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudioCATSISOCATWorker::startWork()
|
void AudioCATSISOCATWorker::startWork()
|
||||||
@ -86,7 +93,9 @@ void AudioCATSISOCATWorker::applySettings(const AudioCATSISOSettings& settings,
|
|||||||
|
|
||||||
if (settingsKeys.contains("catPollingMs") || force)
|
if (settingsKeys.contains("catPollingMs") || force)
|
||||||
{
|
{
|
||||||
m_pollTimer.setInterval(settings.m_catPollingMs);
|
if (m_pollTimer) {
|
||||||
|
m_pollTimer->setInterval(settings.m_catPollingMs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (force) {
|
if (force) {
|
||||||
@ -125,6 +134,15 @@ bool AudioCATSISOCATWorker::handleMessage(const Message& message)
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if (MsgPollTimerConnect::match(message))
|
||||||
|
{
|
||||||
|
qDebug("AudioCATSISOCATWorker::handleMessage: MsgPollTimerConnect");
|
||||||
|
m_pollTimer = new QTimer();
|
||||||
|
connect(m_pollTimer, SIGNAL(timeout()), this, SLOT(pollingTick()));
|
||||||
|
m_pollTimer->start(m_settings.m_catPollingMs);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -177,8 +195,6 @@ void AudioCATSISOCATWorker::catConnect()
|
|||||||
if (retcode == RIG_OK)
|
if (retcode == RIG_OK)
|
||||||
{
|
{
|
||||||
m_connected = true;
|
m_connected = true;
|
||||||
connect(&m_pollTimer, SIGNAL(timeout()), this, SLOT(pollingTick()));
|
|
||||||
m_pollTimer.start(m_settings.m_catPollingMs);
|
|
||||||
msg = AudioCATSISOSettings::MsgCATReportStatus::create(AudioCATSISOSettings::MsgCATReportStatus::StatusConnected);
|
msg = AudioCATSISOSettings::MsgCATReportStatus::create(AudioCATSISOSettings::MsgCATReportStatus::StatusConnected);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -196,8 +212,12 @@ void AudioCATSISOCATWorker::catConnect()
|
|||||||
|
|
||||||
void AudioCATSISOCATWorker::catDisconnect()
|
void AudioCATSISOCATWorker::catDisconnect()
|
||||||
{
|
{
|
||||||
disconnect(&m_pollTimer, SIGNAL(timeout()), this, SLOT(pollingTick()));
|
if (m_pollTimer)
|
||||||
m_pollTimer.stop();
|
{
|
||||||
|
disconnect(m_pollTimer, SIGNAL(timeout()), this, SLOT(pollingTick()));
|
||||||
|
m_pollTimer->stop();
|
||||||
|
}
|
||||||
|
|
||||||
m_connected = false;
|
m_connected = false;
|
||||||
rig_close(m_rig); /* close port */
|
rig_close(m_rig); /* close port */
|
||||||
rig_cleanup(m_rig); /* if you care about memory */
|
rig_cleanup(m_rig); /* if you care about memory */
|
||||||
|
@ -21,12 +21,13 @@
|
|||||||
#include <hamlib/rig.h>
|
#include <hamlib/rig.h>
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QTimer>
|
|
||||||
|
|
||||||
#include "util/message.h"
|
#include "util/message.h"
|
||||||
#include "util/messagequeue.h"
|
#include "util/messagequeue.h"
|
||||||
#include "audiocatsisosettings.h"
|
#include "audiocatsisosettings.h"
|
||||||
|
|
||||||
|
class QTimer;
|
||||||
|
|
||||||
class AudioCATSISOCATWorker : public QObject {
|
class AudioCATSISOCATWorker : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@ -56,6 +57,20 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class MsgPollTimerConnect : public Message {
|
||||||
|
MESSAGE_CLASS_DECLARATION
|
||||||
|
|
||||||
|
public:
|
||||||
|
static MsgPollTimerConnect* create() {
|
||||||
|
return new MsgPollTimerConnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
MsgPollTimerConnect() :
|
||||||
|
Message()
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
class MsgReportFrequency : public Message {
|
class MsgReportFrequency : public Message {
|
||||||
MESSAGE_CLASS_DECLARATION
|
MESSAGE_CLASS_DECLARATION
|
||||||
|
|
||||||
@ -99,7 +114,7 @@ private:
|
|||||||
bool m_connected;
|
bool m_connected;
|
||||||
AudioCATSISOSettings m_settings;
|
AudioCATSISOSettings m_settings;
|
||||||
RIG *m_rig;
|
RIG *m_rig;
|
||||||
QTimer m_pollTimer;
|
QTimer *m_pollTimer;
|
||||||
bool m_ptt;
|
bool m_ptt;
|
||||||
uint64_t m_frequency;
|
uint64_t m_frequency;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user