diff --git a/Source/Receiver.cpp b/Source/Receiver.cpp index 2128791..a6a731f 100644 --- a/Source/Receiver.cpp +++ b/Source/Receiver.cpp @@ -46,7 +46,7 @@ Receiver::Receiver(LogHandler *pLogHandler) , m_timingGenerator() , m_polyPhase(m_timingGenerator) , m_farrow(m_timingGenerator) - , m_frameReceiver(this) + , m_frameReceiver() , m_pSymMapper(0) , m_tracker(1.0 - 5.0/EQ_UPD_INTERVAL) { @@ -187,10 +187,15 @@ void Receiver::init() // Processor buffer wiring m_polyPhase.buffer_in_add(&m_buffer_agc); - m_farrow.buffer_in_add(&m_buffer_agc); - m_polyPhase.buffer_out_add(&m_buffer_ip); + m_polyPhase.prepare(); + + m_farrow.buffer_in_add(&m_buffer_agc); m_farrow.buffer_out_add(&m_buffer_ip); + m_farrow.prepare(); + + m_frameReceiver.buffer_in_add(&m_buf_sym); + m_frameReceiver.prepare(); // Symbol demapper initSymbolMapper(); @@ -618,11 +623,8 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len) // Update IQ_H IQ_hard_last = IQ_hard; - // Call frame receiver with current symbol - m_frameReceiver.process(sym); - // Feed symbol buffer - // m_buf_sym.write(&sym, 1); + m_buf_sym.write(&sym, 1); // Feed symbol error buffer m_buf_symerr.write(&sym_err, 1); @@ -659,6 +661,9 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len) SlidingVarProcess(&m_statistics.noise_dfe_off, e_dfe_off); } + + // Call frame receiver with current symbol + m_frameReceiver.process(); } void Receiver::initDDC() diff --git a/Source/Receiver.hpp b/Source/Receiver.hpp index e74b55e..11fb906 100644 --- a/Source/Receiver.hpp +++ b/Source/Receiver.hpp @@ -325,7 +325,7 @@ class TimingGeneratorGardner : public Interpolation::TimingGenerator } }; -class Receiver : public ReceiverInterface, public IDeFormatter, public Timer +class Receiver : public ReceiverInterface, public Timer { public: Receiver(LogHandler *pLogHandler); @@ -469,13 +469,6 @@ private: void dfeOnUpdateFromDfeOff() override; cpx_t getTracker(uint32 index) override; - void onData(void *pData, uint32_t size) override - { - // Received raw data - (void)pData; - (void)size; - } - const CVec& getWeightsCMA() override { return m_cma2.getWeights();