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
17namespace gr {
18namespace 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 */
30class SATELLITES_API u482c_encode : virtual public gr::sync_block
31{
32public:
33 typedef std::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
std::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:18
Definition ax100_decode.h:17
Definition rs-common.h:7