From 3f4c0a2e700bbc5ac48f9c81add96fce3c6e3f88 Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 21 May 2019 23:33:36 +0200 Subject: [PATCH 1/2] Use Qt precise timer for test and file sources --- plugins/samplemimo/testmi/testmithread.cpp | 1 + plugins/samplesource/filesource/filesourceinput.cpp | 6 ++++-- plugins/samplesource/filesource/filesourceinput.h | 2 +- plugins/samplesource/testsource/testsourcethread.cpp | 1 + 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/samplemimo/testmi/testmithread.cpp b/plugins/samplemimo/testmi/testmithread.cpp index e9d9ef913..02aea93ce 100644 --- a/plugins/samplemimo/testmi/testmithread.cpp +++ b/plugins/samplemimo/testmi/testmithread.cpp @@ -75,6 +75,7 @@ TestMIThread::~TestMIThread() void TestMIThread::startWork() { + m_timer.setTimerType(Qt::PreciseTimer); connect(&m_timer, SIGNAL(timeout()), this, SLOT(tick())); m_timer.start(50); m_startWaitMutex.lock(); diff --git a/plugins/samplesource/filesource/filesourceinput.cpp b/plugins/samplesource/filesource/filesourceinput.cpp index b5ddb5305..470d70e5a 100644 --- a/plugins/samplesource/filesource/filesourceinput.cpp +++ b/plugins/samplesource/filesource/filesourceinput.cpp @@ -60,8 +60,7 @@ FileSourceInput::FileSourceInput(DeviceAPI *deviceAPI) : m_sampleSize(0), m_centerFrequency(0), m_recordLength(0), - m_startingTimeStamp(0), - m_masterTimer(deviceAPI->getMasterTimer()) + m_startingTimeStamp(0) { m_deviceAPI->setNbSourceStreams(1); qDebug("FileSourceInput::FileSourceInput: device source engine: %p", m_deviceAPI->getDeviceSourceEngine()); @@ -69,10 +68,13 @@ FileSourceInput::FileSourceInput(DeviceAPI *deviceAPI) : qDebug("FileSourceInput::FileSourceInput: device source: %p", m_deviceAPI->getDeviceSourceEngine()->getSource()); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); + m_masterTimer.setTimerType(Qt::PreciseTimer); + m_masterTimer.start(50); } FileSourceInput::~FileSourceInput() { + m_masterTimer.stop(); disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); delete m_networkManager; diff --git a/plugins/samplesource/filesource/filesourceinput.h b/plugins/samplesource/filesource/filesourceinput.h index 0bde89328..c7f872809 100644 --- a/plugins/samplesource/filesource/filesourceinput.h +++ b/plugins/samplesource/filesource/filesourceinput.h @@ -332,7 +332,7 @@ public: quint64 m_centerFrequency; quint64 m_recordLength; //!< record length in seconds computed from file size quint64 m_startingTimeStamp; - const QTimer& m_masterTimer; + QTimer m_masterTimer; QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/testsource/testsourcethread.cpp b/plugins/samplesource/testsource/testsourcethread.cpp index e16c4a85c..41bc924b5 100644 --- a/plugins/samplesource/testsource/testsourcethread.cpp +++ b/plugins/samplesource/testsource/testsourcethread.cpp @@ -74,6 +74,7 @@ TestSourceThread::~TestSourceThread() void TestSourceThread::startWork() { + m_timer.setTimerType(Qt::PreciseTimer); connect(&m_timer, SIGNAL(timeout()), this, SLOT(tick())); m_timer.start(50); m_startWaitMutex.lock(); From c85a5232178c36d70b30a623b9142965e6a23747 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 22 May 2019 02:56:42 +0200 Subject: [PATCH 2/2] MIMO: added support in sampling device control UI --- sdrgui/gui/samplingdevicecontrol.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sdrgui/gui/samplingdevicecontrol.cpp b/sdrgui/gui/samplingdevicecontrol.cpp index 77f44f72c..43d67c29a 100644 --- a/sdrgui/gui/samplingdevicecontrol.cpp +++ b/sdrgui/gui/samplingdevicecontrol.cpp @@ -73,6 +73,12 @@ void SamplingDeviceControl::setSelectedDeviceIndex(int index) DeviceEnumerator::instance()->changeTxSelection(m_deviceTabIndex, index); ui->deviceSelectedText->setText(samplingDevice->displayedName); } + else if (m_deviceType == 2) // MIMO + { + const PluginInterface::SamplingDevice *samplingDevice = DeviceEnumerator::instance()->getMIMOSamplingDevice(index); + DeviceEnumerator::instance()->changeMIMOSelection(m_deviceTabIndex, index); + ui->deviceSelectedText->setText(samplingDevice->displayedName); + } m_selectedDeviceIndex = index; }