21#ifndef INCLUDED_SATNOGS_AMSAT_DUV_DECODER_H
22#define INCLUDED_SATNOGS_AMSAT_DUV_DECODER_H
41 static const uint8_t amsat_fox_spacecraft_id[];
42 using sptr = std::shared_ptr<amsat_duv_decoder>;
43 static sptr make(
const std::string& control_symbol,
size_t max_frame_len = 96);
53 typedef enum { SEARCH_SYNC, DECODING } d_state_t;
56 uint16_t d_control_symbol_pos;
57 uint16_t d_control_symbol_neg;
59 uint16_t d_wrong_bits;
60 uint16_t d_wrong_bits_neg;
66 int* d_erasures_indexes;
68 size_t d_bitstream_idx;
69 std::deque<uint8_t> d_bitstream;
71 bool set_access_code(
const std::string& control_symbol);
73 void process_10b(uint16_t word,
size_t write_pos);
75 inline uint16_t pack_10b_word(
size_t idx);
77 int d_lookup_8b10b[2][256] = {
#define SATNOGS_API
Definition: api.h:19
AMSAT 8b10b + CCSDS RS DUV decoder.
Definition: amsat_duv_decoder.h:37
static const size_t amsat_fox_duv_frame_size
Definition: amsat_duv_decoder.h:39
std::shared_ptr< amsat_duv_decoder > sptr
Definition: amsat_duv_decoder.h:42
amsat_duv_decoder(const std::string &control_symbol, size_t max_frame_len)
decoder_status_t decode(const void *in, int len)
static sptr make(const std::string &control_symbol, size_t max_frame_len=96)
Abstract class that provided the API for the c decoders.
Definition: decoder.h:71
class decoder_status decoder_status_t
Definition: decoder.h:56
Definition: amsat_duv_decoder.h:29