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
17#include <satellites/lilacsat1_demux.h>
18
19#include <array>
20
21 namespace gr {
22 namespace satellites {
23
24 class lilacsat1_demux_impl : public lilacsat1_demux
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);
41 ~lilacsat1_demux_impl();
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 */
gr::satellites::lilacsat1_demux_impl::work
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
gr::satellites::lilacsat1_demux_impl::lilacsat1_demux_impl
lilacsat1_demux_impl(std::string tag)
gr::satellites::lilacsat1_demux_impl::~lilacsat1_demux_impl
~lilacsat1_demux_impl()
gr::satellites::lilacsat1_demux
<+description of block+>
Definition lilacsat1_demux.h:27
lilacsat1_demux.h
gr::satellites
Definition ax100_decode.h:18
gr
Definition ax100_decode.h:17