Skip to content

Commit 78e153b

Browse files
committed
hack: demodulate TCH_C1 bursts
1 parent eed634c commit 78e153b

13 files changed

+1295
-8
lines changed

include/iridium/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ install(FILES
1515
iuchar_to_complex.h
1616
tagged_burst_to_pdu.h
1717
burst_downmix.h
18+
burst_downmix_next.h
1819
pdu_null_sink.h
1920
iridium_qpsk_demod.h
2021
pdu_round_robin.h
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/* -*- c++ -*- */
2+
/*
3+
* Copyright 2020 Free Software Foundation, Inc.
4+
*
5+
* This is free software; you can redistribute it and/or modify
6+
* it under the terms of the GNU General Public License as published by
7+
* the Free Software Foundation; either version 3, or (at your option)
8+
* any later version.
9+
*
10+
* This software is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU General Public License
16+
* along with this software; see the file COPYING. If not, write to
17+
* the Free Software Foundation, Inc., 51 Franklin Street,
18+
* Boston, MA 02110-1301, USA.
19+
*/
20+
21+
#ifndef INCLUDED_IRIDIUM_BURST_DOWNMIX_H
22+
#define INCLUDED_IRIDIUM_BURST_DOWNMIX_H
23+
24+
#include <gnuradio/block.h>
25+
#include <iridium/api.h>
26+
27+
namespace gr {
28+
namespace iridium {
29+
30+
/*!
31+
* \brief <+description of block+>
32+
* \ingroup iridium
33+
*
34+
*/
35+
class IRIDIUM_API burst_downmix_next : virtual public gr::block
36+
{
37+
public:
38+
typedef std::shared_ptr<burst_downmix_next> sptr;
39+
40+
/*!
41+
* \brief Return a shared_ptr to a new instance of iridium::burst_downmix_next.
42+
*
43+
* To avoid accidental use of raw pointers, iridium::burst_downmix_next's
44+
* constructor is in a private implementation
45+
* class. iridium::burst_downmix_next::make is the public interface for
46+
* creating new instances.
47+
*/
48+
static sptr make(int output_sample_rate,
49+
int search_depth,
50+
size_t hard_max_queue_len,
51+
const std::vector<float>& input_taps,
52+
const std::vector<float>& start_finder_taps,
53+
bool handle_multiple_frames_per_burst);
54+
55+
virtual uint64_t get_n_dropped_bursts() = 0;
56+
virtual size_t get_input_queue_size() = 0;
57+
virtual void debug_id(uint64_t id) = 0;
58+
};
59+
60+
} // namespace iridium
61+
} // namespace gr
62+
63+
#endif /* INCLUDED_IRIDIUM_BURST_DOWNMIX_H */

lib/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ list(APPEND iridium_sources
1616
iuchar_to_complex_impl.cc
1717
tagged_burst_to_pdu_impl.cc
1818
burst_downmix_impl.cc
19+
burst_downmix_next_impl.cc
1920
pdu_null_sink_impl.cc
2021
iridium_qpsk_demod_impl.cc
2122
pdu_round_robin_impl.cc

lib/burst_downmix_impl.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,7 @@ int burst_downmix_impl::process_next_frame(float sample_rate,
733733
pdu_meta = pmt::dict_add(pdu_meta, pmt::mp("id"), pmt::mp(sub_id));
734734
pdu_meta = pmt::dict_add(pdu_meta, pmt::mp("noise"), pmt::mp(noise));
735735
pdu_meta = pmt::dict_add(pdu_meta, pmt::mp("magnitude"), pmt::mp(magnitude));
736+
pdu_meta = pmt::dict_add(pdu_meta, pmt::mp("next"), pmt::mp(false));
736737

737738
if (d_debug) {
738739
printf("center_frequency=%f, uw_start=%u\n", center_frequency, uw_start);

0 commit comments

Comments
 (0)