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 
19 namespace gr {
20 namespace satellites {
21 
23 {
24 private:
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 
40 public:
41  u482c_encode_impl(bool convolutional,
42  bool scrambler,
43  bool rs,
44  int preamble_len,
45  bool flags_in_golay);
46  ~u482c_encode_impl() override;
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 */
Definition: u482c_encode_impl.h:23
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:17
Definition: rs-common.h:7