GNU Radio's SATNOGS Package
usp_encoder.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
4 *
5 * Copyright (C) 2021, Libre Space Foundation <http://libre.space>
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20#ifndef INCLUDE_SATNOGS_USP_ENCODER_H
21#define INCLUDE_SATNOGS_USP_ENCODER_H
22
26
27namespace gr {
28namespace satnogs {
29
30/*!
31 * \brief Unified SPUTNIX protocol (USP) frame encoder definition
32 *
33 */
35{
36public:
37 static encoder::encoder_sptr make(const std::vector<uint8_t>& preamble,
38 const std::vector<uint8_t>& sync,
39 uint8_t pls_code,
40 whitening::sptr scrambler);
41
42 usp_encoder(const std::vector<uint8_t>& preamble,
43 const std::vector<uint8_t>& sync,
44 uint8_t pls_code,
45 whitening::sptr scrambler);
47
48 pmt::pmt_t encode(pmt::pmt_t msg);
49
50private:
51 const size_t d_max_frame_len;
52 const size_t d_payload_start;
53 whitening::sptr d_scrambler;
54 conv_encoder d_conv;
55 uint8_t* d_pdu;
56
57 size_t final_pdu_length(size_t len) const;
58};
59
60} // namespace satnogs
61} // namespace gr
62
63#endif /* INCLUDE_SATNOGS_USP_ENCODER_H */
#define SATNOGS_API
Definition: api.h:19
Definition: conv_encoder.h:36
Abstract class defining the API of the SatNOGS Encoders.
Definition: encoder.h:44
Unified SPUTNIX protocol (USP) frame encoder definition.
Definition: usp_encoder.h:35
static encoder::encoder_sptr make(const std::vector< uint8_t > &preamble, const std::vector< uint8_t > &sync, uint8_t pls_code, whitening::sptr scrambler)
usp_encoder(const std::vector< uint8_t > &preamble, const std::vector< uint8_t > &sync, uint8_t pls_code, whitening::sptr scrambler)
pmt::pmt_t encode(pmt::pmt_t msg)
std::shared_ptr< whitening > sptr
Definition: whitening.h:42
Definition: amsat_duv_decoder.h:29