- 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
+16 -23
View File
@@ -4,28 +4,12 @@
#include <radio/radio_types.h>
#include <radio/cpx.h>
#include <cpp/radio/processor/src/Block.hpp>
#include "FrameDefs.hpp"
#include "Scrambler.hpp"
class IData
{
public:
IData() {}
virtual ~IData() {}
virtual void onData(data_t data) = 0;
virtual void onReset() = 0;
};
class IDeFormatter
{
public:
IDeFormatter() {}
virtual ~IDeFormatter() {}
virtual void onData(void *pData, uint32_t size) = 0;
};
class DeFormatter : public IData
class DeFormatter : public Processor::Block
{
enum State
{
@@ -33,23 +17,32 @@ class DeFormatter : public IData
Header,
Data
};
public:
DeFormatter(IDeFormatter *pDataHandler);
~DeFormatter();
DeFormatter();
virtual ~DeFormatter() = default;
void process(uint8_t data);
frame_statistics_t getStats();
void resetStats();
// Processor::Block
void prepare() override;
void process() override;
private:
IDeFormatter *m_pDataHandler;
Scrambler m_scrambler;
uint32_t m_dataCount;
uint16_t m_sync_preamble;
frame_hdr_t m_Hdr;
uint8_t m_data[FRAME_NUM_BYTES_PER_FRAME];
frame_statistics_t m_frameStats;
State m_state;
void onData(data_t data) override;
void onReset() override;
Processor::Buffer<uint8_t> *m_buf_in;
Processor::Buffer<uint8_t> *m_buf_out;
void process_sync();
void process_header();
void process_data();
};
// --------------------------------------------------------------