32 size_t d_max_burst_size;
35 float * d_magnitude_f;
36 gr_complex * d_burst_after_pll;
37 gr_complex * d_decimated_burst;
38 int * d_demodulated_burst;
39 int d_symbol_mapping[4];
40 uint64_t d_n_handled_bursts;
41 uint64_t d_n_access_ok_bursts;
43 std::vector<uint8_t> d_bits;
45 void handler(pmt::pmt_t msg);
46 void update_buffer_sizes(
size_t burst_size);
47 int decimate(
const gr_complex * in,
int size,
int sps, gr_complex * out);
48 void qpskFirstOrderPLL(
const gr_complex* x,
int size,
float alpha, gr_complex* y);
49 size_t demod_qpsk(
const gr_complex *
burst,
size_t n_symbols,
int * out,
float * level,
int * confidence);
50 bool check_sync_word(
int * d_demodulated_burst,
size_t n_symbols,
::iridium::direction direction);
51 void decode_deqpsk(
int * demodulated_burst,
size_t n_symbols);
52 void map_symbols_to_bits(
const int * demodulated_burst,
size_t n_symbols, std::vector<uint8_t> &bits);
60 int work(
int noutput_items,
61 gr_vector_const_void_star &input_items,
62 gr_vector_void_star &output_items);