Add label to SampleSinkFifo to mention controlling component in error messages

This commit is contained in:
f4exb 2022-03-17 21:10:30 +01:00
parent 188186046e
commit 053e4a31cd
84 changed files with 253 additions and 18 deletions

View File

@ -48,6 +48,11 @@ ChannelAnalyzer::ChannelAnalyzer(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
getChannelSampleRate(); getChannelSampleRate();
m_basebandSink = new ChannelAnalyzerBaseband(); m_basebandSink = new ChannelAnalyzerBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);
applySettings(m_settings, true); applySettings(m_settings, true);

View File

@ -72,6 +72,7 @@ public:
Real getPllFrequency() const { return m_sink.getPllFrequency(); } Real getPllFrequency() const { return m_sink.getPllFrequency(); }
Real getPllDeltaPhase() const { return m_sink.getPllDeltaPhase(); } Real getPllDeltaPhase() const { return m_sink.getPllDeltaPhase(); }
Real getPllPhase() const { return m_sink.getPllPhase(); } Real getPllPhase() const { return m_sink.getPllPhase(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -65,6 +65,11 @@ ADSBDemod::ADSBDemod(DeviceAPI *devieAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new ADSBDemodBaseband(); m_basebandSink = new ADSBDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);
m_worker = new ADSBDemodWorker(); m_worker = new ADSBDemodWorker();

View File

@ -69,6 +69,7 @@ public:
void setMessageQueueToGUI(MessageQueue *messageQueue) { m_sink.setMessageQueueToGUI(messageQueue); } void setMessageQueueToGUI(MessageQueue *messageQueue) { m_sink.setMessageQueueToGUI(messageQueue); }
void setMessageQueueToWorker(MessageQueue *messageQueue) { m_sink.setMessageQueueToWorker(messageQueue); } void setMessageQueueToWorker(MessageQueue *messageQueue) { m_sink.setMessageQueueToWorker(messageQueue); }
void setBasebandSampleRate(int sampleRate); void setBasebandSampleRate(int sampleRate);
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -53,6 +53,11 @@ AISDemod::AISDemod(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new AISDemodBaseband(this); m_basebandSink = new AISDemodBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -77,6 +77,7 @@ public:
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -34,6 +34,7 @@
#include "dsp/dspengine.h" #include "dsp/dspengine.h"
#include "dsp/dspcommands.h" #include "dsp/dspcommands.h"
#include "dsp/devicesamplesource.h"
#include "device/deviceapi.h" #include "device/deviceapi.h"
#include "feature/feature.h" #include "feature/feature.h"
#include "settings/serializable.h" #include "settings/serializable.h"
@ -49,11 +50,17 @@ const int AMDemod::m_udpBlockSize = 512;
AMDemod::AMDemod(DeviceAPI *deviceAPI) : AMDemod::AMDemod(DeviceAPI *deviceAPI) :
ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink), ChannelAPI(m_channelIdURI, ChannelAPI::StreamSingleSink),
m_deviceAPI(deviceAPI), m_deviceAPI(deviceAPI),
m_basebandSampleRate(0) m_basebandSampleRate(0),
m_lastTs(0)
{ {
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new AMDemodBaseband(); m_basebandSink = new AMDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);
@ -65,11 +72,25 @@ AMDemod::AMDemod(DeviceAPI *deviceAPI) :
m_networkManager = new QNetworkAccessManager(); m_networkManager = new QNetworkAccessManager();
connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
connect(&m_channelMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleChannelMessages())); connect(&m_channelMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleChannelMessages()));
// Experimental:
// QObject::connect(
// m_deviceAPI->getSampleSource()->getSampleFifo(),
// &SampleSinkFifo::written,
// this,
// &AMDemod::handleWrittenToFifo
// );
} }
AMDemod::~AMDemod() AMDemod::~AMDemod()
{ {
qDebug("AMDemod::~AMDemod"); qDebug("AMDemod::~AMDemod");
// Experimental:
// QObject::disconnect(
// m_deviceAPI->getSampleSource()->getSampleFifo(),
// &SampleSinkFifo::written,
// this,
// &AMDemod::handleWrittenToFifo
// );
disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*)));
delete m_networkManager; delete m_networkManager;
m_deviceAPI->removeChannelSinkAPI(this); m_deviceAPI->removeChannelSinkAPI(this);
@ -645,3 +666,15 @@ void AMDemod::handleChannelMessages()
} }
} }
} }
void AMDemod::handleWrittenToFifo(int nsamples, qint64 timestamp)
{
QDateTime dt;
dt.setMSecsSinceEpoch(MainCore::instance()->getStartMsecsSinceEpoch() + timestamp/1000000);
qDebug("AMDemod::handleWrittenToFifo: %s: nsamples: %d, dts: %lld sr: %f",
qPrintable(dt.toString("yyyy.MM.dd hh:mm:ss.zzz")),
nsamples,
timestamp - m_lastTs, nsamples*1e9 / (timestamp - m_lastTs)
);
m_lastTs = timestamp;
}

