GNU Radio's SATELLITES Package
u482c_encode.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_H
12 #define INCLUDED_SATELLITES_U482C_ENCODE_H
13 
14 #include <gnuradio/sync_block.h>
15 #include <satellites/api.h>
16 
17 namespace gr {
18 namespace satellites {
19 
20 /*!
21  * \brief U482C Encoder
22  * \ingroup satellites
23  *
24  * This block is the opposite of u482c_encode. It performs frame encoding for
25  * the legacy U482C and some modes of the AX100. Input/output is PDUs. The main
26  * characteristic of the frame format implemented by this block is a 24-bit
27  * header that is Golay (24, 12) encoded and contains the length of the payload
28  * and some flags about the encoding.
29  */
30 class SATELLITES_API u482c_encode : virtual public gr::sync_block
31 {
32 public:
33  typedef boost::shared_ptr<u482c_encode> sptr;
34 
35  /*!
36  * \brief Create a U482C Encoder.
37  *
38  * \param convolutional Enable convolutional encoding (not supported)
39  * \param scrambler Enable CCSDS scrambling
40  * \param rs Enable Reed-Solomon encoding
41  * \param preamble_len Number of 0xAA bytes to add as preamble
42  * \param flags_in_golay Add flags in Golay field
43  */
44  static sptr make(bool convolutional,
45  bool scrambler,
46  bool rs,
47  int preamble_len,
48  bool flags_in_golay);
49 };
50 
51 } // namespace satellites
52 } // namespace gr
53 
54 #endif /* INCLUDED_SATELLITES_U482C_ENCODE_H */
#define SATELLITES_API
Definition: api.h:31
U482C Encoder.
Definition: u482c_encode.h:31
boost::shared_ptr< u482c_encode > sptr
Definition: u482c_encode.h:33
static sptr make(bool convolutional, bool scrambler, bool rs, int preamble_len, bool flags_in_golay)
Create a U482C Encoder.
Definition: ax100_decode.h:17
Definition: rs-common.h:7