- blockifized DeSymbolizer, DeFormatter, FrameReceiver

git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1077 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2022-06-24 15:13:44 +00:00
parent 1da7f978ae
commit 8b6d6313e5
5 changed files with 209 additions and 142 deletions
+54 -29
View File
@@ -5,53 +5,78 @@
#include <cstdint>
#include <radio/radio_types.h>
#include <radio/cpx.h>
#include <cpp/radio/processor/src/Block.hpp>
#include "FrameDefs.hpp"
#include "Symbolizer.hpp"
#include "Formatter.hpp"
#include "DeSymbolizer.hpp"
#include "DeFormatter.hpp"
class FrameReceiver
class FrameReceiver : public Processor::Block
{
public:
FrameReceiver(IDeFormatter *pRawFrameHandler)
: m_deformatter(pRawFrameHandler)
, m_desymbolizer( &m_deformatter)
, m_framesCount(0)
, m_byteCount(0)
{
}
FrameReceiver()
: Processor::Block(1, 1)
, m_desymbolizer()
, m_deformatter()
, m_framesCount(0)
, m_byteCount(0)
, m_buf_symbol_in(nullptr)
, m_buf_byte_out(nullptr)
{
~FrameReceiver()
{
}
}
frame_statistics_t getStats()
{
return m_deformatter.getStats();
}
~FrameReceiver()
{
}
void resetStats()
{
m_deformatter.resetStats();
}
frame_statistics_t getStats()
{
return m_deformatter.getStats();
}
void setNumBitsPerSymbol(uint32_t nBitsPerSym)
{
m_desymbolizer.setNumBitsPerSymbol(nBitsPerSym);
m_deformatter.resetStats();
}
void resetStats()
{
m_deformatter.resetStats();
}
void process(symbol_t symbol)
{
m_desymbolizer.process(symbol);
}
void setNumBitsPerSymbol(uint32_t nBitsPerSym)
{
m_desymbolizer.setNumBitsPerSymbol(nBitsPerSym);
m_deformatter.resetStats();
}
void prepare()
{
m_buf_symbol_in = buffer_in<symbol_t>();
// m_buf_byte_out = buffer_out<uint8_t>();
m_buf_byte_in.resize(2048);
m_desymbolizer.buffer_in_add(m_buf_symbol_in);
m_desymbolizer.buffer_out_add(&m_buf_byte_in);
m_desymbolizer.prepare();
m_deformatter.buffer_in_add(&m_buf_byte_in);
m_deformatter.buffer_out_add(m_buf_byte_out);
m_deformatter.prepare();
}
void process()
{
m_desymbolizer.process();
m_deformatter.process();
}
private:
DeFormatter m_deformatter;
DeSymbolizer m_desymbolizer;
DeFormatter m_deformatter;
uint32_t m_framesCount;
uint32_t m_byteCount;
Processor::Buffer<symbol_t> *m_buf_symbol_in;
Processor::Buffer<uint8_t> *m_buf_byte_out;
Processor::Buffer<uint8_t> m_buf_byte_in;
};
// --------------------------------------------------------------