View File

@ -140,6 +140,7 @@ private:
QNetworkAccessManager *m_networkManager; QNetworkAccessManager *m_networkManager;
QNetworkRequest m_networkRequest; QNetworkRequest m_networkRequest;
qint64 m_lastTs;
virtual bool handleMessage(const Message& cmd); virtual bool handleMessage(const Message& cmd);
void applySettings(const AMDemodSettings& settings, bool force = false); void applySettings(const AMDemodSettings& settings, bool force = false);
@ -162,6 +163,7 @@ private:
private slots: private slots:
void networkManagerFinished(QNetworkReply *reply); void networkManagerFinished(QNetworkReply *reply);
void handleChannelMessages(); void handleChannelMessages();
void handleWrittenToFifo(int nsamples, qint64 timestamp);
}; };
#endif // INCLUDE_AMDEMOD_H #endif // INCLUDE_AMDEMOD_H

View File

@ -74,6 +74,7 @@ public:
Real getPllFrequency() const { return m_sink.getPllFrequency(); } Real getPllFrequency() const { return m_sink.getPllFrequency(); }
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -61,6 +61,11 @@ APTDemod::APTDemod(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new APTDemodBaseband(this); m_basebandSink = new APTDemodBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);
m_imageWorker = new APTDemodImageWorker(this); m_imageWorker = new APTDemodImageWorker(this);

View File

@ -72,6 +72,7 @@ public:
void setBasebandSampleRate(int sampleRate); void setBasebandSampleRate(int sampleRate);
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -42,6 +42,11 @@ ATVDemod::ATVDemod(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new ATVDemodBaseband(); m_basebandSink = new ATVDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);
applySettings(m_settings, true); applySettings(m_settings, true);

View File

