SDRDaemon: fixed passing number of sample bits and sample bytes

pull/228/head
f4exb 2018-09-09 17:39:36 +02:00
rodzic cfd414073e
commit 0ae5955b76
7 zmienionych plików z 33 dodań i 10 usunięć

Wyświetl plik

@ -114,8 +114,8 @@ void DaemonSink::feed(const SampleVector::const_iterator& begin, const SampleVec
metaData.m_centerFrequency = m_centerFrequency;
metaData.m_sampleRate = m_sampleRate;
metaData.m_sampleBytes = m_sampleBytes;
metaData.m_sampleBits = 0; // TODO: deprecated
metaData.m_sampleBytes = m_sampleBytes & 0xF;
metaData.m_sampleBits = SDR_RX_SAMP_SZ;
metaData.m_nbOriginalBlocks = SDRDaemonNbOrginalBlocks;
metaData.m_nbFECBlocks = m_nbBlocksFEC;
metaData.m_tv_sec = tv.tv_sec;

Wyświetl plik

@ -29,8 +29,8 @@ MESSAGE_CLASS_DEFINITION(UDPSinkFECWorker::MsgConfigureRemoteAddress, Message)
UDPSinkFEC::UDPSinkFEC() :
m_sampleRate(48000),
m_sampleBytes(1),
m_sampleBits(8),
m_sampleBytes(SDR_TX_SAMP_SZ == 24 ? 4 : 2),
m_sampleBits(SDR_TX_SAMP_SZ),
m_nbSamples(0),
m_nbBlocksFEC(0),
m_txDelay(0),
@ -104,7 +104,7 @@ void UDPSinkFEC::write(const SampleVector::iterator& begin, uint32_t sampleChunk
// create meta data TODO: semaphore
metaData.m_centerFrequency = 0; // frequency not set by stream
metaData.m_sampleRate = m_sampleRate;
metaData.m_sampleBytes = m_sampleBytes;
metaData.m_sampleBytes = m_sampleBytes & 0xF;
metaData.m_sampleBits = m_sampleBits;
metaData.m_nbOriginalBlocks = m_nbOriginalBlocks;
metaData.m_nbFECBlocks = m_nbBlocksFEC;

Wyświetl plik

@ -56,6 +56,7 @@ SDRdaemonSourceGui::SDRdaemonSourceGui(DeviceUISet *deviceUISet, QWidget* parent
m_bufferGauge(-50),
m_nbOriginalBlocks(128),
m_nbFECBlocks(0),
m_sampleBits(16),
m_samplesCount(0),
m_tickCount(0),
m_addressEdited(false),
@ -209,6 +210,7 @@ bool SDRdaemonSourceGui::handleMessage(const Message& message)
m_avgNbOriginalBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getAvgNbOriginalBlocks();
m_avgNbRecovery = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getAvgNbRecovery();
m_nbOriginalBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getNbOriginalBlocksPerFrame();
m_sampleBits = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getSampleBits();
int nbFECBlocks = ((SDRdaemonSourceInput::MsgReportSDRdaemonSourceStreamTiming&)message).getNbFECBlocksPerFrame();
@ -493,6 +495,8 @@ void SDRdaemonSourceGui::updateWithStreamTime()
QString s1 = QString("%1").arg(m_nbFECBlocks, 2, 10, QChar('0'));
ui->nominalNbBlocksText->setText(tr("%1/%2").arg(s).arg(s1));
ui->sampleBitsText->setText(tr("%1b").arg(m_sampleBits));
if (updateEventCounts)
{
displayEventCounts();

Wyświetl plik

@ -85,6 +85,7 @@ private:
float m_avgNbRecovery;
int m_nbOriginalBlocks;
int m_nbFECBlocks;
int m_sampleBits;
int m_samplesCount;
std::size_t m_tickCount;

Wyświetl plik

@ -373,6 +373,16 @@
</item>
<item>
<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>
<widget class="QLabel" name="nominalNbBlocksText">
<property name="minimumSize">

Wyświetl plik

@ -140,6 +140,7 @@ public:
float getAvgNbRecovery() const { return m_avgNbRecovery; }
int getNbOriginalBlocksPerFrame() const { return m_nbOriginalBlocksPerFrame; }
int getNbFECBlocksPerFrame() const { return m_nbFECBlocksPerFrame; }
int getSampleBits() const { return m_sampleBits; }
static MsgReportSDRdaemonSourceStreamTiming* create(uint32_t tv_sec,
uint32_t tv_usec,
@ -154,7 +155,8 @@ public:
float avgNbOriginalBlocks,
float avgNbRecovery,
int nbOriginalBlocksPerFrame,
int nbFECBlocksPerFrame)
int nbFECBlocksPerFrame,
int sampleBits)
{
return new MsgReportSDRdaemonSourceStreamTiming(tv_sec,
tv_usec,
@ -169,7 +171,8 @@ public:
avgNbOriginalBlocks,
avgNbRecovery,
nbOriginalBlocksPerFrame,
nbFECBlocksPerFrame);
nbFECBlocksPerFrame,
sampleBits);
}
protected:
@ -187,6 +190,7 @@ public:
float m_avgNbRecovery;
int m_nbOriginalBlocksPerFrame;
int m_nbFECBlocksPerFrame;
int m_sampleBits;
MsgReportSDRdaemonSourceStreamTiming(uint32_t tv_sec,
uint32_t tv_usec,
@ -201,7 +205,8 @@ public:
float avgNbOriginalBlocks,
float avgNbRecovery,
int nbOriginalBlocksPerFrame,
int nbFECBlocksPerFrame) :
int nbFECBlocksPerFrame,
int sampleBits) :
Message(),
m_tv_sec(tv_sec),
m_tv_usec(tv_usec),
@ -216,7 +221,8 @@ public:
m_avgNbOriginalBlocks(avgNbOriginalBlocks),
m_avgNbRecovery(avgNbRecovery),
m_nbOriginalBlocksPerFrame(nbOriginalBlocksPerFrame),
m_nbFECBlocksPerFrame(nbFECBlocksPerFrame)
m_nbFECBlocksPerFrame(nbFECBlocksPerFrame),
m_sampleBits(sampleBits)
{ }
};

Wyświetl plik

@ -307,6 +307,7 @@ void SDRdaemonSourceUDPHandler::tick()
int minNbOriginalBlocks = m_sdrDaemonBuffer.getMinOriginalBlocks();
int nbOriginalBlocks = m_sdrDaemonBuffer.getCurrentMeta().m_nbOriginalBlocks;
int nbFECblocks = m_sdrDaemonBuffer.getCurrentMeta().m_nbFECBlocks;
int sampleBits = m_sdrDaemonBuffer.getCurrentMeta().m_sampleBits;
//framesDecodingStatus = (minNbOriginalBlocks == nbOriginalBlocks ? 2 : (minNbOriginalBlocks < nbOriginalBlocks - nbFECblocks ? 0 : 1));
if (minNbBlocks < nbOriginalBlocks) {
@ -331,7 +332,8 @@ void SDRdaemonSourceUDPHandler::tick()
m_sdrDaemonBuffer.getAvgOriginalBlocks(),
m_sdrDaemonBuffer.getAvgNbRecovery(),
nbOriginalBlocks,
nbFECblocks);
nbFECblocks,
sampleBits);
m_outputMessageQueueToGUI->push(report);
}