mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-24 11:12:27 -04:00
SDRDaemon: fixed passing number of sample bits and sample bytes
This commit is contained in:
parent
cfd414073e
commit
0ae5955b76
@ -114,8 +114,8 @@ void DaemonSink::feed(const SampleVector::const_iterator& begin, const SampleVec
|
|||||||
|
|
||||||
metaData.m_centerFrequency = m_centerFrequency;
|
metaData.m_centerFrequency = m_centerFrequency;
|
||||||
metaData.m_sampleRate = m_sampleRate;
|
metaData.m_sampleRate = m_sampleRate;
|
||||||
metaData.m_sampleBytes = m_sampleBytes;
|
metaData.m_sampleBytes = m_sampleBytes & 0xF;
|
||||||
metaData.m_sampleBits = 0; // TODO: deprecated
|
metaData.m_sampleBits = SDR_RX_SAMP_SZ;
|
||||||
metaData.m_nbOriginalBlocks = SDRDaemonNbOrginalBlocks;
|
metaData.m_nbOriginalBlocks = SDRDaemonNbOrginalBlocks;
|
||||||
metaData.m_nbFECBlocks = m_nbBlocksFEC;
|
metaData.m_nbFECBlocks = m_nbBlocksFEC;
|
||||||
metaData.m_tv_sec = tv.tv_sec;
|
metaData.m_tv_sec = tv.tv_sec;
|
||||||
|
@ -29,8 +29,8 @@ MESSAGE_CLASS_DEFINITION(UDPSinkFECWorker::MsgConfigureRemoteAddress, Message)
|
|||||||
|
|
||||||
UDPSinkFEC::UDPSinkFEC() :
|
UDPSinkFEC::UDPSinkFEC() :
|
||||||
m_sampleRate(48000),
|
m_sampleRate(48000),
|
||||||
m_sampleBytes(1),
|
m_sampleBytes(SDR_TX_SAMP_SZ == 24 ? 4 : 2),
|
||||||
m_sampleBits(8),
|
m_sampleBits(SDR_TX_SAMP_SZ),
|
||||||
m_nbSamples(0),
|
m_nbSamples(0),
|
||||||
m_nbBlocksFEC(0),
|
m_nbBlocksFEC(0),
|
||||||
m_txDelay(0),
|
m_txDelay(0),
|
||||||
@ -104,7 +104,7 @@ void UDPSinkFEC::write(const SampleVector::iterator& begin, uint32_t sampleChunk
|
|||||||
// create meta data TODO: semaphore
|
// create meta data TODO: semaphore
|
||||||
metaData.m_centerFrequency = 0; // frequency not set by stream
|
metaData.m_centerFrequency = 0; // frequency not set by stream
|
||||||
metaData.m_sampleRate = m_sampleRate;
|
metaData.m_sampleRate = m_sampleRate;
|
||||||
metaData.m_sampleBytes = m_sampleBytes;
|
metaData.m_sampleBytes = m_sampleBytes & 0xF;
|
||||||
metaData.m_sampleBits = m_sampleBits;
|
metaData.m_sampleBits = m_sampleBits;
|
||||||
metaData.m_nbOriginalBlocks = m_nbOriginalBlocks;
|
metaData.m_nbOriginalBlocks = m_nbOriginalBlocks;
|
||||||
metaData.m_nbFECBlocks = m_nbBlocksFEC;
|
metaData.m_nbFECBlocks = m_nbBlocksFEC;
|
||||||
|
@ -56,6 +56,7 @@ SDRdaemonSourceGui::SDRdaemonSourceGui(DeviceUISet *deviceUISet, QWidget* parent
|
|||||||
m_bufferGauge(-50),
|
m_bufferGauge(-50),
|
||||||
m_nbOriginalBlocks(128),
|
m_nbOriginalBlocks(128),
|
||||||
m_nbFECBlocks(0),
|
m_nbFECBlocks(0),
|
||||||
|
m_sampleBits(16),
|
||||||
m_samplesCount(0),
|
m_samplesCount(0),
|
||||||
m_tickCount(0),
|
m_tickCount(0),
|
||||||
m_addressEdited(false),
|
m_addressEdited(false),
|
||||||
@ -209,6 +210,7 @@ bool SDRdaemonSourceGui::handleMessage(const Message& message)
|
|||||||
m_avgNbOriginalBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getAvgNbOriginalBlocks();
|
m_avgNbOriginalBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getAvgNbOriginalBlocks();
|
||||||
m_avgNbRecovery = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getAvgNbRecovery();
|
m_avgNbRecovery = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getAvgNbRecovery();
|
||||||
m_nbOriginalBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getNbOriginalBlocksPerFrame();
|
m_nbOriginalBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getNbOriginalBlocksPerFrame();
|
||||||
|
m_sampleBits = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getSampleBits();
|
||||||
|
|
||||||
int nbFECBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getNbFECBlocksPerFrame();
|
int nbFECBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getNbFECBlocksPerFrame();
|
||||||
|
|
||||||
@ -493,6 +495,8 @@ void SDRdaemonSourceGui::updateWithStreamTime()
|
|||||||
QString s1 = QString("%1").arg(m_nbFECBlocks, 2, 10, QChar('0'));
|
QString s1 = QString("%1").arg(m_nbFECBlocks, 2, 10, QChar('0'));
|
||||||
ui->nominalNbBlocksText->setText(tr("%1/%2").arg(s).arg(s1));
|
ui->nominalNbBlocksText->setText(tr("%1/%2").arg(s).arg(s1));
|
||||||
|
|
||||||
|
ui->sampleBitsText->setText(tr("%1b").arg(m_sampleBits));
|
||||||
|
|
||||||
if (updateEventCounts)
|
if (updateEventCounts)
|
||||||
{
|
{
|
||||||
displayEventCounts();
|
displayEventCounts();
|
||||||
|
@ -85,6 +85,7 @@ private:
|
|||||||
float m_avgNbRecovery;
|
float m_avgNbRecovery;
|
||||||
int m_nbOriginalBlocks;
|
int m_nbOriginalBlocks;
|
||||||
int m_nbFECBlocks;
|
int m_nbFECBlocks;
|
||||||
|
int m_sampleBits;
|
||||||
|
|
||||||
int m_samplesCount;
|
int m_samplesCount;
|
||||||
std::size_t m_tickCount;
|
std::size_t m_tickCount;
|
||||||
|
@ -373,6 +373,16 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="streamLayout">
|
<layout class="QHBoxLayout" name="streamLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="sampleBitsText">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Sample size (bits)</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>16b</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="nominalNbBlocksText">
|
<widget class="QLabel" name="nominalNbBlocksText">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
|
@ -140,6 +140,7 @@ public:
|
|||||||
float getAvgNbRecovery() const { return m_avgNbRecovery; }
|
float getAvgNbRecovery() const { return m_avgNbRecovery; }
|
||||||
int getNbOriginalBlocksPerFrame() const { return m_nbOriginalBlocksPerFrame; }
|
int getNbOriginalBlocksPerFrame() const { return m_nbOriginalBlocksPerFrame; }
|
||||||
int getNbFECBlocksPerFrame() const { return m_nbFECBlocksPerFrame; }
|
int getNbFECBlocksPerFrame() const { return m_nbFECBlocksPerFrame; }
|
||||||
|
int getSampleBits() const { return m_sampleBits; }
|
||||||
|
|
||||||
static MsgReportSDRdaemonSourceStreamTiming* create(uint32_t tv_sec,
|
static MsgReportSDRdaemonSourceStreamTiming* create(uint32_t tv_sec,
|
||||||
uint32_t tv_usec,
|
uint32_t tv_usec,
|
||||||
@ -154,7 +155,8 @@ public:
|
|||||||
float avgNbOriginalBlocks,
|
float avgNbOriginalBlocks,
|
||||||
float avgNbRecovery,
|
float avgNbRecovery,
|
||||||
int nbOriginalBlocksPerFrame,
|
int nbOriginalBlocksPerFrame,
|
||||||
int nbFECBlocksPerFrame)
|
int nbFECBlocksPerFrame,
|
||||||
|
int sampleBits)
|
||||||
{
|
{
|
||||||
return new MsgReportSDRdaemonSourceStreamTiming(tv_sec,
|
return new MsgReportSDRdaemonSourceStreamTiming(tv_sec,
|
||||||
tv_usec,
|
tv_usec,
|
||||||
@ -169,7 +171,8 @@ public:
|
|||||||
avgNbOriginalBlocks,
|
avgNbOriginalBlocks,
|
||||||
avgNbRecovery,
|
avgNbRecovery,
|
||||||
nbOriginalBlocksPerFrame,
|
nbOriginalBlocksPerFrame,
|
||||||
nbFECBlocksPerFrame);
|
nbFECBlocksPerFrame,
|
||||||
|
sampleBits);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -187,6 +190,7 @@ public:
|
|||||||
float m_avgNbRecovery;
|
float m_avgNbRecovery;
|
||||||
int m_nbOriginalBlocksPerFrame;
|
int m_nbOriginalBlocksPerFrame;
|
||||||
int m_nbFECBlocksPerFrame;
|
int m_nbFECBlocksPerFrame;
|
||||||
|
int m_sampleBits;
|
||||||
|
|
||||||
MsgReportSDRdaemonSourceStreamTiming(uint32_t tv_sec,
|
MsgReportSDRdaemonSourceStreamTiming(uint32_t tv_sec,
|
||||||
uint32_t tv_usec,
|
uint32_t tv_usec,
|
||||||
@ -201,7 +205,8 @@ public:
|
|||||||
float avgNbOriginalBlocks,
|
float avgNbOriginalBlocks,
|
||||||
float avgNbRecovery,
|
float avgNbRecovery,
|
||||||
int nbOriginalBlocksPerFrame,
|
int nbOriginalBlocksPerFrame,
|
||||||
int nbFECBlocksPerFrame) :
|
int nbFECBlocksPerFrame,
|
||||||
|
int sampleBits) :
|
||||||
Message(),
|
Message(),
|
||||||
m_tv_sec(tv_sec),
|
m_tv_sec(tv_sec),
|
||||||
m_tv_usec(tv_usec),
|
m_tv_usec(tv_usec),
|
||||||
@ -216,7 +221,8 @@ public:
|
|||||||
m_avgNbOriginalBlocks(avgNbOriginalBlocks),
|
m_avgNbOriginalBlocks(avgNbOriginalBlocks),
|
||||||
m_avgNbRecovery(avgNbRecovery),
|
m_avgNbRecovery(avgNbRecovery),
|
||||||
m_nbOriginalBlocksPerFrame(nbOriginalBlocksPerFrame),
|
m_nbOriginalBlocksPerFrame(nbOriginalBlocksPerFrame),
|
||||||
m_nbFECBlocksPerFrame(nbFECBlocksPerFrame)
|
m_nbFECBlocksPerFrame(nbFECBlocksPerFrame),
|
||||||
|
m_sampleBits(sampleBits)
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -307,6 +307,7 @@ void SDRdaemonSourceUDPHandler::tick()
|
|||||||
int minNbOriginalBlocks = m_sdrDaemonBuffer.getMinOriginalBlocks();
|
int minNbOriginalBlocks = m_sdrDaemonBuffer.getMinOriginalBlocks();
|
||||||
int nbOriginalBlocks = m_sdrDaemonBuffer.getCurrentMeta().m_nbOriginalBlocks;
|
int nbOriginalBlocks = m_sdrDaemonBuffer.getCurrentMeta().m_nbOriginalBlocks;
|
||||||
int nbFECblocks = m_sdrDaemonBuffer.getCurrentMeta().m_nbFECBlocks;
|
int nbFECblocks = m_sdrDaemonBuffer.getCurrentMeta().m_nbFECBlocks;
|
||||||
|
int sampleBits = m_sdrDaemonBuffer.getCurrentMeta().m_sampleBits;
|
||||||
|
|
||||||
//framesDecodingStatus = (minNbOriginalBlocks == nbOriginalBlocks ? 2 : (minNbOriginalBlocks < nbOriginalBlocks - nbFECblocks ? 0 : 1));
|
//framesDecodingStatus = (minNbOriginalBlocks == nbOriginalBlocks ? 2 : (minNbOriginalBlocks < nbOriginalBlocks - nbFECblocks ? 0 : 1));
|
||||||
if (minNbBlocks < nbOriginalBlocks) {
|
if (minNbBlocks < nbOriginalBlocks) {
|
||||||
@ -331,7 +332,8 @@ void SDRdaemonSourceUDPHandler::tick()
|
|||||||
m_sdrDaemonBuffer.getAvgOriginalBlocks(),
|
m_sdrDaemonBuffer.getAvgOriginalBlocks(),
|
||||||
m_sdrDaemonBuffer.getAvgNbRecovery(),
|
m_sdrDaemonBuffer.getAvgNbRecovery(),
|
||||||
nbOriginalBlocks,
|
nbOriginalBlocks,
|
||||||
nbFECblocks);
|
nbFECblocks,
|
||||||
|
sampleBits);
|
||||||
|
|
||||||
m_outputMessageQueueToGUI->push(report);
|
m_outputMessageQueueToGUI->push(report);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user