23#ifndef INCLUDED_SATNOGS_AX100_MODE6_H
24#define INCLUDED_SATNOGS_AX100_MODE6_H
26#include <gnuradio/digital/lfsr.h>
58 using sptr = std::shared_ptr<ax100_mode6>;
61 bool ax25_descramble =
true);
72 typedef enum { NO_SYNC, IN_SYNC, DECODING } decoding_state_t;
75 const bool d_ax25_descramble;
76 const size_t d_max_frame_len;
78 decoding_state_t d_state;
81 uint8_t d_prev_bit_nrzi;
82 size_t d_received_bytes;
83 size_t d_decoded_bits;
85 uint8_t* d_frame_buffer;
86 std::deque<uint8_t> d_bitstream;
88 uint64_t d_frame_start;
89 uint64_t d_sample_cnt;
92 void enter_sync_state();
93 void enter_decoding_state();
98 inline void decode_1b(uint8_t in);
#define SATNOGS_API
Definition: api.h:19
AX.100 mode 6 decoder.
Definition: ax100_mode6.h:56
std::shared_ptr< ax100_mode6 > sptr
Definition: ax100_mode6.h:58
static sptr make(crc::type crc=crc::type::CRC32_C, whitening::sptr descrambler=whitening::make_ccsds(), bool ax25_descramble=true)
ax100_mode6(crc::type crc, whitening::sptr descrambler, bool ax25_descramble)
decoder_status_t decode(const void *in, int len)
type
Predefined CRC types.
Definition: crc.h:51
@ CRC32_C
Alias: CRC-16/ACORN, CRC-16/LTE, CRC-16/V-41-MSB, XMODEM, ZMODEM.
Abstract class that provided the API for the c decoders.
Definition: decoder.h:71
std::shared_ptr< whitening > sptr
Definition: whitening.h:42
static sptr make_ccsds(bool msb=false)
class decoder_status decoder_status_t
Definition: decoder.h:56
Definition: amsat_duv_decoder.h:29