diff --git a/Source/FrameReceiver.cpp b/Source/FrameReceiver.cpp new file mode 100644 index 0000000..57d6dc8 --- /dev/null +++ b/Source/FrameReceiver.cpp @@ -0,0 +1,2 @@ +// -------------------------------------------------------------- +#include "FrameReceiver.hpp" diff --git a/Source/FrameReceiver.hpp b/Source/FrameReceiver.hpp new file mode 100644 index 0000000..57578da --- /dev/null +++ b/Source/FrameReceiver.hpp @@ -0,0 +1,79 @@ +// -------------------------------------------------------------- +#ifndef _RADIO_FRAME_HPP_ +#define _RADIO_FRAME_HPP_ + +#include +#include +#include +#include +#include +#include + +class FrameReceiver : public Processor::Block +{ +public: +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(); +} + +void resetStats() +{ + m_deformatter.resetStats(); +} + +void setNumBitsPerSymbol(uint32_t nBitsPerSym) +{ + m_desymbolizer.setNumBitsPerSymbol(nBitsPerSym); + m_deformatter.resetStats(); +} + +void prepare() +{ + m_buf_symbol_in = buffer_in(); +// m_buf_byte_out = buffer_out(); + m_buf_byte_in.resize(m_buf_symbol_in->capacity()); + + 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: + DeSymbolizer m_desymbolizer; + DeFormatter m_deformatter; + uint32_t m_framesCount; + uint32_t m_byteCount; + Processor::Buffer *m_buf_symbol_in; + Processor::Buffer *m_buf_byte_out; + Processor::Buffer m_buf_byte_in; +}; + +// -------------------------------------------------------------- +#endif // _RADIO_FRAME_HPP_ diff --git a/Source/Makefile b/Source/Makefile index 59e6f55..c3bff40 100644 --- a/Source/Makefile +++ b/Source/Makefile @@ -6,6 +6,7 @@ NAME := Source CXX_SRCS := GraphComponent.cpp CXX_SRCS += LogComponent.cpp CXX_SRCS += Receiver.cpp +CXX_SRCS += FrameReceiver.cpp CXX_SRCS += Transmitter.cpp CXX_SRCS += ControlComponent.cpp CXX_SRCS += IQPoint.cpp diff --git a/Source/Receiver.cpp b/Source/Receiver.cpp index a6a731f..4333a6f 100644 --- a/Source/Receiver.cpp +++ b/Source/Receiver.cpp @@ -1,7 +1,6 @@ #include #include "Receiver.hpp" #include "MinMaxLemire.h" -#include #if 0 #include @@ -22,8 +21,8 @@ const radio_float_t CPR_GAIN_LAG_TRK = (radio_float_t)1.00E-9; // 5E-7 const radio_float_t STR_GAIN_LEAD_AQU = (radio_float_t)4.00E-4; // 2E-3 const radio_float_t STR_GAIN_LAG_AQU = (radio_float_t)0.50E-6; // 5E-7 -const radio_float_t STR_GAIN_LEAD_TRK = (radio_float_t)4.00E-6; // 8E-4 -const radio_float_t STR_GAIN_LAG_TRK = (radio_float_t)1.00E-9; // 1E-6 +const radio_float_t STR_GAIN_LEAD_TRK = (radio_float_t)8.00E-5; // 8E-4 +const radio_float_t STR_GAIN_LAG_TRK = (radio_float_t)1.00E-7; // 1E-6 const radio_float_t AGC_INITIAL_VALUE = (radio_float_t)2.0; const radio_float_t AGC_ADAPTION_RATE_ACQ = (radio_float_t)0.01; diff --git a/Source/Receiver.hpp b/Source/Receiver.hpp index 11fb906..2a9382a 100644 --- a/Source/Receiver.hpp +++ b/Source/Receiver.hpp @@ -7,10 +7,10 @@ #include #include #include -#include #include #include "LogComponent.h" +#include "FrameReceiver.hpp" #include #include diff --git a/Source/Transmitter.hpp b/Source/Transmitter.hpp index f85d02c..285e4b9 100644 --- a/Source/Transmitter.hpp +++ b/Source/Transmitter.hpp @@ -4,13 +4,14 @@ #include #include #include -#include #include "JuceHeader.h" #include "LogComponent.h" #include #include +#include +#include #include #include "TransmitterInterface.hpp"