Skip to content

Commit

Permalink
hack: demodulate TCH_C1 bursts
Browse files Browse the repository at this point in the history
  • Loading branch information
schneider42 committed Dec 8, 2024
1 parent eed634c commit f445bff
Show file tree
Hide file tree
Showing 13 changed files with 1,298 additions and 10 deletions.
1 change: 1 addition & 0 deletions include/iridium/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ install(FILES
iuchar_to_complex.h
tagged_burst_to_pdu.h
burst_downmix.h
burst_downmix_next.h
pdu_null_sink.h
iridium_qpsk_demod.h
pdu_round_robin.h
Expand Down
63 changes: 63 additions & 0 deletions include/iridium/burst_downmix_next.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/* -*- c++ -*- */
/*
* Copyright 2020 Free Software Foundation, Inc.
*
* This 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, or (at your option)
* any later version.
*
* This software 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 software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/

#ifndef INCLUDED_IRIDIUM_BURST_DOWNMIX_H
#define INCLUDED_IRIDIUM_BURST_DOWNMIX_H

#include <gnuradio/block.h>
#include <iridium/api.h>

namespace gr {
namespace iridium {

/*!
* \brief <+description of block+>
* \ingroup iridium
*
*/
class IRIDIUM_API burst_downmix_next : virtual public gr::block
{
public:
typedef std::shared_ptr<burst_downmix_next> sptr;

/*!
* \brief Return a shared_ptr to a new instance of iridium::burst_downmix_next.
*
* To avoid accidental use of raw pointers, iridium::burst_downmix_next's
* constructor is in a private implementation
* class. iridium::burst_downmix_next::make is the public interface for
* creating new instances.
*/
static sptr make(int output_sample_rate,
int search_depth,
size_t hard_max_queue_len,
const std::vector<float>& input_taps,
const std::vector<float>& start_finder_taps,
bool handle_multiple_frames_per_burst);

virtual uint64_t get_n_dropped_bursts() = 0;
virtual size_t get_input_queue_size() = 0;
virtual void debug_id(uint64_t id) = 0;
};

} // namespace iridium
} // namespace gr

#endif /* INCLUDED_IRIDIUM_BURST_DOWNMIX_H */
1 change: 1 addition & 0 deletions lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ list(APPEND iridium_sources
iuchar_to_complex_impl.cc
tagged_burst_to_pdu_impl.cc
burst_downmix_impl.cc
burst_downmix_next_impl.cc
pdu_null_sink_impl.cc
iridium_qpsk_demod_impl.cc
pdu_round_robin_impl.cc
Expand Down
1 change: 1 addition & 0 deletions lib/burst_downmix_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,7 @@ int burst_downmix_impl::process_next_frame(float sample_rate,
pdu_meta = pmt::dict_add(pdu_meta, pmt::mp("id"), pmt::mp(sub_id));
pdu_meta = pmt::dict_add(pdu_meta, pmt::mp("noise"), pmt::mp(noise));
pdu_meta = pmt::dict_add(pdu_meta, pmt::mp("magnitude"), pmt::mp(magnitude));
pdu_meta = pmt::dict_add(pdu_meta, pmt::mp("next"), pmt::mp(false));

if (d_debug) {
printf("center_frequency=%f, uw_start=%u\n", center_frequency, uw_start);
Expand Down
Loading

0 comments on commit f445bff

Please sign in to comment.