GNU Radio's SATELLITES Package
u482c_encode_impl.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2025 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_U482C_ENCODE_IMPL_H
12#define INCLUDED_SATELLITES_U482C_ENCODE_IMPL_H
13
14#include <pmt/pmt.h>
16#include <array>
17#include <vector>
18
19namespace gr {
20namespace satellites {
21
23{
24private:
25 static constexpr size_t k_rs_coded_len = 255;
26 static constexpr size_t k_rs_info_len = 223;
27 static constexpr size_t k_header_len = 3;
28 static constexpr size_t k_syncword_len = 4;
29 static constexpr std::array<uint8_t, k_syncword_len> k_syncword{
30 0x93, 0x0b, 0x51, 0xde
31 };
32 std::array<char, k_rs_coded_len> d_ccsds_sequence;
33 std::vector<uint8_t> d_data;
34 const bool d_convolutional;
35 const bool d_scrambler;
36 const bool d_rs;
37 const int d_preamble_len;
38 const bool d_flags_in_golay;
39
40public:
41 u482c_encode_impl(bool convolutional,
42 bool scrambler,
43 bool rs,
44 int preamble_len,
45 bool flags_in_golay);
47
48 int work(int noutput_items,
49 gr_vector_const_void_star& input_items,
50 gr_vector_void_star& output_items) override;
51
52 void msg_handler(const pmt::pmt_t& pmt_msg);
53};
54
55} // namespace satellites
56} // namespace gr
57
58#endif /* INCLUDED_SATELLITES_U482C_ENCODE_IMPL_H */
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override
void msg_handler(const pmt::pmt_t &pmt_msg)
u482c_encode_impl(bool convolutional, bool scrambler, bool rs, int preamble_len, bool flags_in_golay)
U482C Encoder.
Definition u482c_encode.h:31
Definition ax100_decode.h:18
Definition ax100_decode.h:17
Definition rs-common.h:7