GNU Radio's SATELLITES Package
lilacsat1_demux_impl.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2017,2020 Daniel Estevez <daniel@destevez.net>
4  *
5  * This file is part of gr-satellites
6  *
7  * SPDX-License-Identifier: GPL-3.0-or-later
8  *
9  */
10 
11 #ifndef INCLUDED_SATELLITES_LILACSAT1_DEMUX_IMPL_H
12 #define INCLUDED_SATELLITES_LILACSAT1_DEMUX_IMPL_H
13 
14 #include <pmt/pmt.h>
15 #include <string>
16 
18 
19 #include <array>
20 
21 namespace gr {
22 namespace satellites {
23 
25 {
26 private:
27  constexpr static size_t d_codec2_frame_len = 7;
28  constexpr static size_t d_chunk_len = 24;
29  constexpr static size_t d_bits_per_byte = 8;
30  constexpr static size_t d_packet_len = 116;
31  constexpr static size_t d_header_len = 4;
32  constexpr static size_t d_frame_len =
33  5 * (d_chunk_len - d_codec2_frame_len) - d_header_len;
34  int d_position;
35  pmt::pmt_t d_tag;
36  std::array<uint8_t, d_frame_len> d_frame; // Current frame without codec2 bytes
37  std::array<uint8_t, d_codec2_frame_len> d_codec2; // Current codec2 frame
38 
39 public:
40  lilacsat1_demux_impl(std::string tag);
42 
43  // Where all the action really happens
44  int work(int noutput_items,
45  gr_vector_const_void_star& input_items,
46  gr_vector_void_star& output_items);
47 };
48 
49 } // namespace satellites
50 } // namespace gr
51 
52 #endif /* INCLUDED_SATELLITES_LILACSAT1_DEMUX_IMPL_H */
Definition: lilacsat1_demux_impl.h:25
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
<+description of block+>
Definition: lilacsat1_demux.h:27
Definition: ax100_decode.h:17