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
Abstract class that provided the API for the c decoders.
Definition decoder.h:71
std::shared_ptr< whitening > sptr
Definition whitening.h:42
class decoder_status decoder_status_t
Definition decoder.h:56
Definition amsat_duv_decoder.h:29