@ -72,6 +72,7 @@ public:
void setVideoTabIndex(int videoTabIndex) { m_sink.setVideoTabIndex(videoTabIndex); } void setVideoTabIndex(int videoTabIndex) { m_sink.setVideoTabIndex(videoTabIndex); }
void setBasebandSampleRate(int sampleRate); //!< To be used when supporting thread is stopped void setBasebandSampleRate(int sampleRate); //!< To be used when supporting thread is stopped
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -57,6 +57,11 @@ BFMDemod::BFMDemod(DeviceAPI *deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new BFMDemodBaseband(); m_basebandSink = new BFMDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setSpectrumSink(&m_spectrumVis); m_basebandSink->setSpectrumSink(&m_spectrumVis);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -79,6 +79,7 @@ public:
Real getDemodFclk() const { return m_sink.getDemodFclk(); } Real getDemodFclk() const { return m_sink.getDemodFclk(); }
void getMagSqLevels(double& avg, double& peak, int& nbSamples) { m_sink.getMagSqLevels(avg, peak, nbSamples); } void getMagSqLevels(double& avg, double& peak, int& nbSamples) { m_sink.getMagSqLevels(avg, peak, nbSamples); }
RDSParser& getRDSParser() { return m_sink.getRDSParser(); } RDSParser& getRDSParser() { return m_sink.getRDSParser(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -72,6 +72,11 @@ ChirpChatDemod::ChirpChatDemod(DeviceAPI* deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new ChirpChatDemodBaseband(); m_basebandSink = new ChirpChatDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setSpectrumSink(&m_spectrumVis); m_basebandSink->setSpectrumSink(&m_spectrumVis);
m_basebandSink->setDecoderMessageQueue(getInputMessageQueue()); // Decoder held on the main thread m_basebandSink->setDecoderMessageQueue(getInputMessageQueue()); // Decoder held on the main thread
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -68,6 +68,7 @@ public:
void setBasebandSampleRate(int sampleRate); void setBasebandSampleRate(int sampleRate);
void setDecoderMessageQueue(MessageQueue *messageQueue) { m_sink.setDecoderMessageQueue(messageQueue); } void setDecoderMessageQueue(MessageQueue *messageQueue) { m_sink.setDecoderMessageQueue(messageQueue); }
void setSpectrumSink(BasebandSampleSink* spectrumSink) { m_sink.setSpectrumSink(spectrumSink); } void setSpectrumSink(BasebandSampleSink* spectrumSink) { m_sink.setSpectrumSink(spectrumSink); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -64,6 +64,11 @@ DABDemod::DABDemod(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new DABDemodBaseband(this); m_basebandSink = new DABDemodBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -75,6 +75,7 @@ public:
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
int getAudioSampleRate() const { return m_sink.getAudioSampleRate(); } int getAudioSampleRate() const { return m_sink.getAudioSampleRate(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -44,8 +44,13 @@ DATVDemod::DATVDemod(DeviceAPI *deviceAPI) :
m_basebandSampleRate(0) m_basebandSampleRate(0)
{ {
qDebug("DATVDemod::DATVDemod"); qDebug("DATVDemod::DATVDemod");
setObjectName("DATVDemod"); setObjectName(m_channelId);
m_basebandSink = new DATVDemodBaseband(); m_basebandSink = new DATVDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);
applySettings(m_settings, true); applySettings(m_settings, true);

View File

@ -90,6 +90,7 @@ public:
int getModcodCodeRate() const { return m_sink.getModcodCodeRate(); } int getModcodCodeRate() const { return m_sink.getModcodCodeRate(); }
bool isCstlnSetByModcod() const { return m_sink.isCstlnSetByModcod(); } bool isCstlnSetByModcod() const { return m_sink.isCstlnSetByModcod(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -60,6 +60,11 @@ DSDDemod::DSDDemod(DeviceAPI *deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new DSDDemodBaseband(); m_basebandSink = new DSDDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -73,6 +73,7 @@ public:
const DSDDecoder& getDecoder() const { return m_sink.getDecoder(); } const DSDDecoder& getDecoder() const { return m_sink.getDecoder(); }
const char *updateAndGetStatusText() { return m_sink.updateAndGetStatusText(); } const char *updateAndGetStatusText() { return m_sink.updateAndGetStatusText(); }
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -51,6 +51,11 @@ FreeDVDemod::FreeDVDemod(DeviceAPI *deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new FreeDVDemodBaseband(); m_basebandSink = new FreeDVDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setSpectrumSink(&m_spectrumVis); m_basebandSink->setSpectrumSink(&m_spectrumVis);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -89,6 +89,7 @@ public:
int getBER() const { return m_sink.getBER(); } int getBER() const { return m_sink.getBER(); }
float getFrequencyOffset() const { return m_sink.getFrequencyOffset(); } float getFrequencyOffset() const { return m_sink.getFrequencyOffset(); }
bool isSync() const { return m_sink.isSync(); } bool isSync() const { return m_sink.isSync(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
signals: signals:
/** /**
@ -117,4 +118,4 @@ private slots:
void handleData(); //!< Handle data when samples have to be processed void handleData(); //!< Handle data when samples have to be processed
}; };
#endif // INCLUDE_DSDDEMODBASEBAND_H #endif // INCLUDE_DSDDEMODBASEBAND_H

View File

@ -59,6 +59,11 @@ NFMDemod::NFMDemod(DeviceAPI *devieAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new NFMDemodBaseband(); m_basebandSink = new NFMDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -70,6 +70,7 @@ public:
int getAudioSampleRate() const { return m_sink.getAudioSampleRate(); } int getAudioSampleRate() const { return m_sink.getAudioSampleRate(); }
void setBasebandSampleRate(int sampleRate); void setBasebandSampleRate(int sampleRate);
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -55,6 +55,11 @@ PacketDemod::PacketDemod(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new PacketDemodBaseband(this); m_basebandSink = new PacketDemodBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -75,6 +75,7 @@ public:
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -48,6 +48,11 @@ PagerDemod::PagerDemod(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new PagerDemodBaseband(this); m_basebandSink = new PagerDemodBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -78,6 +78,7 @@ public:
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -52,6 +52,11 @@ RadiosondeDemod::RadiosondeDemod(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new RadiosondeDemodBaseband(this); m_basebandSink = new RadiosondeDemodBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -77,6 +77,7 @@ public:
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -57,6 +57,11 @@ SSBDemod::SSBDemod(DeviceAPI *deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new SSBDemodBaseband(); m_basebandSink = new SSBDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setSpectrumSink(&m_spectrumVis); m_basebandSink->setSpectrumSink(&m_spectrumVis);
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -72,6 +72,7 @@ public:
void setBasebandSampleRate(int sampleRate); void setBasebandSampleRate(int sampleRate);
void setMessageQueueToGUI(MessageQueue *messageQueue) { m_messageQueueToGUI = messageQueue; } void setMessageQueueToGUI(MessageQueue *messageQueue) { m_messageQueueToGUI = messageQueue; }
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -54,6 +54,11 @@ VORDemod::VORDemod(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new VORDemodBaseband(); m_basebandSink = new VORDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);
applySettings(m_settings, true); applySettings(m_settings, true);

View File

@ -110,6 +110,7 @@ public:
return 0.0; return 0.0;
} }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -55,6 +55,11 @@ VORDemodSC::VORDemodSC(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new VORDemodSCBaseband(); m_basebandSink = new VORDemodSCBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -70,6 +70,7 @@ public:
int getAudioSampleRate() const { return m_sink.getAudioSampleRate(); } int getAudioSampleRate() const { return m_sink.getAudioSampleRate(); }
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -60,6 +60,11 @@ WFMDemod::WFMDemod(DeviceAPI* deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new WFMDemodBaseband(); m_basebandSink = new WFMDemodBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -71,6 +71,7 @@ public:
int getSquelchState() const { return m_sink.getSquelchState(); } int getSquelchState() const { return m_sink.getSquelchState(); }
void getMagSqLevels(double& avg, double& peak, int& nbSamples) { m_sink.getMagSqLevels(avg, peak, nbSamples); } void getMagSqLevels(double& avg, double& peak, int& nbSamples) { m_sink.getMagSqLevels(avg, peak, nbSamples); }
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -59,6 +59,11 @@ FileSink::FileSink(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new FileSinkBaseband(); m_basebandSink = new FileSinkBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setSpectrumSink(&m_spectrumVis); m_basebandSink->setSpectrumSink(&m_spectrumVis);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -101,6 +101,7 @@ public:
bool isRecording() const { return m_sink.isRecording(); } bool isRecording() const { return m_sink.isRecording(); }
float getSpecMax() const { return m_specMax; } float getSpecMax() const { return m_specMax; }
int getSinkSampleRate() const { return m_sink.getSampleRate(); } int getSinkSampleRate() const { return m_sink.getSampleRate(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -61,6 +61,11 @@ FreqTracker::FreqTracker(DeviceAPI *deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new FreqTrackerBaseband(); m_basebandSink = new FreqTrackerBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setSpectrumSink(&m_spectrumVis); m_basebandSink->setSpectrumSink(&m_spectrumVis);
propagateMessageQueue(getInputMessageQueue()); propagateMessageQueue(getInputMessageQueue());
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -74,6 +74,7 @@ public:
bool getPllLocked() const { return m_sink.getPllLocked(); } bool getPllLocked() const { return m_sink.getPllLocked(); }
Real getFrequency() const { return m_sink.getFrequency(); }; Real getFrequency() const { return m_sink.getFrequency(); };
Real getAvgDeltaFreq() const { return m_sink.getAvgDeltaFreq(); } Real getAvgDeltaFreq() const { return m_sink.getAvgDeltaFreq(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -57,6 +57,11 @@ LocalSink::LocalSink(DeviceAPI *deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new LocalSinkBaseband(); m_basebandSink = new LocalSinkBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);
applySettings(m_settings, true); applySettings(m_settings, true);

View File

@ -105,6 +105,7 @@ public:
int getChannelSampleRate() const; int getChannelSampleRate() const;
void startSource() { m_sink.start(m_localSampleSource); } void startSource() { m_sink.start(m_localSampleSource); }
void stopSource() { m_sink.stop(); } void stopSource() { m_sink.stop(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -66,6 +66,11 @@ NoiseFigure::NoiseFigure(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new NoiseFigureBaseband(this); m_basebandSink = new NoiseFigureBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -76,6 +76,7 @@ public:
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void startMeasurement() { m_sink.startMeasurement(); } void startMeasurement() { m_sink.startMeasurement(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -71,6 +71,11 @@ RadioAstronomy::RadioAstronomy(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new RadioAstronomyBaseband(this); m_basebandSink = new RadioAstronomyBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -75,6 +75,7 @@ public:
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -55,6 +55,11 @@ RadioClock::RadioClock(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new RadioClockBaseband(this); m_basebandSink = new RadioClockBaseband(this);
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setMessageQueueToChannel(getInputMessageQueue()); m_basebandSink->setMessageQueueToChannel(getInputMessageQueue());
m_basebandSink->setChannel(this); m_basebandSink->setChannel(this);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -77,6 +77,7 @@ public:
void setChannel(ChannelAPI *channel); void setChannel(ChannelAPI *channel);
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
bool isRunning() const { return m_running; } bool isRunning() const { return m_running; }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -58,6 +58,11 @@ RemoteSink::RemoteSink(DeviceAPI *deviceAPI) :
updateWithDeviceData(); updateWithDeviceData();
m_basebandSink = new RemoteSinkBaseband(); m_basebandSink = new RemoteSinkBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);
applySettings(m_settings, true); applySettings(m_settings, true);

View File

@ -72,6 +72,7 @@ public:
void setBasebandSampleRate(int sampleRate); void setBasebandSampleRate(int sampleRate);
void setDeviceIndex(uint32_t deviceIndex) { m_sink.setDeviceIndex(deviceIndex); } void setDeviceIndex(uint32_t deviceIndex) { m_sink.setDeviceIndex(deviceIndex); }
void setChannelIndex(uint32_t channelIndex) { m_sink.setChannelIndex(channelIndex); } void setChannelIndex(uint32_t channelIndex) { m_sink.setChannelIndex(channelIndex); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
bool m_running; bool m_running;

View File

@ -59,6 +59,11 @@ SigMFFileSink::SigMFFileSink(DeviceAPI *deviceAPI) :
setObjectName(m_channelId); setObjectName(m_channelId);
m_basebandSink = new SigMFFileSinkBaseband(); m_basebandSink = new SigMFFileSinkBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setSpectrumSink(&m_spectrumVis); m_basebandSink->setSpectrumSink(&m_spectrumVis);
m_basebandSink->moveToThread(&m_thread); m_basebandSink->moveToThread(&m_thread);

View File

@ -101,6 +101,7 @@ public:
bool isRecording() const { return m_sink.isRecording(); } bool isRecording() const { return m_sink.isRecording(); }
float getSpecMax() const { return m_specMax; } float getSpecMax() const { return m_specMax; }
int getSinkSampleRate() const { return m_sink.getSampleRate(); } int getSinkSampleRate() const { return m_sink.getSampleRate(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -54,6 +54,11 @@ UDPSink::UDPSink(DeviceAPI *deviceAPI) :
m_thread = new QThread(this); m_thread = new QThread(this);
m_basebandSink = new UDPSinkBaseband(); m_basebandSink = new UDPSinkBaseband();
m_basebandSink->setFifoLabel(QString("%1 [%2:%3]")
.arg(m_channelId)
.arg(m_deviceAPI->getDeviceSetIndex())
.arg(getIndexInDeviceSet())
);
m_basebandSink->setSpectrum(&m_spectrumVis); m_basebandSink->setSpectrum(&m_spectrumVis);
m_basebandSink->moveToThread(m_thread); m_basebandSink->moveToThread(m_thread);

View File

@ -88,6 +88,7 @@ public:
double getMagSq() const { return m_sink.getMagSq(); } double getMagSq() const { return m_sink.getMagSq(); }
double getInMagSq() const { return m_sink.getInMagSq(); } double getInMagSq() const { return m_sink.getInMagSq(); }
bool getSquelchOpen() const { return m_sink.getSquelchOpen(); } bool getSquelchOpen() const { return m_sink.getSquelchOpen(); }
void setFifoLabel(const QString& label) { m_sampleFifo.setLabel(label); }
private: private:
SampleSinkFifo m_sampleFifo; SampleSinkFifo m_sampleFifo;

View File

@ -51,6 +51,7 @@ AirspyInput::AirspyInput(DeviceAPI *deviceAPI) :
m_deviceDescription("Airspy"), m_deviceDescription("Airspy"),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -53,6 +53,7 @@ AirspyHFInput::AirspyHFInput(DeviceAPI *deviceAPI) :
m_deviceDescription("AirspyHF"), m_deviceDescription("AirspyHF"),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);
m_networkManager = new QNetworkAccessManager(); m_networkManager = new QNetworkAccessManager();

View File

@ -44,6 +44,7 @@ AudioInput::AudioInput(DeviceAPI *deviceAPI) :
m_running(false), m_running(false),
m_centerFrequency(0) m_centerFrequency(0)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_fifo.setSize(20*AudioInputWorker::m_convBufSamples); m_fifo.setSize(20*AudioInputWorker::m_convBufSamples);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -46,6 +46,7 @@ Bladerf1Input::Bladerf1Input(DeviceAPI *deviceAPI) :
m_deviceDescription("BladeRFInput"), m_deviceDescription("BladeRFInput"),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);
m_deviceAPI->setBuddySharedPtr(&m_sharedParams); m_deviceAPI->setBuddySharedPtr(&m_sharedParams);

View File

@ -48,6 +48,7 @@ BladeRF2Input::BladeRF2Input(DeviceAPI *deviceAPI) :
m_running(false), m_running(false),
m_thread(nullptr) m_thread(nullptr)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
if (m_deviceShared.m_dev) if (m_deviceShared.m_dev)

View File

@ -45,6 +45,7 @@ FCDProInput::FCDProInput(DeviceAPI *deviceAPI) :
m_deviceDescription(fcd_traits<Pro>::displayedName), m_deviceDescription(fcd_traits<Pro>::displayedName),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_fcdFIFO.setSize(20*fcd_traits<Pro>::convBufSize); m_fcdFIFO.setSize(20*fcd_traits<Pro>::convBufSize);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -45,6 +45,7 @@ FCDProPlusInput::FCDProPlusInput(DeviceAPI *deviceAPI) :
m_deviceDescription(fcd_traits<ProPlus>::displayedName), m_deviceDescription(fcd_traits<ProPlus>::displayedName),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_fcdFIFO.setSize(20*fcd_traits<ProPlus>::convBufSize); m_fcdFIFO.setSize(20*fcd_traits<ProPlus>::convBufSize);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -54,13 +54,14 @@ FileInput::FileInput(DeviceAPI *deviceAPI) :
m_deviceAPI(deviceAPI), m_deviceAPI(deviceAPI),
m_settings(), m_settings(),
m_fileInputWorker(nullptr), m_fileInputWorker(nullptr),
m_deviceDescription(), m_deviceDescription("FileInput"),
m_sampleRate(48000), m_sampleRate(48000),
m_sampleSize(0), m_sampleSize(0),
m_centerFrequency(435000000), m_centerFrequency(435000000),
m_recordLengthMuSec(0), m_recordLengthMuSec(0),
m_startingTimeStamp(0) m_startingTimeStamp(0)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);
qDebug("FileInput::FileInput: device source engine: %p", m_deviceAPI->getDeviceSourceEngine()); qDebug("FileInput::FileInput: device source engine: %p", m_deviceAPI->getDeviceSourceEngine());
qDebug("FileInput::FileInput: device source engine message queue: %p", m_deviceAPI->getDeviceEngineInputMessageQueue()); qDebug("FileInput::FileInput: device source engine message queue: %p", m_deviceAPI->getDeviceEngineInputMessageQueue());

View File

@ -47,6 +47,7 @@ HackRFInput::HackRFInput(DeviceAPI *deviceAPI) :
m_deviceDescription("HackRF"), m_deviceDescription("HackRF"),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -44,10 +44,11 @@ KiwiSDRInput::KiwiSDRInput(DeviceAPI *deviceAPI) :
m_deviceAPI(deviceAPI), m_deviceAPI(deviceAPI),
m_settings(), m_settings(),
m_kiwiSDRWorker(nullptr), m_kiwiSDRWorker(nullptr),
m_deviceDescription(), m_deviceDescription("KiwiSDR"),
m_running(false), m_running(false),
m_masterTimer(deviceAPI->getMasterTimer()) m_masterTimer(deviceAPI->getMasterTimer())
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_kiwiSDRWorkerThread.start(); m_kiwiSDRWorkerThread.start();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -54,6 +54,7 @@ LimeSDRInput::LimeSDRInput(DeviceAPI *deviceAPI) :
m_running(false), m_running(false),
m_channelAcquired(false) m_channelAcquired(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_streamId.handle = 0; m_streamId.handle = 0;
suspendRxBuddies(); suspendRxBuddies();
suspendTxBuddies(); suspendTxBuddies();

View File

@ -44,6 +44,7 @@ LocalInput::LocalInput(DeviceAPI *deviceAPI) :
m_centerFrequency(0), m_centerFrequency(0),
m_deviceDescription("LocalInput") m_deviceDescription("LocalInput")
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_sampleFifo.setSize(96000 * 4); m_sampleFifo.setSize(96000 * 4);
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -42,6 +42,7 @@ PerseusInput::PerseusInput(DeviceAPI *deviceAPI) :
m_perseusWorker(nullptr), m_perseusWorker(nullptr),
m_perseusDescriptor(0) m_perseusDescriptor(0)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -45,6 +45,7 @@ PlutoSDRInput::PlutoSDRInput(DeviceAPI *deviceAPI) :
m_plutoRxBuffer(0), m_plutoRxBuffer(0),
m_plutoSDRInputThread(nullptr) m_plutoSDRInputThread(nullptr)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_deviceSampleRates.m_addaConnvRate = 0; m_deviceSampleRates.m_addaConnvRate = 0;
m_deviceSampleRates.m_bbRateHz = 0; m_deviceSampleRates.m_bbRateHz = 0;
m_deviceSampleRates.m_firRate = 0; m_deviceSampleRates.m_firRate = 0;

View File

@ -54,9 +54,10 @@ RemoteInput::RemoteInput(DeviceAPI *deviceAPI) :
m_mutex(QMutex::Recursive), m_mutex(QMutex::Recursive),
m_settings(), m_settings(),
m_remoteInputUDPHandler(nullptr), m_remoteInputUDPHandler(nullptr),
m_deviceDescription(), m_deviceDescription("RemoteInput"),
m_startingTimeStamp(0) m_startingTimeStamp(0)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_sampleFifo.setSize(m_sampleRate * 8); m_sampleFifo.setSize(m_sampleRate * 8);
m_remoteInputUDPHandler = new RemoteInputUDPHandler(&m_sampleFifo, m_deviceAPI); m_remoteInputUDPHandler = new RemoteInputUDPHandler(&m_sampleFifo, m_deviceAPI);
m_remoteInputUDPHandler->setMessageQueueToInput(&m_inputMessageQueue); m_remoteInputUDPHandler->setMessageQueueToInput(&m_inputMessageQueue);

View File

@ -53,9 +53,10 @@ RTLSDRInput::RTLSDRInput(DeviceAPI *deviceAPI) :
m_settings(), m_settings(),
m_dev(0), m_dev(0),
m_rtlSDRThread(nullptr), m_rtlSDRThread(nullptr),
m_deviceDescription(), m_deviceDescription("RTLSDR"),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -50,6 +50,7 @@ SDRPlayInput::SDRPlayInput(DeviceAPI *deviceAPI) :
m_devNumber(0), m_devNumber(0),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -50,6 +50,7 @@ SDRPlayV3Input::SDRPlayV3Input(DeviceAPI *deviceAPI) :
m_devNumber(0), m_devNumber(0),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -70,13 +70,14 @@ SigMFFileInput::SigMFFileInput(DeviceAPI *deviceAPI) :
m_crcOK(false), m_crcOK(false),
m_recordLengthOK(false), m_recordLengthOK(false),
m_fileInputWorker(nullptr), m_fileInputWorker(nullptr),
m_deviceDescription(), m_deviceDescription("SigMFFileInput"),
m_sampleRate(48000), m_sampleRate(48000),
m_sampleBytes(1), m_sampleBytes(1),
m_centerFrequency(0), m_centerFrequency(0),
m_recordLength(0), m_recordLength(0),
m_startingTimeStamp(0) m_startingTimeStamp(0)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);
qDebug("SigMFFileInput::SigMFFileInput: device source engine: %p", m_deviceAPI->getDeviceSourceEngine()); qDebug("SigMFFileInput::SigMFFileInput: device source engine: %p", m_deviceAPI->getDeviceSourceEngine());
qDebug("SigMFFileInput::SigMFFileInput: device source engine message queue: %p", m_deviceAPI->getDeviceEngineInputMessageQueue()); qDebug("SigMFFileInput::SigMFFileInput: device source engine message queue: %p", m_deviceAPI->getDeviceEngineInputMessageQueue());

View File

@ -46,6 +46,7 @@ SoapySDRInput::SoapySDRInput(DeviceAPI *deviceAPI) :
m_running(false), m_running(false),
m_thread(nullptr) m_thread(nullptr)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
initGainSettings(m_settings); initGainSettings(m_settings);
initTunableElementsSettings(m_settings); initTunableElementsSettings(m_settings);

View File

@ -40,10 +40,11 @@ TestSourceInput::TestSourceInput(DeviceAPI *deviceAPI) :
m_deviceAPI(deviceAPI), m_deviceAPI(deviceAPI),
m_settings(), m_settings(),
m_testSourceWorker(nullptr), m_testSourceWorker(nullptr),
m_deviceDescription(), m_deviceDescription("TestSourceInput"),
m_running(false), m_running(false),
m_masterTimer(deviceAPI->getMasterTimer()) m_masterTimer(deviceAPI->getMasterTimer())
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);
if (!m_sampleFifo.setSize(96000 * 4)) { if (!m_sampleFifo.setSize(96000 * 4)) {

View File

@ -57,6 +57,7 @@ USRPInput::USRPInput(DeviceAPI *deviceAPI) :
m_channelAcquired(false), m_channelAcquired(false),
m_bufSamples(0) m_bufSamples(0)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
m_streamId = nullptr; m_streamId = nullptr;
suspendRxBuddies(); suspendRxBuddies();
suspendTxBuddies(); suspendTxBuddies();

View File

@ -52,6 +52,7 @@ XTRXInput::XTRXInput(DeviceAPI *deviceAPI) :
m_deviceDescription("XTRXInput"), m_deviceDescription("XTRXInput"),
m_running(false) m_running(false)
{ {
m_sampleFifo.setLabel(m_deviceDescription);
openDevice(); openDevice();
m_deviceAPI->setNbSourceStreams(1); m_deviceAPI->setNbSourceStreams(1);

View File

@ -123,15 +123,17 @@ unsigned int SampleSinkFifo::write(const quint8* data, unsigned int count)
{ {
m_suppressed = 0; m_suppressed = 0;
m_msgRateTimer.start(); m_msgRateTimer.start();
qCritical("SampleSinkFifo::write: overflow - dropping %u samples", count - total); qCritical("SampleSinkFifo::write: (%s) overflow - dropping %u samples",
qPrintable(m_label), count - total);
emit overflow(count - total); emit overflow(count - total);
} }
else else
{ {
if (m_msgRateTimer.elapsed() > 2500) if (m_msgRateTimer.elapsed() > 2500)
{ {
qCritical("SampleSinkFifo::write: %u messages dropped", m_suppressed); qCritical("SampleSinkFifo::write: (%s) %u messages dropped", qPrintable(m_label), m_suppressed);
qCritical("SampleSinkFifo::write: overflow - dropping %u samples", count - total); qCritical("SampleSinkFifo::write: (%s) overflow - dropping %u samples",
qPrintable(m_label), count - total);
emit overflow(count - total); emit overflow(count - total);
m_suppressed = -1; m_suppressed = -1;
} }
@ -192,15 +194,17 @@ unsigned int SampleSinkFifo::write(SampleVector::const_iterator begin, SampleVec
{ {
m_suppressed = 0; m_suppressed = 0;
m_msgRateTimer.start(); m_msgRateTimer.start();
qCritical("SampleSinkFifo::write: overflow - dropping %u samples", count - total); qCritical("SampleSinkFifo::write: (%s) overflow - dropping %u samples",
qPrintable(m_label), count - total);
emit overflow(count - total); emit overflow(count - total);
} }
else else
{ {
if (m_msgRateTimer.elapsed() > 2500) if (m_msgRateTimer.elapsed() > 2500)
{ {
qCritical("SampleSinkFifo::write: %u messages dropped", m_suppressed); qCritical("SampleSinkFifo::write: (%s) %u messages dropped", qPrintable(m_label), m_suppressed);
qCritical("SampleSinkFifo::write: overflow - dropping %u samples", count - total); qCritical("SampleSinkFifo::write: (%s) overflow - dropping %u samples",
qPrintable(m_label), count - total);
emit overflow(count - total); emit overflow(count - total);
m_suppressed = -1; m_suppressed = -1;
} }
@ -257,7 +261,8 @@ unsigned int SampleSinkFifo::read(SampleVector::iterator begin, SampleVector::it
if (total < count) if (total < count)
{ {
qCritical("SampleSinkFifo::read: underflow - missing %u samples", count - total); qCritical("SampleSinkFifo::read: (%s) underflow - missing %u samples",
qPrintable(m_label), count - total);
emit underflow(count - total); emit underflow(count - total);
} }
@ -296,7 +301,8 @@ unsigned int SampleSinkFifo::readBegin(unsigned int count,
if (total < count) if (total < count)
{ {
qCritical("SampleSinkFifo::readBegin: underflow - missing %u samples", count - total); qCritical("SampleSinkFifo::readBegin: (%s) underflow - missing %u samples",
qPrintable(m_label), count - total);
emit underflow(count - total); emit underflow(count - total);
} }
@ -342,7 +348,7 @@ unsigned int SampleSinkFifo::readCommit(unsigned int count)
if (count > m_fill) if (count > m_fill)
{ {
qCritical("SampleSinkFifo::readCommit: cannot commit more than available samples"); qCritical("SampleSinkFifo::readCommit: (%s) cannot commit more than available samples", qPrintable(m_label));
count = m_fill; count = m_fill;
} }

View File

@ -41,6 +41,7 @@ private:
unsigned int m_fill; unsigned int m_fill;
unsigned int m_head; unsigned int m_head;
unsigned int m_tail; unsigned int m_tail;
QString m_label;
void create(unsigned int s); void create(unsigned int s);
@ -65,6 +66,7 @@ public:
SampleVector::iterator* part1Begin, SampleVector::iterator* part1End, SampleVector::iterator* part1Begin, SampleVector::iterator* part1End,
SampleVector::iterator* part2Begin, SampleVector::iterator* part2End); SampleVector::iterator* part2Begin, SampleVector::iterator* part2End);
unsigned int readCommit(unsigned int count); unsigned int readCommit(unsigned int count);
void setLabel(const QString& label) { m_label = label; }
static unsigned int getSizePolicy(unsigned int sampleRate); static unsigned int getSizePolicy(unsigned int sampleRate);
signals: signals: