blob: 8035dc50a69ae0240aa3d91b8c5d63ef3c659990 [file] [log] [blame]
ptrkrysik3be74a72014-12-13 10:11:00 +01001/* -*- c++ -*- */
Piotr Krysika6268a52017-08-23 16:02:19 +02002/*
3 * @file
Piotr Krysik23444832017-11-29 16:39:22 +01004 * @author (C) 2014-2017 by Piotr Krysik <ptrkrysik@gmail.com>
Piotr Krysika6268a52017-08-23 16:02:19 +02005 * @section LICENSE
6 *
7 * Gr-gsm 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, or (at your option)
10 * any later version.
11 *
12 * Gr-gsm 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 gr-gsm; see the file COPYING. If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street,
20 * Boston, MA 02110-1301, USA.
21 */
22
ptrkrysik3be74a72014-12-13 10:11:00 +010023
Piotr Krysikaf8ad5d2016-05-29 13:05:48 +020024#define GRGSM_API
ptrkrysik3be74a72014-12-13 10:11:00 +010025
Piotr Krysik6e41d062017-11-03 09:56:49 +010026%include <std_pair.i>
27%template(pairud) std::pair<unsigned long long,double>;
28
ptrkrysik3be74a72014-12-13 10:11:00 +010029%include "gnuradio.i" // the common stuff
30
31//load generated python docstrings
32%include "grgsm_swig_doc.i"
33
34%{
Piotr Krysikbb961c12017-08-24 15:35:42 +020035#include "grgsm/constants.h"
ptrkrysik3be74a72014-12-13 10:11:00 +010036#include "grgsm/receiver/receiver.h"
ptrkrysikf8c7e832015-04-04 12:28:20 +020037#include "grgsm/receiver/clock_offset_control.h"
rpp4f0f3b52015-06-10 10:23:30 +020038#include "grgsm/receiver/cx_channel_hopper.h"
ptrkrysik18b631e2014-12-15 09:09:18 +010039#include "grgsm/decoding/control_channels_decoder.h"
Roman Khassraf059bab92015-05-20 12:49:46 +020040#include "grgsm/decoding/tch_f_decoder.h"
Vasil Velichkov59685522018-05-06 02:13:36 +030041#include "grgsm/decoding/tch_h_decoder.h"
ptrkrysik18b631e2014-12-15 09:09:18 +010042#include "grgsm/decryption/decryption.h"
ptrkrysik3be74a72014-12-13 10:11:00 +010043#include "grgsm/demapping/universal_ctrl_chans_demapper.h"
Roman Khassraffb6bc502015-04-14 15:44:40 +020044#include "grgsm/demapping/tch_f_chans_demapper.h"
Vasil Velichkov63e568d2018-05-07 15:55:39 +030045#include "grgsm/demapping/tch_h_chans_demapper.h"
Vadim Yanitskiy04536ab2017-07-21 10:59:51 +070046#include "grgsm/flow_control/common.h"
Roman Khassrafdbc3a502015-08-03 23:20:20 +020047#include "grgsm/flow_control/burst_timeslot_splitter.h"
Roman Khassrafa1eb1882015-08-05 12:30:29 +020048#include "grgsm/flow_control/burst_sdcch_subslot_splitter.h"
Roman Khassrafd7e3eec2015-08-06 11:54:22 +020049#include "grgsm/flow_control/burst_timeslot_filter.h"
Roman Khassraf8b64d872015-08-06 17:30:04 +020050#include "grgsm/flow_control/burst_sdcch_subslot_filter.h"
Roman Khassraf8e3b0ec2015-08-04 11:16:04 +020051#include "grgsm/flow_control/burst_fnr_filter.h"
Piotr Krysikacc365f2017-11-07 19:31:42 +010052#include "grgsm/flow_control/burst_type_filter.h"
Roman Khassraf7cccb522015-08-04 12:26:54 +020053#include "grgsm/flow_control/dummy_burst_filter.h"
Piotr Krysika3405b22016-08-30 21:31:24 +020054#include "grgsm/flow_control/uplink_downlink_splitter.h"
ptrkrysik3be74a72014-12-13 10:11:00 +010055#include "grgsm/misc_utils/bursts_printer.h"
ptrkrysik3be74a72014-12-13 10:11:00 +010056#include "grgsm/misc_utils/controlled_rotator_cc.h"
57#include "grgsm/misc_utils/extract_system_info.h"
Roman Khassraf5bd14f22015-06-24 17:59:13 +020058#include "grgsm/misc_utils/extract_immediate_assignment.h"
ptrkrysik3be74a72014-12-13 10:11:00 +010059#include "grgsm/misc_utils/message_printer.h"
ptrkrysik89847582015-01-15 11:48:20 +010060#include "grgsm/misc_utils/tmsi_dumper.h"
Roman Khassraf1c3419e2015-08-03 10:58:57 +020061#include "grgsm/misc_utils/burst_file_sink.h"
62#include "grgsm/misc_utils/burst_file_source.h"
Roman Khassraf98581a82017-01-11 12:50:38 +010063#include "grgsm/misc_utils/collect_system_info.h"
Roman Khassrafe5ddab32016-12-04 16:19:40 +010064#include "grgsm/misc_utils/extract_cmc.h"
Piotr Krysikc097ce72018-03-05 13:16:32 +010065#include "grgsm/misc_utils/extract_assignment_cmd.h"
Roman Khassraf1ce44692015-08-03 11:16:10 +020066#include "grgsm/qa_utils/burst_sink.h"
67#include "grgsm/qa_utils/burst_source.h"
Roman Khassrafb8f49092015-08-03 10:08:18 +020068#include "grgsm/qa_utils/message_source.h"
69#include "grgsm/qa_utils/message_sink.h"
Roman Khassrafc3234542015-08-03 16:17:46 +020070#include "grgsm/misc_utils/message_file_sink.h"
71#include "grgsm/misc_utils/message_file_source.h"
Piotr Krysik89ff8992016-07-18 10:24:35 +020072#include "grgsm/misc_utils/msg_to_tag.h"
73#include "grgsm/misc_utils/controlled_fractional_resampler_cc.h"
Piotr Krysik24710522018-04-17 09:10:33 +020074#include "grgsm/misc_utils/burst_to_fn_time.h"
Piotr Krysik34ce7a02017-10-31 11:30:59 +010075#include "grgsm/misc_utils/fn_time.h"
Piotr Krysik517464c2017-11-05 12:23:15 +010076#include "grgsm/transmitter/txtime_setter.h"
Piotr Krysikccb5e682017-11-07 19:34:22 +010077#include "grgsm/transmitter/preprocess_tx_burst.h"
Piotr Krysik23444832017-11-29 16:39:22 +010078#include "grgsm/transmitter/gen_test_ab.h"
Piotr Krysik1a32fc42018-05-11 11:38:07 +020079#include "grgsm/trx/freq_hopping.h"
Piotr Krysikfd3d8832018-05-06 22:23:06 +020080#include "grgsm/trx/trx_burst_if.h"
ptrkrysik3be74a72014-12-13 10:11:00 +010081%}
82
Piotr Krysikbb961c12017-08-24 15:35:42 +020083%include "constants.i"
84
ptrkrysik3be74a72014-12-13 10:11:00 +010085%include "grgsm/receiver/receiver.h"
86GR_SWIG_BLOCK_MAGIC2(gsm, receiver);
ptrkrysikf8c7e832015-04-04 12:28:20 +020087%include "grgsm/receiver/clock_offset_control.h"
88GR_SWIG_BLOCK_MAGIC2(gsm, clock_offset_control);
rpp4f0f3b52015-06-10 10:23:30 +020089%include "grgsm/receiver/cx_channel_hopper.h"
90GR_SWIG_BLOCK_MAGIC2(gsm, cx_channel_hopper);
ptrkrysik3be74a72014-12-13 10:11:00 +010091
92%include "grgsm/decoding/control_channels_decoder.h"
93GR_SWIG_BLOCK_MAGIC2(gsm, control_channels_decoder);
Roman Khassraf059bab92015-05-20 12:49:46 +020094%include "grgsm/decoding/tch_f_decoder.h"
95GR_SWIG_BLOCK_MAGIC2(gsm, tch_f_decoder);
Vasil Velichkov59685522018-05-06 02:13:36 +030096%include "grgsm/decoding/tch_h_decoder.h"
97GR_SWIG_BLOCK_MAGIC2(gsm, tch_h_decoder);
ptrkrysik3be74a72014-12-13 10:11:00 +010098
ptrkrysik18b631e2014-12-15 09:09:18 +010099%include "grgsm/decryption/decryption.h"
100GR_SWIG_BLOCK_MAGIC2(gsm, decryption);
101
ptrkrysik3be74a72014-12-13 10:11:00 +0100102%include "grgsm/demapping/universal_ctrl_chans_demapper.h"
103GR_SWIG_BLOCK_MAGIC2(gsm, universal_ctrl_chans_demapper);
Roman Khassraffb6bc502015-04-14 15:44:40 +0200104%include "grgsm/demapping/tch_f_chans_demapper.h"
105GR_SWIG_BLOCK_MAGIC2(gsm, tch_f_chans_demapper);
Vasil Velichkov63e568d2018-05-07 15:55:39 +0300106%include "grgsm/demapping/tch_h_chans_demapper.h"
107GR_SWIG_BLOCK_MAGIC2(gsm, tch_h_chans_demapper);
ptrkrysik3be74a72014-12-13 10:11:00 +0100108
Vadim Yanitskiy04536ab2017-07-21 10:59:51 +0700109%include "grgsm/flow_control/common.h"
Roman Khassrafdbc3a502015-08-03 23:20:20 +0200110%include "grgsm/flow_control/burst_timeslot_splitter.h"
111GR_SWIG_BLOCK_MAGIC2(gsm, burst_timeslot_splitter);
Roman Khassrafa1eb1882015-08-05 12:30:29 +0200112%include "grgsm/flow_control/burst_sdcch_subslot_splitter.h"
113GR_SWIG_BLOCK_MAGIC2(gsm, burst_sdcch_subslot_splitter);
Roman Khassrafd7e3eec2015-08-06 11:54:22 +0200114%include "grgsm/flow_control/burst_timeslot_filter.h"
115GR_SWIG_BLOCK_MAGIC2(gsm, burst_timeslot_filter);
Roman Khassraf8b64d872015-08-06 17:30:04 +0200116%include "grgsm/flow_control/burst_sdcch_subslot_filter.h"
117GR_SWIG_BLOCK_MAGIC2(gsm, burst_sdcch_subslot_filter);
Roman Khassraf8e3b0ec2015-08-04 11:16:04 +0200118%include "grgsm/flow_control/burst_fnr_filter.h"
119GR_SWIG_BLOCK_MAGIC2(gsm, burst_fnr_filter);
Piotr Krysikacc365f2017-11-07 19:31:42 +0100120%include "grgsm/flow_control/burst_type_filter.h"
121GR_SWIG_BLOCK_MAGIC2(gsm, burst_type_filter);
Roman Khassraf7cccb522015-08-04 12:26:54 +0200122%include "grgsm/flow_control/dummy_burst_filter.h"
123GR_SWIG_BLOCK_MAGIC2(gsm, dummy_burst_filter);
Piotr Krysika3405b22016-08-30 21:31:24 +0200124%include "grgsm/flow_control/uplink_downlink_splitter.h"
Piotr Krysik264fbf62017-11-05 12:25:51 +0100125GR_SWIG_BLOCK_MAGIC2(gsm, uplink_downlink_splitter);
Piotr Krysika3405b22016-08-30 21:31:24 +0200126
Roman Khassrafdbc3a502015-08-03 23:20:20 +0200127
ptrkrysik3be74a72014-12-13 10:11:00 +0100128%include "grgsm/misc_utils/bursts_printer.h"
129GR_SWIG_BLOCK_MAGIC2(gsm, bursts_printer);
Roman Khassraf1c3419e2015-08-03 10:58:57 +0200130%include "grgsm/misc_utils/burst_file_sink.h"
131GR_SWIG_BLOCK_MAGIC2(gsm, burst_file_sink);
132%include "grgsm/misc_utils/burst_file_source.h"
133GR_SWIG_BLOCK_MAGIC2(gsm, burst_file_source);
Roman Khassraf98581a82017-01-11 12:50:38 +0100134%include "grgsm/misc_utils/collect_system_info.h"
135GR_SWIG_BLOCK_MAGIC2(gsm, collect_system_info);
ptrkrysik3be74a72014-12-13 10:11:00 +0100136%include "grgsm/misc_utils/extract_system_info.h"
137GR_SWIG_BLOCK_MAGIC2(gsm, extract_system_info);
Roman Khassraf5bd14f22015-06-24 17:59:13 +0200138%include "grgsm/misc_utils/extract_immediate_assignment.h"
139GR_SWIG_BLOCK_MAGIC2(gsm, extract_immediate_assignment);
ptrkrysik3be74a72014-12-13 10:11:00 +0100140%include "grgsm/misc_utils/controlled_rotator_cc.h"
141GR_SWIG_BLOCK_MAGIC2(gsm, controlled_rotator_cc);
ptrkrysik3be74a72014-12-13 10:11:00 +0100142%include "grgsm/misc_utils/message_printer.h"
143GR_SWIG_BLOCK_MAGIC2(gsm, message_printer);
ptrkrysik89847582015-01-15 11:48:20 +0100144%include "grgsm/misc_utils/tmsi_dumper.h"
145GR_SWIG_BLOCK_MAGIC2(gsm, tmsi_dumper);
Roman Khassrafc3234542015-08-03 16:17:46 +0200146%include "grgsm/misc_utils/message_file_sink.h"
147GR_SWIG_BLOCK_MAGIC2(gsm, message_file_sink);
148%include "grgsm/misc_utils/message_file_source.h"
149GR_SWIG_BLOCK_MAGIC2(gsm, message_file_source);
Piotr Krysik89ff8992016-07-18 10:24:35 +0200150%include "grgsm/misc_utils/msg_to_tag.h"
151GR_SWIG_BLOCK_MAGIC2(gsm, msg_to_tag);
152%include "grgsm/misc_utils/controlled_fractional_resampler_cc.h"
153GR_SWIG_BLOCK_MAGIC2(gsm, controlled_fractional_resampler_cc);
Roman Khassrafe5ddab32016-12-04 16:19:40 +0100154%include "grgsm/misc_utils/extract_cmc.h"
155GR_SWIG_BLOCK_MAGIC2(gsm, extract_cmc);
Piotr Krysikc097ce72018-03-05 13:16:32 +0100156%include "grgsm/misc_utils/extract_assignment_cmd.h"
157GR_SWIG_BLOCK_MAGIC2(gsm, extract_assignment_cmd);
Piotr Krysik1a32fc42018-05-11 11:38:07 +0200158%include "grgsm/trx/freq_hopping.h"
159GR_SWIG_BLOCK_MAGIC2(gsm, freq_hopping);
Piotr Krysikfd3d8832018-05-06 22:23:06 +0200160%include "grgsm/trx/trx_burst_if.h"
Vadim Yanitskiy7f121d62017-12-04 02:05:49 +0700161GR_SWIG_BLOCK_MAGIC2(gsm, trx_burst_if);
162%include "grgsm/misc_utils/burst_to_fn_time.h"
163GR_SWIG_BLOCK_MAGIC2(gsm, burst_to_fn_time);
Roman Khassrafb8f49092015-08-03 10:08:18 +0200164
Roman Khassraf1ce44692015-08-03 11:16:10 +0200165%include "grgsm/qa_utils/burst_sink.h"
166GR_SWIG_BLOCK_MAGIC2(gsm, burst_sink);
167%include "grgsm/qa_utils/burst_source.h"
168GR_SWIG_BLOCK_MAGIC2(gsm, burst_source);
Roman Khassrafb8f49092015-08-03 10:08:18 +0200169%include "grgsm/qa_utils/message_source.h"
Roman Khassrafadea86f2015-07-27 15:52:02 +0200170GR_SWIG_BLOCK_MAGIC2(gsm, message_source);
Roman Khassrafb8f49092015-08-03 10:08:18 +0200171%include "grgsm/qa_utils/message_sink.h"
Roman Khassraf1e82b8d2015-07-29 11:01:34 +0200172GR_SWIG_BLOCK_MAGIC2(gsm, message_sink);
Piotr Krysikd32ba5b2017-11-03 09:58:13 +0100173
Piotr Krysik6e41d062017-11-03 09:56:49 +0100174%include "grgsm/misc_utils/fn_time.h"
Piotr Krysikfd3d8832018-05-06 22:23:06 +0200175
Piotr Krysik517464c2017-11-05 12:23:15 +0100176%include "grgsm/transmitter/txtime_setter.h"
177GR_SWIG_BLOCK_MAGIC2(gsm, txtime_setter);
Piotr Krysikccb5e682017-11-07 19:34:22 +0100178%include "grgsm/transmitter/preprocess_tx_burst.h"
179GR_SWIG_BLOCK_MAGIC2(gsm, preprocess_tx_burst);
Piotr Krysik23444832017-11-29 16:39:22 +0100180%include "grgsm/transmitter/gen_test_ab.h"
181GR_SWIG_BLOCK_MAGIC2(gsm, gen_test_ab);