mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-31 14:22:26 -04:00
Pager demod: optimize feed samples to scope and set sample rate in scope GUI
This commit is contained in:
parent
4bd7c5dac8
commit
8750ca9160
@ -463,6 +463,7 @@ PagerDemodGUI::PagerDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Bas
|
|||||||
m_scopeVis->setLiveRate(PagerDemodSettings::m_channelSampleRate);
|
m_scopeVis->setLiveRate(PagerDemodSettings::m_channelSampleRate);
|
||||||
ui->glScope->connectTimer(MainCore::instance()->getMasterTimer());
|
ui->glScope->connectTimer(MainCore::instance()->getMasterTimer());
|
||||||
ui->scopeGUI->setBuddies(m_scopeVis->getInputMessageQueue(), m_scopeVis, ui->glScope);
|
ui->scopeGUI->setBuddies(m_scopeVis->getInputMessageQueue(), m_scopeVis, ui->glScope);
|
||||||
|
ui->scopeGUI->setSampleRate(PagerDemodSettings::m_channelSampleRate);
|
||||||
|
|
||||||
ui->deltaFrequencyLabel->setText(QString("%1f").arg(QChar(0x94, 0x03)));
|
ui->deltaFrequencyLabel->setText(QString("%1f").arg(QChar(0x94, 0x03)));
|
||||||
ui->deltaFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold));
|
ui->deltaFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold));
|
||||||
|
@ -49,7 +49,8 @@ PagerDemodSink::PagerDemodSink(PagerDemod *pagerDemod) :
|
|||||||
m_syncCount(75),
|
m_syncCount(75),
|
||||||
m_batchNumber(0),
|
m_batchNumber(0),
|
||||||
m_wordCount(0),
|
m_wordCount(0),
|
||||||
m_addressValid(0)
|
m_addressValid(0),
|
||||||
|
m_sampleBufferIndex(0)
|
||||||
{
|
{
|
||||||
m_magsq = 0.0;
|
m_magsq = 0.0;
|
||||||
|
|
||||||
@ -58,6 +59,7 @@ PagerDemodSink::PagerDemodSink(PagerDemod *pagerDemod) :
|
|||||||
|
|
||||||
applySettings(m_settings, true);
|
applySettings(m_settings, true);
|
||||||
applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true);
|
applyChannelSettings(m_channelSampleRate, m_channelFrequencyOffset, true);
|
||||||
|
m_sampleBuffer.resize(m_sampleBufferSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
PagerDemodSink::~PagerDemodSink()
|
PagerDemodSink::~PagerDemodSink()
|
||||||
@ -68,12 +70,15 @@ void PagerDemodSink::sampleToScope(Complex sample)
|
|||||||
{
|
{
|
||||||
if (m_scopeSink)
|
if (m_scopeSink)
|
||||||
{
|
{
|
||||||
ComplexVector m_sampleBuffer;
|
m_sampleBuffer[m_sampleBufferIndex++] = sample;
|
||||||
m_sampleBuffer.push_back(sample);
|
|
||||||
std::vector<ComplexVector::const_iterator> vbegin;
|
if (m_sampleBufferIndex == m_sampleBufferSize)
|
||||||
vbegin.push_back(m_sampleBuffer.begin());
|
{
|
||||||
m_scopeSink->feed(vbegin, m_sampleBuffer.end() - m_sampleBuffer.begin());
|
std::vector<ComplexVector::const_iterator> vbegin;
|
||||||
m_sampleBuffer.clear();
|
vbegin.push_back(m_sampleBuffer.begin());
|
||||||
|
m_scopeSink->feed(vbegin, m_sampleBufferSize);
|
||||||
|
m_sampleBufferIndex = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,6 +140,9 @@ private:
|
|||||||
|
|
||||||
QVector<qint16> m_demodBuffer;
|
QVector<qint16> m_demodBuffer;
|
||||||
int m_demodBufferFill;
|
int m_demodBufferFill;
|
||||||
|
ComplexVector m_sampleBuffer;
|
||||||
|
static const int m_sampleBufferSize = PagerDemodSettings::m_channelSampleRate / 20; // 50ms
|
||||||
|
int m_sampleBufferIndex;
|
||||||
|
|
||||||
void processOneSample(Complex &ci);
|
void processOneSample(Complex &ci);
|
||||||
MessageQueue *getMessageQueueToChannel() { return m_messageQueueToChannel; }
|
MessageQueue *getMessageQueueToChannel() { return m_messageQueueToChannel; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user