diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index 62779b8..a433b35 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -30,12 +30,8 @@ list(APPEND debug_blocks
list(APPEND enabled_blocks
satnogs_block_tree.xml
satnogs_amsat_duv_decoder.xml
- satnogs_ax25_decoder_bm.xml
satnogs_ax25_encoder_mb.xml
satnogs_ax25_decoder.xml
- satnogs_ccsds_rs_decoder_mm.xml
- satnogs_decoder_8b10b.xml
- satnogs_fox_telem_mm.xml
satnogs_frame_decoder.xml
satnogs_frame_file_sink.xml
satnogs_iq_sink.xml
@@ -52,7 +48,6 @@ list(APPEND enabled_blocks
satnogs_udp_msg_sink.xml
satnogs_coarse_doppler_correction_cc.xml
satnogs_waterfall_sink.xml
- satnogs_quad_demod_filter_ff.xml
satnogs_ogg_source.xml
satnogs_noaa_apt_sink.xml
satnogs_whitening.xml
diff --git a/grc/satnogs_ax25_decoder_bm.xml b/grc/satnogs_ax25_decoder_bm.xml
deleted file mode 100644
index 2abae1a..0000000
--- a/grc/satnogs_ax25_decoder_bm.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
- AX.25 Decoder
- satnogs_ax25_decoder_bm
- import satnogs
- satnogs.ax25_decoder_bm($addr, $ssid, $promisc, $descrambling, $max_frame_len)
-
-
- Receiver Callsign
- addr
- 'GND'
- string
-
-
-
- Receiver SSID
- ssid
- 0
- int
-
-
-
-
- Promiscuous mode
- promisc
- enum
-
-
-
-
-
- G3RUH descrambling
- descrambling
- enum
-
-
-
-
-
- Maximum frame length
- max_frame_len
- 256
- int
-
-
-
- in
- byte
-
-
-
-
-
-
-
diff --git a/grc/satnogs_block_tree.xml b/grc/satnogs_block_tree.xml
index eef2218..cd6db93 100644
--- a/grc/satnogs_block_tree.xml
+++ b/grc/satnogs_block_tree.xml
@@ -18,10 +18,6 @@
satnogs_upsat_transmitter
satnogs_qb50_deframer
-
- AMSAT FOX
- satnogs_fox_telem_mm
-
METOP
satnogs_lrpt_sync
@@ -42,11 +38,7 @@
satnogs_udp_msg_sink
satnogs_coarse_doppler_correction_cc
satnogs_ax25_encoder_mb
- satnogs_ax25_decoder_bm
satnogs_waterfall_sink
- satnogs_quad_demod_filter_ff
- satnogs_ccsds_rs_decoder_mm
- satnogs_decoder_8b10b
variable_whitening
satnogs_frame_acquisition
satnogs_frame_decoder
diff --git a/grc/satnogs_ccsds_rs_decoder_mm.xml b/grc/satnogs_ccsds_rs_decoder_mm.xml
deleted file mode 100644
index 6b1a6c2..0000000
--- a/grc/satnogs_ccsds_rs_decoder_mm.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- CCSDS (255,223) RS Decoder
- satnogs_ccsds_rs_decoder_mm
- import satnogs
- satnogs.ccsds_rs_decoder_mm()
-
-
- in
- message
-
-
-
-
diff --git a/grc/satnogs_decoder_8b10b.xml b/grc/satnogs_decoder_8b10b.xml
deleted file mode 100644
index 70c593c..0000000
--- a/grc/satnogs_decoder_8b10b.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
- 8b10b Decoder
- satnogs_decoder_8b10b
- import satnogs
- satnogs.decoder_8b10b($control_symbol, $max_frame_len)
-
-
-
- Control symbols
- control_symbol
- 0011111010
- string
-
-
-
- Maximum frame length
- max_frame_len
- 960
- int
-
-
-
- in
- byte
-
-
-
-
-
diff --git a/grc/satnogs_fox_telem_mm.xml b/grc/satnogs_fox_telem_mm.xml
deleted file mode 100644
index 12bf314..0000000
--- a/grc/satnogs_fox_telem_mm.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- FOX telemetry processor
- satnogs_fox_telem_mm
- import satnogs
- satnogs.fox_telem_mm()
-
-
- in
- message
-
-
-
-
diff --git a/grc/satnogs_quad_demod_filter_ff.xml b/grc/satnogs_quad_demod_filter_ff.xml
deleted file mode 100644
index 89f280c..0000000
--- a/grc/satnogs_quad_demod_filter_ff.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
- Quadrature Demod Filter
- satnogs_quad_demod_filter_ff
- import satnogs
- satnogs.quad_demod_filter_ff($gain)
-
-
- Gain
- gain
- 1.0
- real
-
-
-
- Window Size
- win
- 80
- int
-
-
-
-
- in
- float
-
-
-
-
-
diff --git a/include/satnogs/CMakeLists.txt b/include/satnogs/CMakeLists.txt
index 4a9a297..ccf7442 100644
--- a/include/satnogs/CMakeLists.txt
+++ b/include/satnogs/CMakeLists.txt
@@ -57,17 +57,12 @@ list(APPEND HEADER_FILES
udp_msg_sink.h
coarse_doppler_correction_cc.h
ax25_encoder_mb.h
- ax25_decoder_bm.h
qb50_deframer.h
waterfall_sink.h
ogg_source.h
noaa_apt_sink.h
frame_file_sink.h
iq_sink.h
- quad_demod_filter_ff.h
- decoder_8b10b.h
- ccsds_rs_decoder_mm.h
- fox_telem_mm.h
lrpt_sync.h
lrpt_decoder.h
frame_acquisition.h
diff --git a/include/satnogs/ax25_decoder_bm.h b/include/satnogs/ax25_decoder_bm.h
deleted file mode 100644
index dd764f2..0000000
--- a/include/satnogs/ax25_decoder_bm.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2016, 2017, 2018
- * Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef INCLUDED_SATNOGS_AX25_DECODER_BM_H
-#define INCLUDED_SATNOGS_AX25_DECODER_BM_H
-
-#include
-#include
-
-namespace gr
-{
- namespace satnogs
- {
-
- /*!
- * \brief AX.25 decoder that supports the legacy hardware radios.
- *
- * This block takes as input a quadrature demodulated bit stream.
- * Each byte should contains only one bit of information at the LSB.
- *
- * The block will try to find an AX.25 frame. If the frame pass the
- * CRC check then a blob PMT message is produced at the message output
- * indicated with name 'out'. Otherwise if the frame did not pass the
- * CRC check or the size was invalid, a blob PMT message is generated at
- * the output port with the name 'fail'. This will help to recover at least
- * some bytes from a corrupted message.
- *
- * The block also supports destination callsign check. Only frames with
- * the right destination Callsign will be accepted. This feature can be
- * disabled using the promisc parameter.
- *
- * \ingroup satnogs
- *
- */
- class SATNOGS_API ax25_decoder_bm : virtual public gr::sync_block
- {
- public:
- typedef boost::shared_ptr sptr;
-
- /**
- * This block takes as input a quadrature demodulated bit stream.
- * Each byte should contains only one bit of information at the LSB.
- *
- * The block will try to find an AX.25 frame. If the frame pass the
- * CRC check then a blob PMT message is produced at the message output
- * indicated with name 'pdu'. Otherwise if the frame did not pass the
- * CRC check or the size was invalid, a blob PMT message is generated at
- * the output port with the name 'failed_pdu'.
- * This will help to recover at least some bytes from a corrupted message.
- *
- * The block also supports destination callsign check. Only frames with
- * the right destination Callsign will be accepted. This feature can be
- * disabled using the promisc parameter.
- * @param addr the Callsign of the receiver
- * @param ssid the SSID of the receiver
- * @param promisc if set to yes, the Callsign check is disabled
- * @param descramble if set to yes, the data will be descrambled prior
- * decoding using the G3RUH self-synchronizing descrambler.
- * @param max_frame_len the maximum allowed frame length
- * @return
- */
- static sptr
- make (const std::string& addr, uint8_t ssid, bool promisc = false,
- bool descramble = true, size_t max_frame_len = 512);
- };
-
- } // namespace satnogs
-} // namespace gr
-
-#endif /* INCLUDED_SATNOGS_AX25_DECODER_BM_H */
-
diff --git a/include/satnogs/ccsds_rs_decoder_mm.h b/include/satnogs/ccsds_rs_decoder_mm.h
deleted file mode 100644
index 1efafd4..0000000
--- a/include/satnogs/ccsds_rs_decoder_mm.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-
-#ifndef INCLUDED_SATNOGS_CCSDS_RS_DECODER_MM_H
-#define INCLUDED_SATNOGS_CCSDS_RS_DECODER_MM_H
-
-#include
-#include
-
-namespace gr {
- namespace satnogs {
-
- /*!
- * \brief <+description of block+>
- * \ingroup satnogs
- *
- */
- class SATNOGS_API ccsds_rs_decoder_mm : virtual public gr::block
- {
- public:
- typedef boost::shared_ptr sptr;
-
- /*!
- * \brief Return a shared_ptr to a new instance of satnogs::ccsds_rs_decoder_mm.
- *
- * To avoid accidental use of raw pointers, satnogs::ccsds_rs_decoder_mm's
- * constructor is in a private implementation
- * class. satnogs::ccsds_rs_decoder_mm::make is the public interface for
- * creating new instances.
- */
- static sptr make();
- };
-
- } // namespace satnogs
-} // namespace gr
-
-#endif /* INCLUDED_SATNOGS_CCSDS_RS_DECODER_MM_H */
-
diff --git a/include/satnogs/decoder_8b10b.h b/include/satnogs/decoder_8b10b.h
deleted file mode 100644
index 415214b..0000000
--- a/include/satnogs/decoder_8b10b.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef INCLUDED_SATNOGS_DECODER_8B10B_H
-#define INCLUDED_SATNOGS_DECODER_8B10B_H
-
-#include
-#include
-
-namespace gr
-{
- namespace satnogs
- {
-
- /*!
- * \brief <+description of block+>
- * \ingroup satnogs
- *
- */
- class SATNOGS_API decoder_8b10b : virtual public gr::sync_block
- {
- public:
- typedef boost::shared_ptr sptr;
-
- /*!
- * \brief Return a shared_ptr to a new instance of satnogs::decoder_8b10b.
- *
- * To avoid accidental use of raw pointers, satnogs::decoder_8b10b's
- * constructor is in a private implementation
- * class. satnogs::decoder_8b10b::make is the public interface for
- * creating new instances.
- */
- static sptr make(const std::string& control_symbol,size_t max_frame_len);
- };
-
-}
- // namespace satnogs
-}// namespace gr
-
-#endif /* INCLUDED_SATNOGS_DECODER_8B10B_H */
-
diff --git a/include/satnogs/fox_telem_mm.h b/include/satnogs/fox_telem_mm.h
deleted file mode 100644
index c366c5d..0000000
--- a/include/satnogs/fox_telem_mm.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef INCLUDED_SATNOGS_FOX_TELEM_MM_H
-#define INCLUDED_SATNOGS_FOX_TELEM_MM_H
-
-#include
-#include
-
-namespace gr
-{
- namespace satnogs
- {
-
- /*!
- * \brief This block takes a AMSAT FOX telemetry frame from the CCSDS
- * RS decoder, discards the pad bytes, checks if the frame is originating
- * from a valid spacecraft and outputs the data to another message port.
- * \ingroup satnogs
- *
- */
- class SATNOGS_API fox_telem_mm : virtual public gr::block
- {
- public:
- typedef boost::shared_ptr sptr;
-
- /*!
- * \brief This block takes a AMSAT FOX telemetry frame from the CCSDS
- * RS decoder, discards the pad bytes, checks if the frame is originating
- * from a valid spacecraft and outputs the data to another message port.
- */
- static sptr
- make ();
- };
-
- } // namespace satnogs
-} // namespace gr
-
-#endif /* INCLUDED_SATNOGS_FOX_TELEM_MM_H */
-
diff --git a/include/satnogs/quad_demod_filter_ff.h b/include/satnogs/quad_demod_filter_ff.h
deleted file mode 100644
index e2fe90f..0000000
--- a/include/satnogs/quad_demod_filter_ff.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-
-#ifndef INCLUDED_SATNOGS_QUAD_DEMOD_FILTER_FF_H
-#define INCLUDED_SATNOGS_QUAD_DEMOD_FILTER_FF_H
-
-#include
-#include
-
-namespace gr {
- namespace satnogs {
-
- /*!
- * \brief The goal of this block is to act as a valve for a signal
- * commonly originating from a clock recovered quadrature demodulated stream.
- *
- * A very common problem in such cases, is that after the quadrature
- * demodulation the signal is on the phase domain and the detection
- * of signal presence or absence cannot be performed with energy detection.
- * Why do we need to identify signal presence? Most of the amateur satellites
- * uses quite poor and short training sequences, especially in the AX.25
- * AFSK1200 mode. Thus, the decoders have too many false alarms and due to
- * this, they miss frames.
- *
- * Some may argue that you can perform energy detection before the quadrature
- * demodulation, but this implies a 'magic' threshold should be set.
- * In the SatNOGS case, this is not possible. Every ground station is unique
- * in terms of performance and RF characteristics. On the other hand the
- * phase domain has the nice property that the signal level is known. This
- * level can be +-pi. This block tries to find an SNR-like metric based
- * on the variance and the mean of the signal.
- * \ingroup satnogs
- *
- */
- class SATNOGS_API quad_demod_filter_ff : virtual public gr::sync_block
- {
- public:
- typedef boost::shared_ptr sptr;
-
-
- /**
- * Creates a Quadrature Demodulate filter. The block will output samples
- * only in signal presence acting as a "valve" to reduce false alarms of
- * the FSK decoders. In case of no signal, zero samples are produced.
- *
- * @param gain this MUST be the gain set on the quadrature demodulate
- * gain or an appropriate value if the amplitude of the quadrature
- * demodulated signal somehow is scaled. By default if the signal is
- * on the +-pi region, the gain should be one. If it is on the +-2pi, the
- * gain should be set to 2.0 etc.
- *
- * @param window the window size to calculate the moving average and
- * variance.
- *
- * @return shared pointer of the block
- */
- static sptr make(float gain, int window = 80);
- };
-
- } // namespace satnogs
-} // namespace gr
-
-#endif /* INCLUDED_SATNOGS_QUAD_DEMOD_FILTER_FF_H */
-
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index dd86133..700f0a1 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -63,17 +63,12 @@ list(APPEND satnogs_sources
udp_msg_sink_impl.cc
coarse_doppler_correction_cc_impl.cc
ax25_encoder_mb_impl.cc
- ax25_decoder_bm_impl.cc
qb50_deframer_impl.cc
waterfall_sink_impl.cc
ogg_source_impl.cc
noaa_apt_sink_impl.cc
frame_file_sink_impl.cc
iq_sink_impl.cc
- quad_demod_filter_ff_impl.cc
- decoder_8b10b_impl.cc
- ccsds_rs_decoder_mm_impl.cc
- fox_telem_mm_impl.cc
lrpt_sync_impl.cc
convolutional_deinterleaver.cc
lrpt_decoder_impl.cc
diff --git a/lib/ax25_decoder_bm_impl.cc b/lib/ax25_decoder_bm_impl.cc
deleted file mode 100644
index 2dd8b2a..0000000
--- a/lib/ax25_decoder_bm_impl.cc
+++ /dev/null
@@ -1,328 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2016-2019
- * Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include
-#include
-#include
-#include "ax25_decoder_bm_impl.h"
-
-namespace gr
-{
-namespace satnogs
-{
-
-ax25_decoder_bm::sptr
-ax25_decoder_bm::make (const std::string &addr, uint8_t ssid, bool promisc,
- bool descramble, size_t max_frame_len)
-{
- return gnuradio::get_initial_sptr (
- new ax25_decoder_bm_impl (addr, ssid, promisc, descramble, max_frame_len));
-}
-
-/*
- * The private constructor
- */
-ax25_decoder_bm_impl::ax25_decoder_bm_impl (const std::string &addr,
- uint8_t ssid, bool promisc,
- bool descramble,
- size_t max_frame_len) :
- gr::sync_block ("ax25_decoder_bm",
- gr::io_signature::make (1, 1, sizeof(uint8_t)),
- gr::io_signature::make (0, 0, 0)),
- d_promisc (promisc),
- d_descramble (descramble),
- d_max_frame_len (max_frame_len),
- d_state (NO_SYNC),
- d_shift_reg (0x0),
- d_dec_b (0x0),
- d_prev_bit_nrzi (0),
- d_received_bytes (0),
- d_decoded_bits (0),
- d_lfsr (0x21, 0x0, 16),
- d_frame_buffer (
- new uint8_t[max_frame_len + AX25_MAX_ADDR_LEN + AX25_MAX_CTRL_LEN
- + sizeof(uint16_t)]),
- d_start_idx(0)
-{
- /* Valid PDUs output message port */
- message_port_register_out (pmt::mp ("pdu"));
- /*
- * Valid invalid (wrong CRC, different destination Callsign/SSID,
- * wrong frame size)PDUs output message port
- */
- message_port_register_out (pmt::mp ("failed_pdu"));
-}
-
-
-void
-ax25_decoder_bm_impl::decode ()
-{
- while (1) {
- bool cont = false;
- switch (d_state)
- {
- case NO_SYNC:
- for (size_t i = 0; i < d_bitstream.size (); i++) {
- decode_1b (d_bitstream[i]);
- if (d_shift_reg == AX25_SYNC_FLAG) {
- d_bitstream.erase (d_bitstream.begin (),
- d_bitstream.begin () + i + 1);
- enter_sync_state ();
- d_start_idx = 0;
- cont = true;
- break;
- }
- }
- if(cont) {
- continue;
- }
- d_bitstream.clear ();
- return;
- case IN_SYNC:
- /*
- * Most of the transmitters repeat several times the AX.25 SYNC
- * In case of G3RUH this is mandatory to allow the self synchronizing
- * scrambler to settle
- */
- for (size_t i = d_start_idx; i < d_bitstream.size (); i++) {
- decode_1b (d_bitstream[i]);
- d_decoded_bits++;
- if (d_decoded_bits == 8) {
- /* Perhaps we are in frame! */
- if (d_shift_reg != AX25_SYNC_FLAG) {
- d_start_idx = i + 1;
- enter_decoding_state ();
- cont = true;
- break;
- }
- d_decoded_bits = 0;
- }
- }
- if(cont) {
- continue;
- }
- d_start_idx = d_bitstream.size ();
- return;
- case DECODING:
- for (size_t i = d_start_idx; i < d_bitstream.size (); i++) {
- decode_1b (d_bitstream[i]);
- if (d_shift_reg == AX25_SYNC_FLAG) {
- LOG_DEBUG("Found frame end");
- if (enter_frame_end ()) {
- d_bitstream.erase (d_bitstream.begin (),
- d_bitstream.begin () + i + 1);
- }
- cont = true;
- break;
- }
- else if ((d_shift_reg & 0xfc) == 0x7c) {
- /*This was a stuffed bit */
- d_dec_b <<= 1;
- }
- else if ((d_shift_reg & 0xfe) == 0xfe) {
- LOG_DEBUG("Invalid shift register value %u", d_received_bytes);
- reset_state ();
- cont = true;
- break;
- }
- else {
- d_decoded_bits++;
- if (d_decoded_bits == 8) {
- d_frame_buffer[d_received_bytes++] = d_dec_b;
- d_decoded_bits = 0;
-
- /*Check if the frame limit was reached */
- if (d_received_bytes >= d_max_frame_len) {
- LOG_DEBUG("Wrong size");
- reset_state ();
- cont = true;
- break;
- }
- }
- }
- }
- if(cont) {
- continue;
- }
- d_start_idx = d_bitstream.size ();
- return;
- default:
- LOG_ERROR("Invalid decoding state");
- reset_state ();
- return;
- }
- }
-}
-
-/*
- * Our virtual destructor.
- */
-ax25_decoder_bm_impl::~ax25_decoder_bm_impl ()
-{
- delete[] d_frame_buffer;
- LOG_DEBUG("Left over: %lu", d_bitstream.size());
-}
-
-void
-ax25_decoder_bm_impl::reset_state ()
-{
- d_state = NO_SYNC;
- d_dec_b = 0x0;
- d_shift_reg = 0x0;
- d_decoded_bits = 0;
- d_received_bytes = 0;
-}
-
-void
-ax25_decoder_bm_impl::enter_sync_state ()
-{
- d_state = IN_SYNC;
- d_dec_b = 0x0;
- d_shift_reg = 0x0;
- d_decoded_bits = 0;
- d_received_bytes = 0;
-}
-
-void
-ax25_decoder_bm_impl::enter_decoding_state ()
-{
- uint8_t tmp;
- d_state = DECODING;
- d_decoded_bits = 0;
- d_received_bytes = 0;
-
- /*
- * Due to the possibility of bit stuffing on the first byte some special
- * handling is necessary
- */
- if ((d_shift_reg & 0xfc) == 0x7c) {
- /*This was a stuffed bit */
- d_dec_b <<= 1;
- d_decoded_bits = 7;
- }
- else {
- d_frame_buffer[0] = d_dec_b;
- d_decoded_bits = 0;
- d_received_bytes = 1;
- }
-}
-
-bool
-ax25_decoder_bm_impl::enter_frame_end ()
-{
- uint16_t fcs;
- uint16_t recv_fcs = 0x0;
-
- /* First check if the size of the frame is valid */
- if (d_received_bytes < AX25_MIN_ADDR_LEN + sizeof(uint16_t)) {
- reset_state ();
- return false;
- }
-
- /*
- * Check if the frame is correct using the FCS field
- * Using this field also try to correct up to 2 error bits
- */
- if (frame_check ()) {
- message_port_pub (
- pmt::mp ("pdu"),
- pmt::make_blob (d_frame_buffer, d_received_bytes - sizeof(uint16_t)));
- reset_state ();
- return true;
- }
- else {
- message_port_pub (
- pmt::mp ("failed_pdu"),
- pmt::make_blob (d_frame_buffer, d_received_bytes - sizeof(uint16_t)));
- LOG_DEBUG("Wrong crc");
- reset_state ();
- return false;
- }
-}
-
-
-inline void
-ax25_decoder_bm_impl::decode_1b (uint8_t in)
-{
-
- /* In AX.25 the LS bit is sent first */
- d_shift_reg = (d_shift_reg >> 1) | (in << 7);
- d_dec_b = (d_dec_b >> 1) | (in << 7);
-}
-
-bool
-ax25_decoder_bm_impl::frame_check ()
-{
- uint16_t fcs;
- uint16_t recv_fcs = 0x0;
- uint8_t orig_byte;
-
- /* Check if the frame is correct using the FCS field */
- fcs = ax25_fcs (d_frame_buffer, d_received_bytes - sizeof(uint16_t));
- recv_fcs = (((uint16_t) d_frame_buffer[d_received_bytes - 1]) << 8)
- | d_frame_buffer[d_received_bytes - 2];
- if (fcs == recv_fcs) {
- return true;
- }
- return false;
-}
-
-int
-ax25_decoder_bm_impl::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
-{
- int ret;
- const uint8_t *in = (const uint8_t*) input_items[0];
-
- if (noutput_items < 1) {
- return noutput_items;
- }
-
-
- if (d_descramble) {
- for (int i = 0; i < noutput_items; i++) {
- /* Perform NRZI decoding */
- uint8_t b = (~((in[i] - d_prev_bit_nrzi) % 2)) & 0x1;
- d_prev_bit_nrzi = in[i];
- b = d_lfsr.next_bit_descramble (b);
- d_bitstream.push_back (b);
- }
- }
- else {
- for (int i = 0; i < noutput_items; i++) {
- /* Perform NRZI decoding */
- uint8_t b = (~((in[i] - d_prev_bit_nrzi) % 2)) & 0x1;
- d_prev_bit_nrzi = in[i];
- d_bitstream.push_back (b);
- }
- }
- decode();
- return noutput_items;
-}
-
-} /* namespace satnogs */
-} /* namespace gr */
-
diff --git a/lib/ax25_decoder_bm_impl.h b/lib/ax25_decoder_bm_impl.h
deleted file mode 100644
index a6f1eab..0000000
--- a/lib/ax25_decoder_bm_impl.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2016,2018
- * Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef INCLUDED_SATNOGS_AX25_DECODER_BM_IMPL_H
-#define INCLUDED_SATNOGS_AX25_DECODER_BM_IMPL_H
-
-#include
-#include
-#include
-
-namespace gr
-{
- namespace satnogs
- {
-
- class ax25_decoder_bm_impl : public ax25_decoder_bm
- {
- private:
- typedef enum
- {
- NO_SYNC, IN_SYNC, DECODING
- } decoding_state_t;
-
- /**
- * If this flag is set, the decoder operates in promiscuous mode and
- * forwards all successfully decoded frames
- */
- const bool d_promisc;
- const bool d_descramble;
- const size_t d_max_frame_len;
- decoding_state_t d_state;
- uint8_t d_shift_reg;
- uint8_t d_dec_b;
- uint8_t d_prev_bit_nrzi;
- size_t d_received_bytes;
- size_t d_decoded_bits;
- digital::lfsr d_lfsr;
- uint8_t *d_frame_buffer;
- std::deque d_bitstream;
- size_t d_start_idx;
-
- void
- reset_state ();
- void
- enter_sync_state ();
- void
- enter_decoding_state ();
- bool
- enter_frame_end ();
-
- void
- decode ();
-
- inline void
- decode_1b (uint8_t in);
- bool
- frame_check();
-
-
- public:
- ax25_decoder_bm_impl (const std::string& addr, uint8_t ssid, bool promisc,
- bool descramble, size_t max_frame_len);
- ~ax25_decoder_bm_impl ();
-
- // Where all the action really happens
- int
- work (int noutput_items, gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- };
-
- } // namespace satnogs
-} // namespace gr
-
-#endif /* INCLUDED_SATNOGS_AX25_DECODER_BM_IMPL_H */
-
diff --git a/lib/ccsds_rs_decoder_mm_impl.cc b/lib/ccsds_rs_decoder_mm_impl.cc
deleted file mode 100644
index 59e4d27..0000000
--- a/lib/ccsds_rs_decoder_mm_impl.cc
+++ /dev/null
@@ -1,107 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include
-#include "ccsds_rs_decoder_mm_impl.h"
-
-#include
-extern "C" {
- #include
-}
-
-namespace gr {
- namespace satnogs {
-
- ccsds_rs_decoder_mm::sptr
- ccsds_rs_decoder_mm::make()
- {
- return gnuradio::get_initial_sptr
- (new ccsds_rs_decoder_mm_impl());
- }
-
- /*
- * The private constructor
- */
- ccsds_rs_decoder_mm_impl::ccsds_rs_decoder_mm_impl()
- : gr::block("ccsds_rs_decoder_mm",
- gr::io_signature::make(0, 0, 0),
- gr::io_signature::make(0, 0, 0))
- {
- message_port_register_in(pmt::mp("in"));
- message_port_register_out(pmt::mp("pdu"));
-
- set_msg_handler (
- pmt::mp ("in"),
- boost::bind (&ccsds_rs_decoder_mm_impl::message_handler, this, _1));
- }
-
- void
- ccsds_rs_decoder_mm_impl::message_handler (pmt::pmt_t m)
- {
- int ret;
- uint8_t data[255];
- int erasures[255];
- const uint8_t *data_ref;
- size_t data_len;
- const int *erasures_ref;
- size_t erasures_len;
-
- pmt::pmt_t pmt_data = pmt::dict_ref(m, pmt::intern("data"), pmt::PMT_NIL);
- pmt::pmt_t pmt_erasures = pmt::dict_ref(m, pmt::intern("erasures"),
- pmt::PMT_NIL);
- /* Check if the message contains erasure info. Otherwise handle it as
- * a blob
- */
- if (pmt::equal (pmt::PMT_NIL, pmt_data)) {
- pmt_data = m;
- }
-
- data_ref = pmt::u8vector_elements(pmt_data, data_len);
- memcpy(data, data_ref, data_len);
-
- if( pmt::equal (pmt::PMT_NIL, pmt_erasures)) {
- ret = decode_rs_8(data, NULL, 0, (int)(255 - data_len));
- }
- else {
- erasures_len = pmt::blob_length(pmt_erasures);
- erasures_ref = pmt::s32vector_elements(pmt_erasures, erasures_len);
- memcpy(erasures, erasures_ref, erasures_len * sizeof(int));
- ret = decode_rs_8 (data, erasures, (int) erasures_len,
- (int) (255 - data_len));
- }
- if(ret > -1) {
- message_port_pub(pmt::mp("pdu"), pmt::make_blob(data, 223));
- }
- }
-
- /*
- * Our virtual destructor.
- */
- ccsds_rs_decoder_mm_impl::~ccsds_rs_decoder_mm_impl()
- {
- }
-
- } /* namespace satnogs */
-} /* namespace gr */
-
diff --git a/lib/ccsds_rs_decoder_mm_impl.h b/lib/ccsds_rs_decoder_mm_impl.h
deleted file mode 100644
index 0524218..0000000
--- a/lib/ccsds_rs_decoder_mm_impl.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef INCLUDED_SATNOGS_CCSDS_RS_DECODER_MM_IMPL_H
-#define INCLUDED_SATNOGS_CCSDS_RS_DECODER_MM_IMPL_H
-
-#include
-
-namespace gr
-{
- namespace satnogs
- {
-
- class ccsds_rs_decoder_mm_impl : public ccsds_rs_decoder_mm
- {
- private:
-
- void
- message_handler(pmt::pmt_t m);
-
- public:
- ccsds_rs_decoder_mm_impl ();
- ~ccsds_rs_decoder_mm_impl ();
- };
-
- } // namespace satnogs
-} // namespace gr
-
-#endif /* INCLUDED_SATNOGS_CCSDS_RS_DECODER_MM_IMPL_H */
-
diff --git a/lib/decoder_8b10b_impl.cc b/lib/decoder_8b10b_impl.cc
deleted file mode 100644
index 4b60492..0000000
--- a/lib/decoder_8b10b_impl.cc
+++ /dev/null
@@ -1,224 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include
-#include "decoder_8b10b_impl.h"
-#include
-
-#include
-
-namespace gr
-{
- namespace satnogs
- {
-
- decoder_8b10b::sptr
- decoder_8b10b::make (const std::string& control_symbol,
- size_t max_frame_len)
- {
- return gnuradio::get_initial_sptr (
- new decoder_8b10b_impl (control_symbol, max_frame_len));
- }
-
- /*
- * The private constructor
- */
- decoder_8b10b_impl::decoder_8b10b_impl (const std::string& control_symbol,
- size_t max_frame_len) :
- gr::sync_block ("decoder_8b10b",
- gr::io_signature::make (1, 1, sizeof(char)),
- gr::io_signature::make (0, 0, 0)),
- d_max_frame_len (max_frame_len),
- d_erasure_cnt (0),
- d_control_symbol_pos (0),
- d_control_symbol_neg (0),
- d_data_reg (0),
- d_wrong_bits (0),
- d_wrong_bits_neg (0),
- d_nwrong (0),
- d_nwrong_neg (0),
- d_word_cnt (0),
- d_state (IN_SYNC)
- {
- message_port_register_out (pmt::mp ("pdu"));
- set_output_multiple(10);
-
- if (!set_access_code (control_symbol)) {
- throw std::out_of_range ("control_symbol is not 10 bits");
- }
-
- d_8b_words = new uint8_t [d_max_frame_len / 10];
- d_erasures_indexes = new int [d_max_frame_len / 10];
- }
-
- /*
- * Our virtual destructor.
- */
- decoder_8b10b_impl::~decoder_8b10b_impl ()
- {
- delete [] d_8b_words;
- delete [] d_erasures_indexes;
- }
-
- bool
- decoder_8b10b_impl::set_access_code (const std::string &control_symbol)
- {
- unsigned len = control_symbol.length (); // # of bytes in string
-
- /* if the control sequence is not 10-bit then throw exception */
- if (len != 10) {
- return false;
- }
-
- for (size_t i = 0; i < len; i++) {
- d_control_symbol_pos = (d_control_symbol_pos << 1)
- | (control_symbol[i] & 0x1);
- }
- d_control_symbol_neg = (~d_control_symbol_pos) & 0x3FF;
-
- return true;
- }
-
- void
- decoder_8b10b_impl::process_10b (uint16_t word, int write_pos)
- {
- uint16_t diff_bits = 0;
- uint8_t min_pos = 0;
- uint8_t min_dist = 11;
- uint8_t curr_dist = 0;
- size_t i = 0;
-
- /* Check for the disparity -1 */
- while ((i < 256) && (min_dist > 0)) {
-
- diff_bits = (word ^ (d_lookup_8b10b[0][i])) & 0x3FF;
- curr_dist = gr::blocks::count_bits16 (diff_bits);
-
- if (curr_dist < min_dist) {
- min_dist = curr_dist;
- min_pos = i;
- }
- i++;
- }
-
- /* Check for the disparity +1 */
- i = 0;
- while ((i < 256) && (min_dist > 0)) {
-
- diff_bits = (word ^ (d_lookup_8b10b[1][i])) & 0x3FF;
- curr_dist = gr::blocks::count_bits16 (diff_bits);
-
- if (curr_dist < min_dist) {
- min_dist = curr_dist;
- min_pos = i;
- }
- i++;
- }
-
-
- /* report that there is erasure to this 10 bits */
- d_8b_words[write_pos] = min_pos;
-
- /* If we did not found a perfect match, mark this index as erasure */
- if(min_dist != 0) {
- d_erasures_indexes[d_erasure_cnt++] = write_pos;
- }
- }
-
- static inline uint16_t
- pack_10b_word(const uint8_t *in)
- {
- return (((uint16_t)in[0] & 0x1) << 9) | (((uint16_t)in[1] & 0x1) << 8)
- | (((uint16_t)in[2] & 0x1) << 7) | (((uint16_t)in[3] & 0x1) << 6)
- | (((uint16_t)in[4] & 0x1) << 5) | (((uint16_t)in[5] & 0x1) << 4)
- | (((uint16_t)in[6] & 0x1) << 3) | (((uint16_t)in[7] & 0x1) << 2)
- | (((uint16_t)in[8] & 0x1) << 1) | (in[9] & 0x1);
- }
-
- int
- decoder_8b10b_impl::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- int i;
- uint16_t word;
- const uint8_t *in = (const uint8_t *) input_items[0];
-
- /* Search for the Comma symbol */
- if(d_state == IN_SYNC) {
- for (i = 0; i < noutput_items; i++) {
- d_data_reg = (d_data_reg << 1) | (in[i] & 0x1);
- d_wrong_bits = (d_data_reg ^ d_control_symbol_pos) & 0x3FF;
- d_wrong_bits_neg = (d_data_reg ^ d_control_symbol_neg) & 0x3FF;
- d_nwrong = gr::blocks::count_bits16 (d_wrong_bits);
- d_nwrong_neg = gr::blocks::count_bits16 (d_wrong_bits_neg);
-
- /* we found the controls symbol */
- if ((d_nwrong == 0) || (d_nwrong_neg == 0)) {
- d_erasure_cnt = 0;
- d_word_cnt = 0;
- d_state = DECODING;
- return i + 1;
- }
- }
- return noutput_items;
- }
-
- /*
- * From now one, we have a SYNC so we process the data
- * in chunks of 10 bits
- */
- for(i = 0; i < noutput_items / 10; i++) {
- word = pack_10b_word(&in[i * 10]);
-
- /* Revert 10b to 8b and accumulate! */
- process_10b (word, d_word_cnt);
- d_word_cnt++;
-
-
- if(d_word_cnt == d_max_frame_len / 10) {
- d_state = IN_SYNC;
- pmt::pmt_t data = pmt::init_u8vector (d_max_frame_len / 10,
- d_8b_words);
-
- pmt::pmt_t out = pmt::make_dict();
- if (d_erasure_cnt > 0) {
- pmt::pmt_t erasures = pmt::init_s32vector (d_erasure_cnt,
- d_erasures_indexes);
- out = pmt::dict_add (out, pmt::intern ("erasures"), erasures);
- }
- out = pmt::dict_add(out, pmt::intern("data"), data);
-
-
- message_port_pub (pmt::mp ("pdu"), out);
- return (i+1) * 10;
- }
- }
- return noutput_items;
- }
-
- }
-/* namespace satnogs */
-} /* namespace gr */
-
diff --git a/lib/decoder_8b10b_impl.h b/lib/decoder_8b10b_impl.h
deleted file mode 100644
index dbfe322..0000000
--- a/lib/decoder_8b10b_impl.h
+++ /dev/null
@@ -1,595 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef INCLUDED_SATNOGS_DECODER_8B10B_IMPL_H
-#define INCLUDED_SATNOGS_DECODER_8B10B_IMPL_H
-
-#include
-
-namespace gr
-{
- namespace satnogs
- {
-
- class decoder_8b10b_impl : public decoder_8b10b
- {
- private:
- const size_t d_max_frame_len;
- size_t d_erasure_cnt;
- uint16_t d_control_symbol_pos;
- uint16_t d_control_symbol_neg;
- uint16_t d_data_reg;
- uint16_t d_wrong_bits;
- uint16_t d_wrong_bits_neg;
- uint8_t d_nwrong;
- uint8_t d_nwrong_neg;
- size_t d_word_cnt;
-
- uint8_t *d_8b_words;
- int *d_erasures_indexes;
-
- int d_lookup_8b10b[2][256] =
- {
- // RD = -1 cases
- {
- /* 00 */0x274,
- /* 01 */0x1d4,
- /* 02 */0x2d4,
- /* 03 */0x71b,
- /* 04 */0x354,
- /* 05 */0x69b,
- /* 06 */0x59b,
- /* 07 */0x78b,
- /* 08 */0x394,
- /* 09 */0x65b,
- /* 0a */0x55b,
- /* 0b */0x74b,
- /* 0c */0x4db,
- /* 0d */0x6cb,
- /* 0e */0x5cb,
- /* 0f */0x174,
- /* 10 */0x1b4,
- /* 11 */0x63b,
- /* 12 */0x53b,
- /* 13 */0x72b,
- /* 14 */0x4bb,
- /* 15 */0x6ab,
- /* 16 */0x5ab,
- /* 17 */0x3a4,
- /* 18 */0x334,
- /* 19 */0x66b,
- /* 1a */0x56b,
- /* 1b */0x364,
- /* 1c */0x4eb,
- /* 1d */0x2e4,
- /* 1e */0x1e4,
- /* 1f */0x2b4,
- /* 20 */0x679,
- /* 21 */0x5d9,
- /* 22 */0x6d9,
- /* 23 */0x319,
- /* 24 */0x759,
- /* 25 */0x299,
- /* 26 */0x199,
- /* 27 */0x389,
- /* 28 */0x799,
- /* 29 */0x259,
- /* 2a */0x159,
- /* 2b */0x349,
- /* 2c */0x0d9,
- /* 2d */0x2c9,
- /* 2e */0x1c9,
- /* 2f */0x579,
- /* 30 */0x5b9,
- /* 31 */0x239,
- /* 32 */0x139,
- /* 33 */0x329,
- /* 34 */0x0b9,
- /* 35 */0x2a9,
- /* 36 */0x1a9,
- /* 37 */0x7a9,
- /* 38 */0x739,
- /* 39 */0x269,
- /* 3a */0x169,
- /* 3b */0x769,
- /* 3c */0x0e9,
- /* 3d */0x6e9,
- /* 3e */0x5e9,
- /* 3f */0x6b9,
- /* 40 */0x675,
- /* 41 */0x5d5,
- /* 42 */0x6d5,
- /* 43 */0x315,
- /* 44 */0x755,
- /* 45 */0x295,
- /* 46 */0x195,
- /* 47 */0x385,
- /* 48 */0x795,
- /* 49 */0x255,
- /* 4a */0x155,
- /* 4b */0x345,
- /* 4c */0x0d5,
- /* 4d */0x2c5,
- /* 4e */0x1c5,
- /* 4f */0x575,
- /* 50 */0x5b5,
- /* 51 */0x235,
- /* 52 */0x135,
- /* 53 */0x325,
- /* 54 */0x0b5,
- /* 55 */0x2a5,
- /* 56 */0x1a5,
- /* 57 */0x7a5,
- /* 58 */0x735,
- /* 59 */0x265,
- /* 5a */0x165,
- /* 5b */0x765,
- /* 5c */0x0e5,
- /* 5d */0x6e5,
- /* 5e */0x5e5,
- /* 5f */0x6b5,
- /* 60 */0x673,
- /* 61 */0x5d3,
- /* 62 */0x6d3,
- /* 63 */0x31c,
- /* 64 */0x753,
- /* 65 */0x29c,
- /* 66 */0x19c,
- /* 67 */0x38c,
- /* 68 */0x793,
- /* 69 */0x25c,
- /* 6a */0x15c,
- /* 6b */0x34c,
- /* 6c */0x0dc,
- /* 6d */0x2cc,
- /* 6e */0x1cc,
- /* 6f */0x573,
- /* 70 */0x5b3,
- /* 71 */0x23c,
- /* 72 */0x13c,
- /* 73 */0x32c,
- /* 74 */0x0bc,
- /* 75 */0x2ac,
- /* 76 */0x1ac,
- /* 77 */0x7a3,
- /* 78 */0x733,
- /* 79 */0x26c,
- /* 7a */0x16c,
- /* 7b */0x763,
- /* 7c */0x0ec,
- /* 7d */0x6e3,
- /* 7e */0x5e3,
- /* 7f */0x6b3,
- /* 80 */0x272,
- /* 81 */0x1d2,
- /* 82 */0x2d2,
- /* 83 */0x71d,
- /* 84 */0x352,
- /* 85 */0x69d,
- /* 86 */0x59d,
- /* 87 */0x78d,
- /* 88 */0x392,
- /* 89 */0x65d,
- /* 8a */0x55d,
- /* 8b */0x74d,
- /* 8c */0x4dd,
- /* 8d */0x6cd,
- /* 8e */0x5cd,
- /* 8f */0x172,
- /* 90 */0x1b2,
- /* 91 */0x63d,
- /* 92 */0x53d,
- /* 93 */0x72d,
- /* 94 */0x4bd,
- /* 95 */0x6ad,
- /* 96 */0x5ad,
- /* 97 */0x3a2,
- /* 98 */0x332,
- /* 99 */0x66d,
- /* 9a */0x56d,
- /* 9b */0x362,
- /* 9c */0x4ed,
- /* 9d */0x2e2,
- /* 9e */0x1e2,
- /* 9f */0x2b2,
- /* a0 */0x67a,
- /* a1 */0x5da,
- /* a2 */0x6da,
- /* a3 */0x31a,
- /* a4 */0x75a,
- /* a5 */0x29a,
- /* a6 */0x19a,
- /* a7 */0x38a,
- /* a8 */0x79a,
- /* a9 */0x25a,
- /* aa */0x15a,
- /* ab */0x34a,
- /* ac */0x0da,
- /* ad */0x2ca,
- /* ae */0x1ca,
- /* af */0x57a,
- /* b0 */0x5ba,
- /* b1 */0x23a,
- /* b2 */0x13a,
- /* b3 */0x32a,
- /* b4 */0x0ba,
- /* b5 */0x2aa,
- /* b6 */0x1aa,
- /* b7 */0x7aa,
- /* b8 */0x73a,
- /* b9 */0x26a,
- /* ba */0x16a,
- /* bb */0x76a,
- /* bc */0x0ea,
- /* bd */0x6ea,
- /* be */0x5ea,
- /* bf */0x6ba,
- /* c0 */0x676,
- /* c1 */0x5d6,
- /* c2 */0x6d6,
- /* c3 */0x316,
- /* c4 */0x756,
- /* c5 */0x296,
- /* c6 */0x196,
- /* c7 */0x386,
- /* c8 */0x796,
- /* c9 */0x256,
- /* ca */0x156,
- /* cb */0x346,
- /* cc */0x0d6,
- /* cd */0x2c6,
- /* ce */0x1c6,
- /* cf */0x576,
- /* d0 */0x5b6,
- /* d1 */0x236,
- /* d2 */0x136,
- /* d3 */0x326,
- /* d4 */0x0b6,
- /* d5 */0x2a6,
- /* d6 */0x1a6,
- /* d7 */0x7a6,
- /* d8 */0x736,
- /* d9 */0x266,
- /* da */0x166,
- /* db */0x766,
- /* dc */0x0e6,
- /* dd */0x6e6,
- /* de */0x5e6,
- /* df */0x6b6,
- /* e0 */0x271,
- /* e1 */0x1d1,
- /* e2 */0x2d1,
- /* e3 */0x71e,
- /* e4 */0x351,
- /* e5 */0x69e,
- /* e6 */0x59e,
- /* e7 */0x78e,
- /* e8 */0x391,
- /* e9 */0x65e,
- /* ea */0x55e,
- /* eb */0x74e,
- /* ec */0x4de,
- /* ed */0x6ce,
- /* ee */0x5ce,
- /* ef */0x171,
- /* f0 */0x1b1,
- /* f1 */0x637,
- /* f2 */0x537,
- /* f3 */0x72e,
- /* f4 */0x4b7,
- /* f5 */0x6ae,
- /* f6 */0x5ae,
- /* f7 */0x3a1,
- /* f8 */0x331,
- /* f9 */0x66e,
- /* fa */0x56e,
- /* fb */0x361,
- /* fc */0x4ee,
- /* fd */0x2e1,
- /* fe */0x1e1,
- /* ff */0x2b1, }, // RD = +1 cases
- {
- /* 00 */0x58b,
- /* 01 */0x62b,
- /* 02 */0x52b,
- /* 03 */0x314,
- /* 04 */0x4ab,
- /* 05 */0x294,
- /* 06 */0x194,
- /* 07 */0x074,
- /* 08 */0x46b,
- /* 09 */0x254,
- /* 0a */0x154,
- /* 0b */0x344,
- /* 0c */0x0d4,
- /* 0d */0x2c4,
- /* 0e */0x1c4,
- /* 0f */0x68b,
- /* 10 */0x64b,
- /* 11 */0x234,
- /* 12 */0x134,
- /* 13 */0x324,
- /* 14 */0x0b4,
- /* 15 */0x2a4,
- /* 16 */0x1a4,
- /* 17 */0x45b,
- /* 18 */0x4cb,
- /* 19 */0x264,
- /* 1a */0x164,
- /* 1b */0x49b,
- /* 1c */0x0e4,
- /* 1d */0x51b,
- /* 1e */0x61b,
- /* 1f */0x54b,
- /* 20 */0x189,
- /* 21 */0x229,
- /* 22 */0x129,
- /* 23 */0x719,
- /* 24 */0x0a9,
- /* 25 */0x699,
- /* 26 */0x599,
- /* 27 */0x479,
- /* 28 */0x069,
- /* 29 */0x659,
- /* 2a */0x559,
- /* 2b */0x749,
- /* 2c */0x4d9,
- /* 2d */0x6c9,
- /* 2e */0x5c9,
- /* 2f */0x289,
- /* 30 */0x249,
- /* 31 */0x639,
- /* 32 */0x539,
- /* 33 */0x729,
- /* 34 */0x4b9,
- /* 35 */0x6a9,
- /* 36 */0x5a9,
- /* 37 */0x059,
- /* 38 */0x0c9,
- /* 39 */0x669,
- /* 3a */0x569,
- /* 3b */0x099,
- /* 3c */0x4e9,
- /* 3d */0x119,
- /* 3e */0x219,
- /* 3f */0x149,
- /* 40 */0x185,
- /* 41 */0x225,
- /* 42 */0x125,
- /* 43 */0x715,
- /* 44 */0x0a5,
- /* 45 */0x695,
- /* 46 */0x595,
- /* 47 */0x475,
- /* 48 */0x065,
- /* 49 */0x655,
- /* 4a */0x555,
- /* 4b */0x745,
- /* 4c */0x4d5,
- /* 4d */0x6c5,
- /* 4e */0x5c5,
- /* 4f */0x285,
- /* 50 */0x245,
- /* 51 */0x635,
- /* 52 */0x535,
- /* 53 */0x725,
- /* 54 */0x4b5,
- /* 55 */0x6a5,
- /* 56 */0x5a5,
- /* 57 */0x055,
- /* 58 */0x0c5,
- /* 59 */0x665,
- /* 5a */0x565,
- /* 5b */0x095,
- /* 5c */0x4e5,
- /* 5d */0x115,
- /* 5e */0x215,
- /* 5f */0x145,
- /* 60 */0x18c,
- /* 61 */0x22c,
- /* 62 */0x12c,
- /* 63 */0x713,
- /* 64 */0x0ac,
- /* 65 */0x693,
- /* 66 */0x593,
- /* 67 */0x473,
- /* 68 */0x06c,
- /* 69 */0x653,
- /* 6a */0x553,
- /* 6b */0x743,
- /* 6c */0x4d3,
- /* 6d */0x6c3,
- /* 6e */0x5c3,
- /* 6f */0x28c,
- /* 70 */0x24c,
- /* 71 */0x633,
- /* 72 */0x533,
- /* 73 */0x723,
- /* 74 */0x4b3,
- /* 75 */0x6a3,
- /* 76 */0x5a3,
- /* 77 */0x05c,
- /* 78 */0x0cc,
- /* 79 */0x663,
- /* 7a */0x563,
- /* 7b */0x09c,
- /* 7c */0x4e3,
- /* 7d */0x11c,
- /* 7e */0x21c,
- /* 7f */0x14c,
- /* 80 */0x58d,
- /* 81 */0x62d,
- /* 82 */0x52d,
- /* 83 */0x312,
- /* 84 */0x4ad,
- /* 85 */0x292,
- /* 86 */0x192,
- /* 87 */0x072,
- /* 88 */0x46d,
- /* 89 */0x252,
- /* 8a */0x152,
- /* 8b */0x342,
- /* 8c */0x0d2,
- /* 8d */0x2c2,
- /* 8e */0x1c2,
- /* 8f */0x68d,
- /* 90 */0x64d,
- /* 91 */0x232,
- /* 92 */0x132,
- /* 93 */0x322,
- /* 94 */0x0b2,
- /* 95 */0x2a2,
- /* 96 */0x1a2,
- /* 97 */0x45d,
- /* 98 */0x4cd,
- /* 99 */0x262,
- /* 9a */0x162,
- /* 9b */0x49d,
- /* 9c */0x0e2,
- /* 9d */0x51d,
- /* 9e */0x61d,
- /* 9f */0x54d,
- /* a0 */0x18a,
- /* a1 */0x22a,
- /* a2 */0x12a,
- /* a3 */0x71a,
- /* a4 */0x0aa,
- /* a5 */0x69a,
- /* a6 */0x59a,
- /* a7 */0x47a,
- /* a8 */0x06a,
- /* a9 */0x65a,
- /* aa */0x55a,
- /* ab */0x74a,
- /* ac */0x4da,
- /* ad */0x6ca,
- /* ae */0x5ca,
- /* af */0x28a,
- /* b0 */0x24a,
- /* b1 */0x63a,
- /* b2 */0x53a,
- /* b3 */0x72a,
- /* b4 */0x4ba,
- /* b5 */0x6aa,
- /* b6 */0x5aa,
- /* b7 */0x05a,
- /* b8 */0x0ca,
- /* b9 */0x66a,
- /* ba */0x56a,
- /* bb */0x09a,
- /* bc */0x4ea,
- /* bd */0x11a,
- /* be */0x21a,
- /* bf */0x14a,
- /* c0 */0x186,
- /* c1 */0x226,
- /* c2 */0x126,
- /* c3 */0x716,
- /* c4 */0x0a6,
- /* c5 */0x696,
- /* c6 */0x596,
- /* c7 */0x476,
- /* c8 */0x066,
- /* c9 */0x656,
- /* ca */0x556,
- /* cb */0x746,
- /* cc */0x4d6,
- /* cd */0x6c6,
- /* ce */0x5c6,
- /* cf */0x286,
- /* d0 */0x246,
- /* d1 */0x636,
- /* d2 */0x536,
- /* d3 */0x726,
- /* d4 */0x4b6,
- /* d5 */0x6a6,
- /* d6 */0x5a6,
- /* d7 */0x056,
- /* d8 */0x0c6,
- /* d9 */0x666,
- /* da */0x566,
- /* db */0x096,
- /* dc */0x4e6,
- /* dd */0x116,
- /* de */0x216,
- /* df */0x146,
- /* e0 */0x58e,
- /* e1 */0x62e,
- /* e2 */0x52e,
- /* e3 */0x311,
- /* e4 */0x4ae,
- /* e5 */0x291,
- /* e6 */0x191,
- /* e7 */0x071,
- /* e8 */0x46e,
- /* e9 */0x251,
- /* ea */0x151,
- /* eb */0x348,
- /* ec */0x0d1,
- /* ed */0x2c8,
- /* ee */0x1c8,
- /* ef */0x68e,
- /* f0 */0x64e,
- /* f1 */0x231,
- /* f2 */0x131,
- /* f3 */0x321,
- /* f4 */0x0b1,
- /* f5 */0x2a1,
- /* f6 */0x1a1,
- /* f7 */0x45e,
- /* f8 */0x4ce,
- /* f9 */0x261,
- /* fa */0x161,
- /* fb */0x49e,
- /* fc */0x0e1,
- /* fd */0x51e,
- /* fe */0x61e,
- /* ff */0x54e, } };
-
- typedef enum
- {
- IN_SYNC, DECODING
- } d_state_t;
-
- d_state_t d_state;
-
- public:
- decoder_8b10b_impl (const std::string& control_symbol,
- size_t max_frame_len);
- ~decoder_8b10b_impl ();
-
- bool
- set_access_code (const std::string &access_code);
-
- void
- process_10b (uint16_t word, int write_pos);
-
- // Where all the action really happens
- int
- work (int noutput_items, gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- };
-
- }
-// namespace satnogs
-}// namespace gr
-
-#endif /* INCLUDED_SATNOGS_DECODER_8B10B_IMPL_H */
-
diff --git a/lib/fox_telem_mm_impl.cc b/lib/fox_telem_mm_impl.cc
deleted file mode 100644
index 74fc279..0000000
--- a/lib/fox_telem_mm_impl.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include
-#include "fox_telem_mm_impl.h"
-
-#include
-
-namespace gr {
- namespace satnogs {
-
- /**
- * AMSAT FOX spacecraft IDs
- */
-const uint8_t fox_telem_mm_impl::fox_id[] =
- {
- 0x1 /* FOX-1A */,
- 0x2 /* FOX-1B */,
- 0x3 /* FOX-1C */,
- 0x4 /* FOX-1D */,
- 0x5 /* FOX-1E */
- };
-
- fox_telem_mm::sptr
- fox_telem_mm::make()
- {
- return gnuradio::get_initial_sptr
- (new fox_telem_mm_impl());
- }
-
- /*
- * The private constructor
- */
- fox_telem_mm_impl::fox_telem_mm_impl()
- : gr::block("fox_telem_mm",
- gr::io_signature::make(0, 0, 0),
- gr::io_signature::make(0, 0, 0)),
- /* 6 header, 58 payload */
- d_frame_size (6 + 58)
- {
- message_port_register_in (pmt::mp ("in"));
- message_port_register_out (pmt::mp ("raw"));
-
- set_msg_handler (
- pmt::mp ("in"),
- boost::bind (&fox_telem_mm_impl::process_frame, this, _1));
- }
-
- static inline bool
- is_spacecraft_valid(uint8_t id)
- {
- for (size_t i = 0; i < sizeof(fox_telem_mm_impl::fox_id); i++) {
- if (fox_telem_mm_impl::fox_id[i] == id) {
- return true;
- }
- }
- return false;
- }
-
- void
- fox_telem_mm_impl::process_frame (pmt::pmt_t msg)
- {
- uint8_t fox_id;
- const uint8_t *data = (const uint8_t *) pmt::blob_data(msg);
- size_t data_len = pmt::blob_length(msg);
-
- if(data_len != 223) {
- LOG_ERROR("Invalid message");
- }
-
- /* Check the spacecraft ID */
- fox_id = data[0] & 0x7;
- if(!is_spacecraft_valid(fox_id)) {
- return;
- }
-
- message_port_pub(pmt::mp("raw"), pmt::make_blob(data, d_frame_size));
- }
-
- /*
- * Our virtual destructor.
- */
- fox_telem_mm_impl::~fox_telem_mm_impl()
- {
- }
-
- } /* namespace satnogs */
-} /* namespace gr */
-
diff --git a/lib/fox_telem_mm_impl.h b/lib/fox_telem_mm_impl.h
deleted file mode 100644
index 1aafa71..0000000
--- a/lib/fox_telem_mm_impl.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef INCLUDED_SATNOGS_FOX_TELEM_MM_IMPL_H
-#define INCLUDED_SATNOGS_FOX_TELEM_MM_IMPL_H
-
-#include
-
-namespace gr
-{
- namespace satnogs
- {
-
- class fox_telem_mm_impl : public fox_telem_mm
- {
- private:
- const size_t d_frame_size;
-
- void
- process_frame (pmt::pmt_t msg);
-
- public:
- static const uint8_t fox_id[];
-
- fox_telem_mm_impl ();
- ~fox_telem_mm_impl ();
- };
-
- } // namespace satnogs
-} // namespace gr
-
-#endif /* INCLUDED_SATNOGS_FOX_TELEM_MM_IMPL_H */
-
diff --git a/lib/quad_demod_filter_ff_impl.cc b/lib/quad_demod_filter_ff_impl.cc
deleted file mode 100644
index 66d1cac..0000000
--- a/lib/quad_demod_filter_ff_impl.cc
+++ /dev/null
@@ -1,139 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include
-#include "quad_demod_filter_ff_impl.h"
-
-namespace gr {
- namespace satnogs {
-
- quad_demod_filter_ff::sptr
- quad_demod_filter_ff::make(float gain, int window)
- {
- return gnuradio::get_initial_sptr
- (new quad_demod_filter_ff_impl(gain, window));
- }
-
- /*
- * The private constructor
- */
- quad_demod_filter_ff_impl::quad_demod_filter_ff_impl (float gain,
- int window) :
- gr::sync_block ("quad_demod_filter_ff",
- gr::io_signature::make (1, 1, sizeof(float)),
- gr::io_signature::make (1, 1, sizeof(float))),
- d_gain (gain),
- d_norm (1.0f / window),
- d_win (window),
- d_sum (0.0f),
- d_sum_sq (0.0f),
- d_remaining (0)
- {
- if(window < 1) {
- throw std::invalid_argument ("Window must be a positive");
- }
- set_history (window);
- }
-
- /*
- * Our virtual destructor.
- */
- quad_demod_filter_ff_impl::~quad_demod_filter_ff_impl()
- {
- }
-
- /**
- * Fast approximation of the inverse of the square root.
- * Thank you OpenArena!
- * @param number the number to be computed
- * @return the inverse of the square root of the number
- */
- static inline float
- inv_sqrt (float number)
- {
- long i;
- float x2, y;
- const float threehalfs = 1.5f;
-
- x2 = number * 0.5f;
- y = number;
- i = *(long *) &y;
- i = 0x5f3759df - (i >> 1); /* what the fuck? */
- y = *(float *) &i;
- y = y * (threehalfs - (x2 * y * y));
- return y;
- }
-
- int
- quad_demod_filter_ff_impl::work (int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- const float *in = (const float *) input_items[0];
- float *out = (float *) output_items[0];
- float m;
- float m_sq;
- float snr;
- float in_old;
- float in_new;
-
- float diff;
- for (int i = 0; i < noutput_items; i++) {
- in_old = std::abs (in[i]);
- in_new = std::abs (in[i + d_win - 1]);
- d_sum -= in_old;
- d_sum += in_new;
- d_sum_sq -= (in_old * in_old);
- d_sum_sq += (in_new * in_new);
-
- m = (d_sum * d_norm);
- m_sq = (d_sum_sq * d_norm);
- snr = m * inv_sqrt (m_sq - m * m);
-
- /*
- * If the SNR is high enough start passing the data to the output.
- * In order not to loose any samples due to the settling period, start
- * from the buffered and let a window of samples to pass after the
- * trigger is off
- */
- if (snr > d_gain * 1.8) {
- d_remaining = 2 * d_win;
- }
-
- if (d_remaining) {
- out[i] = in[i];
- d_remaining--;
- }
- else {
- out[i] = 0.0f;
- }
- }
-
- // Tell runtime system how many output items we produced.
- return noutput_items;
- }
-
- } /* namespace satnogs */
-} /* namespace gr */
-
diff --git a/lib/quad_demod_filter_ff_impl.h b/lib/quad_demod_filter_ff_impl.h
deleted file mode 100644
index ac1377f..0000000
--- a/lib/quad_demod_filter_ff_impl.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* -*- c++ -*- */
-/*
- * gr-satnogs: SatNOGS GNU Radio Out-Of-Tree Module
- *
- * Copyright (C) 2018, Libre Space Foundation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-#ifndef INCLUDED_SATNOGS_QUAD_DEMOD_FILTER_FF_IMPL_H
-#define INCLUDED_SATNOGS_QUAD_DEMOD_FILTER_FF_IMPL_H
-
-#include
-
-namespace gr {
- namespace satnogs {
-
- class quad_demod_filter_ff_impl : public quad_demod_filter_ff
- {
- private:
- const float d_gain;
- const float d_norm;
- const int d_win;
- float d_sum;
- float d_sum_sq;
- int d_remaining;
-
- public:
- quad_demod_filter_ff_impl(float gain, int window);
- ~quad_demod_filter_ff_impl();
-
- int
- work (int noutput_items, gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items);
- };
-
- } // namespace satnogs
-} // namespace gr
-
-#endif /* INCLUDED_SATNOGS_QUAD_DEMOD_FILTER_FF_IMPL_H */
-
diff --git a/swig/satnogs_swig0.i b/swig/satnogs_swig0.i
index a3d220e..4ccbda6 100644
--- a/swig/satnogs_swig0.i
+++ b/swig/satnogs_swig0.i
@@ -32,7 +32,6 @@
#include "satnogs/udp_msg_sink.h"
#include "satnogs/coarse_doppler_correction_cc.h"
#include "satnogs/ax25_encoder_mb.h"
-#include "satnogs/ax25_decoder_bm.h"
#include "satnogs/qb50_deframer.h"
#include "satnogs/waterfall_sink.h"
#include "satnogs/ogg_encoder.h"
@@ -41,10 +40,6 @@
#include "satnogs/frame_file_sink.h"
#include "satnogs/iq_sink.h"
#include "satnogs/json_converter.h"
-#include "satnogs/quad_demod_filter_ff.h"
-#include "satnogs/decoder_8b10b.h"
-#include "satnogs/ccsds_rs_decoder_mm.h"
-#include "satnogs/fox_telem_mm.h"
#include "satnogs/lrpt_decoder.h"
#include "satnogs/lrpt_sync.h"
#include "satnogs/frame_acquisition.h"
@@ -99,9 +94,6 @@ GR_SWIG_BLOCK_MAGIC2(satnogs, coarse_doppler_correction_cc);
%include "satnogs/ax25_encoder_mb.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, ax25_encoder_mb);
-%include "satnogs/ax25_decoder_bm.h"
-GR_SWIG_BLOCK_MAGIC2(satnogs, ax25_decoder_bm);
-
%include "satnogs/qb50_deframer.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, qb50_deframer);
@@ -126,18 +118,6 @@ GR_SWIG_BLOCK_MAGIC2(satnogs, iq_sink);
%include "satnogs/json_converter.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, json_converter);
-%include "satnogs/quad_demod_filter_ff.h"
-GR_SWIG_BLOCK_MAGIC2(satnogs, quad_demod_filter_ff);
-
-%include "satnogs/decoder_8b10b.h"
-GR_SWIG_BLOCK_MAGIC2(satnogs, decoder_8b10b);
-
-%include "satnogs/ccsds_rs_decoder_mm.h"
-GR_SWIG_BLOCK_MAGIC2(satnogs, ccsds_rs_decoder_mm);
-
-%include "satnogs/fox_telem_mm.h"
-GR_SWIG_BLOCK_MAGIC2(satnogs, fox_telem_mm);
-
%include "satnogs/lrpt_sync.h"
GR_SWIG_BLOCK_MAGIC2(satnogs, lrpt_sync);