- improved sync

git-svn-id: http://moon:8086/svn/software/trunk/libsrc/cpp@1081 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2022-06-26 08:23:59 +00:00
parent 607c4ec647
commit b2e77d4be2
2 changed files with 116 additions and 39 deletions
+20 -3
View File
@@ -9,12 +9,20 @@
class DeSymbolizer : public Processor::Block
{
enum State
{
Idle,
Acq,
Trk
};
static const size_t SYNC_COUNTER_RELOAD = 3;
public:
DeSymbolizer();
virtual ~DeSymbolizer() = default;
void setNumBitsPerSymbol(uint32_t nBitsPerSym);
void process(symbol_t src);
void setNumBitsPerSymbol(size_t nBitsPerSym);
// Processor::Block
void prepare() override;
@@ -27,9 +35,18 @@ private:
symbol_t m_lastSymbol;
symbol_t m_symbolMask;
symbol_t differentialDecode(symbol_t symbol);
State m_state;
size_t m_sync_dist;
size_t m_sync_dist_last;
size_t m_sync_counter;
uint8_t m_delay[2];
Processor::Buffer<symbol_t> *m_buf_in;
Processor::Buffer<uint8_t> *m_buf_out;
void process(symbol_t symbol);
void sync(symbol_t symbol);
uint8_t sym2byte(symbol_t symbol);
bool is_preamble(uint16_t data);
};
// --------------------------------------------------------------