GNU Radio's SATELLITES Package
varlen_packet_tagger.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2017 Glenn Richardson <glenn@spacequest.com>
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_VARLEN_PACKET_TAGGER_H
12#define INCLUDED_VARLEN_PACKET_TAGGER_H
13
14#include <gnuradio/block.h>
15#include <gnuradio/endianness.h>
16#include <pmt/pmt.h>
17#include <satellites/api.h>
18
19namespace gr {
20namespace satellites {
21/*!
22 * \brief Examine input stream for sync tags and extract packet length.
23 * \ingroup satellites
24 *
25 * \details
26 * input: stream of bits (unpacked bytes) with sync tags
27 * output: a tagged stream of bits containing just the received packets
28 *
29 * This block uses the sync tag on the input stream to identify
30 * the header of packets. The length of each packet is extracted
31 * from the stream's header. The length of the header field and
32 * the endianness are parameters.
33 *
34 */
35class SATELLITES_API varlen_packet_tagger : virtual public gr::block
36{
37public:
38 typedef std::shared_ptr<varlen_packet_tagger> sptr;
39
40 /*!
41 * \param sync_key
42 * \param packet_key
43 * \param length_field_size
44 * \param max_packet_size
45 * \param endianness
46 * \param use_golay For 24-bit golay headers
47 */
48 static sptr make(const std::string& sync_key,
49 const std::string& packet_key,
50 int length_field_size,
51 int max_packet_size,
52 endianness_t endianness,
53 bool use_golay);
54};
55
56} // namespace satellites
57} // namespace gr
58
59#endif
#define SATELLITES_API
Definition api.h:31
Examine input stream for sync tags and extract packet length.
Definition varlen_packet_tagger.h:36
static sptr make(const std::string &sync_key, const std::string &packet_key, int length_field_size, int max_packet_size, endianness_t endianness, bool use_golay)
std::shared_ptr< varlen_packet_tagger > sptr
Definition varlen_packet_tagger.h:38
Definition ax100_decode.h:17