From 2be1281885cf9730a45fa08ecdaa607cb096d784 Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 6 Sep 2018 04:36:56 +0200 Subject: [PATCH] DaemonSink (6) --- plugins/channelrx/daemonsink/daemonsink.cpp | 8 +++----- plugins/channelrx/daemonsink/daemonsink.h | 4 ---- plugins/channelrx/daemonsink/daemonsinkgui.cpp | 1 + plugins/channelrx/daemonsink/daemonsinkgui.ui | 6 +++--- plugins/channelrx/daemonsink/daemonsinksettings.cpp | 4 ++-- plugins/channelrx/daemonsink/daemonsinkthread.cpp | 9 +++++---- plugins/channelrx/daemonsink/daemonsinkthread.h | 7 +++++-- 7 files changed, 19 insertions(+), 20 deletions(-) diff --git a/plugins/channelrx/daemonsink/daemonsink.cpp b/plugins/channelrx/daemonsink/daemonsink.cpp index 6f9f18313..56168e657 100644 --- a/plugins/channelrx/daemonsink/daemonsink.cpp +++ b/plugins/channelrx/daemonsink/daemonsink.cpp @@ -54,7 +54,7 @@ DaemonSink::DaemonSink(DeviceSourceAPI *deviceAPI) : m_sampleRate(48000), m_sampleBytes(SDR_RX_SAMP_SZ == 24 ? 4 : 2), m_nbBlocksFEC(0), - m_txDelay(50), + m_txDelay(35), m_dataAddress("127.0.0.1"), m_dataPort(9090) { @@ -64,8 +64,6 @@ DaemonSink::DaemonSink(DeviceSourceAPI *deviceAPI) : m_threadedChannelizer = new ThreadedBasebandSampleSink(m_channelizer, this); m_deviceAPI->addThreadedSink(m_threadedChannelizer); m_deviceAPI->addChannelAPI(this); - - m_cm256p = m_cm256.isInitialized() ? &m_cm256 : 0; } DaemonSink::~DaemonSink() @@ -212,7 +210,7 @@ void DaemonSink::start() stop(); } - m_sinkThread = new DaemonSinkThread(&m_dataQueue, m_cm256p); + m_sinkThread = new DaemonSinkThread(&m_dataQueue); m_sinkThread->startStop(true); m_running = true; } @@ -366,7 +364,7 @@ int DaemonSink::webapiSettingsPutPatch( int txDelay = response.getDaemonSinkSettings()->getTxDelay(); if (txDelay < 0) { - settings.m_txDelay = 50; + settings.m_txDelay = 35; } else { settings.m_txDelay = txDelay; } diff --git a/plugins/channelrx/daemonsink/daemonsink.h b/plugins/channelrx/daemonsink/daemonsink.h index 948b16861..9d0ddb005 100644 --- a/plugins/channelrx/daemonsink/daemonsink.h +++ b/plugins/channelrx/daemonsink/daemonsink.h @@ -26,8 +26,6 @@ #include #include -#include "cm256.h" - #include "dsp/basebandsamplesink.h" #include "channel/channelsinkapi.h" #include "channel/sdrdaemondataqueue.h" @@ -134,8 +132,6 @@ private: DaemonSinkSettings m_settings; SDRDaemonDataQueue m_dataQueue; DaemonSinkThread *m_sinkThread; - CM256 m_cm256; - CM256 *m_cm256p; int m_txBlockIndex; //!< Current index in blocks to transmit in the Tx row uint16_t m_frameCount; //!< transmission frame count diff --git a/plugins/channelrx/daemonsink/daemonsinkgui.cpp b/plugins/channelrx/daemonsink/daemonsinkgui.cpp index a5826665c..ff886c78c 100644 --- a/plugins/channelrx/daemonsink/daemonsinkgui.cpp +++ b/plugins/channelrx/daemonsink/daemonsinkgui.cpp @@ -179,6 +179,7 @@ void DaemonSinkGUI::displaySettings() QString s1 = QString::number(m_settings.m_nbFECBlocks, 'f', 0); ui->nominalNbBlocksText->setText(tr("%1/%2").arg(s).arg(s1)); ui->txDelayText->setText(tr("%1%").arg(m_settings.m_txDelay)); + ui->txDelay->setValue(m_settings.m_txDelay); updateTxDelayTime(); blockApplySettings(false); } diff --git a/plugins/channelrx/daemonsink/daemonsinkgui.ui b/plugins/channelrx/daemonsink/daemonsinkgui.ui index a48750f94..3bf070450 100644 --- a/plugins/channelrx/daemonsink/daemonsinkgui.ui +++ b/plugins/channelrx/daemonsink/daemonsinkgui.ui @@ -232,16 +232,16 @@ Delay between consecutive UDP packets in percentage of nominal UDP packet process time - 10 + 0 - 90 + 70 1 - 50 + 35 diff --git a/plugins/channelrx/daemonsink/daemonsinksettings.cpp b/plugins/channelrx/daemonsink/daemonsinksettings.cpp index 930531123..9b81702f0 100644 --- a/plugins/channelrx/daemonsink/daemonsinksettings.cpp +++ b/plugins/channelrx/daemonsink/daemonsinksettings.cpp @@ -34,7 +34,7 @@ DaemonSinkSettings::DaemonSinkSettings() void DaemonSinkSettings::resetToDefaults() { m_nbFECBlocks = 0; - m_txDelay = 50; + m_txDelay = 35; m_dataAddress = "127.0.0.1"; m_dataPort = 9090; m_rgbColor = QColor(140, 4, 4).rgb(); @@ -77,7 +77,7 @@ bool DaemonSinkSettings::deserialize(const QByteArray& data) m_nbFECBlocks = 0; } - d.readU32(2, &m_txDelay, 50); + d.readU32(2, &m_txDelay, 35); d.readString(3, &m_dataAddress, "127.0.0.1"); d.readU32(4, &tmp, 0); diff --git a/plugins/channelrx/daemonsink/daemonsinkthread.cpp b/plugins/channelrx/daemonsink/daemonsinkthread.cpp index 812176088..319076a08 100644 --- a/plugins/channelrx/daemonsink/daemonsinkthread.cpp +++ b/plugins/channelrx/daemonsink/daemonsinkthread.cpp @@ -30,14 +30,15 @@ MESSAGE_CLASS_DEFINITION(DaemonSinkThread::MsgStartStop, Message) -DaemonSinkThread::DaemonSinkThread(SDRDaemonDataQueue *dataQueue, CM256 *cm256, QObject* parent) : +DaemonSinkThread::DaemonSinkThread(SDRDaemonDataQueue *dataQueue, QObject* parent) : QThread(parent), m_running(false), m_dataQueue(dataQueue), - m_cm256(cm256), m_address(QHostAddress::LocalHost), m_socket(0) { + + m_cm256p = m_cm256.isInitialized() ? &m_cm256 : 0; connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); connect(m_dataQueue, SIGNAL(dataBlockEnqueued()), this, SLOT(handleData()), Qt::QueuedConnection); } @@ -102,7 +103,7 @@ bool DaemonSinkThread::handleDataBlock(SDRDaemonDataBlock& dataBlock) uint16_t dataPort = dataBlock.m_txControlBlock.m_dataPort; SDRDaemonSuperBlock *txBlockx = dataBlock.m_superBlocks; - if ((nbBlocksFEC == 0) || !m_cm256) // Do not FEC encode + if ((nbBlocksFEC == 0) || !m_cm256p) // Do not FEC encode { if (m_socket) { @@ -134,7 +135,7 @@ bool DaemonSinkThread::handleDataBlock(SDRDaemonDataBlock& dataBlock) } // Encode FEC blocks - if (m_cm256->cm256_encode(cm256Params, descriptorBlocks, fecBlocks)) + if (m_cm256p->cm256_encode(cm256Params, descriptorBlocks, fecBlocks)) { qWarning("SDRDaemonChannelSinkThread::handleDataBlock: CM256 encode failed. No transmission."); // TODO: send without FEC changing meta data to set indication of no FEC diff --git a/plugins/channelrx/daemonsink/daemonsinkthread.h b/plugins/channelrx/daemonsink/daemonsinkthread.h index 10db87e9a..451f74720 100644 --- a/plugins/channelrx/daemonsink/daemonsinkthread.h +++ b/plugins/channelrx/daemonsink/daemonsinkthread.h @@ -25,6 +25,8 @@ #include #include +#include "cm256.h" + #include "util/message.h" #include "util/messagequeue.h" @@ -56,7 +58,7 @@ public: { } }; - DaemonSinkThread(SDRDaemonDataQueue *dataQueue, CM256 *cm256, QObject* parent = 0); + DaemonSinkThread(SDRDaemonDataQueue *dataQueue, QObject* parent = 0); ~DaemonSinkThread(); void startStop(bool start); @@ -67,7 +69,8 @@ private: bool m_running; SDRDaemonDataQueue *m_dataQueue; - CM256 *m_cm256; //!< CM256 library object + CM256 m_cm256; + CM256 *m_cm256p; QHostAddress m_address; QUdpSocket *m_socket;