From dc4cb983444ccb765f739b9b07e54bcff4ca48e5 Mon Sep 17 00:00:00 2001 From: Piotr Krysik Date: Tue, 16 Jul 2019 15:39:11 +0200 Subject: trx: renaming of old freq hopping block and creation of a new one The old freq_hopper -controlling USRP frequency with use of tags - was renamed to freq_hopper_tag. The new one - freq_hopper_msg - that uses uhd_source or uhd_sink control message input was created. Change-Id: Ic867446314ef2ee6903cef85d48c280981132dae --- include/grgsm/trx/CMakeLists.txt | 3 +- include/grgsm/trx/freq_hopper_msg.h | 74 +++++++++++++++++++++++++++++++++++++ include/grgsm/trx/freq_hopper_tag.h | 67 +++++++++++++++++++++++++++++++++ include/grgsm/trx/freq_hopping.h | 68 ---------------------------------- 4 files changed, 143 insertions(+), 69 deletions(-) create mode 100644 include/grgsm/trx/freq_hopper_msg.h create mode 100644 include/grgsm/trx/freq_hopper_tag.h delete mode 100644 include/grgsm/trx/freq_hopping.h (limited to 'include/grgsm') diff --git a/include/grgsm/trx/CMakeLists.txt b/include/grgsm/trx/CMakeLists.txt index 0addc79..346a807 100644 --- a/include/grgsm/trx/CMakeLists.txt +++ b/include/grgsm/trx/CMakeLists.txt @@ -21,7 +21,8 @@ # Install public header files ######################################################################## install(FILES - freq_hopping.h + freq_hopper_tag.h + freq_hopper_msg.h trx_burst_if.h DESTINATION include/grgsm/trx ) diff --git a/include/grgsm/trx/freq_hopper_msg.h b/include/grgsm/trx/freq_hopper_msg.h new file mode 100644 index 0000000..12a9fe0 --- /dev/null +++ b/include/grgsm/trx/freq_hopper_msg.h @@ -0,0 +1,74 @@ +/* -*- c++ -*- */ +/* @file + * @author Piotr Krysik + * @section LICENSE + * + * Gr-gsm 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. + * + * Gr-gsm 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 gr-gsm; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + * + */ + + +#ifndef INCLUDED_GSM_FREQ_HOPPER_MSG_H +#define INCLUDED_GSM_FREQ_HOPPER_MSG_H + +#include +#include + +namespace gr { + namespace gsm { + + /*! + * \brief <+description of block+> + * \ingroup gsm + * + */ + class GRGSM_API freq_hopper_msg : virtual public sync_block + { + public: + typedef boost::shared_ptr sptr; + + static sptr make( + double samp_rate = 1e6, + double start_fc_rx = 1e9, + double start_fc_tx = 1e9, + bool rx_hopping=true, + bool tx_hopping=true, + double freq_change_period=0.0046); + + /*! + * hopping_cmd is a pmt dictionary with following fields: + * "cmd": string with type of command, possible values: + * -"start" - immediately start hopping or if there is "fn" + * field defined start from frame number defined + * by that field + * -"stop" - immediately stop hopping or if there is "fn" + * field defined start from frame number defined + * by that field + * -"discard" - discard all queued "start_fn" and "stop_fn" + * (this command doesn't require hopping parameters or frame number) + * "hopping_params": dictionary with hopping parameters in following form: + * {"hsn": hopping_sequence_number(uint64), + * "ma": mobile_allocation(list of arfcns), + * "maio": mobile_allocation_index_offset(uint64), + * "n_arfcn": number_of_arfcns_in_ma} + * "fn": frame number when to start or stop hopping + */ +// virtual void add_hopping_cmd(pmt::pmt_t hopping_cmd=pmt::PMT_NIL) = 0; + }; + } // namespace gsm +} // namespace gr + +#endif /* INCLUDED_GSM_FREQ_HOPPER_MSG_H */ diff --git a/include/grgsm/trx/freq_hopper_tag.h b/include/grgsm/trx/freq_hopper_tag.h new file mode 100644 index 0000000..fc4f8c3 --- /dev/null +++ b/include/grgsm/trx/freq_hopper_tag.h @@ -0,0 +1,67 @@ +/* -*- c++ -*- */ +/* @file + * @author Piotr Krysik + * @section LICENSE + * + * Gr-gsm 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. + * + * Gr-gsm 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 gr-gsm; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + * + */ + + +#ifndef INCLUDED_GSM_FREQ_HOPPER_TAG_H +#define INCLUDED_GSM_FREQ_HOPPER_TAG_H + +#include +#include + +namespace gr { + namespace gsm { + + /*! + * \brief <+description of block+> + * \ingroup gsm + * + */ + class GRGSM_API freq_hopper_tag : virtual public gr::block + { + public: + typedef boost::shared_ptr sptr; + + /*! + * hopping_cmd is a pmt dictionary with following fields: + * "cmd": string with type of command, possible values: + * -"start" - immediately start hopping or if there is "fn" + * field defined start from frame number defined + * by that field + * -"stop" - immediately stop hopping or if there is "fn" + * field defined start from frame number defined + * by that field + * -"discard" - discard all queued "start_fn" and "stop_fn" + * (this command doesn't require hopping parameters or frame number) + * "hopping_params": dictionary with hopping parameters in following form: + * {"hsn": hopping_sequence_number(uint64), + * "ma": mobile_allocation(list of arfcns), + * "maio": mobile_allocation_index_offset(uint64), + * "n_arfcn": number_of_arfcns_in_ma} + * "fn": frame number when to start or stop hopping + */ + static sptr make(pmt::pmt_t hopping_cmd); + virtual void add_hopping_cmd(pmt::pmt_t hopping_cmd=pmt::PMT_NIL) = 0; + }; + } // namespace gsm +} // namespace gr + +#endif /* INCLUDED_GSM_FREQ_HOPPER_TAG_H */ diff --git a/include/grgsm/trx/freq_hopping.h b/include/grgsm/trx/freq_hopping.h deleted file mode 100644 index eeb3a53..0000000 --- a/include/grgsm/trx/freq_hopping.h +++ /dev/null @@ -1,68 +0,0 @@ -/* -*- c++ -*- */ -/* @file - * @author Piotr Krysik - * @section LICENSE - * - * Gr-gsm 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. - * - * Gr-gsm 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 gr-gsm; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - * - */ - - -#ifndef INCLUDED_GSM_FREQ_HOPPING_H -#define INCLUDED_GSM_FREQ_HOPPING_H - -#include -#include - -namespace gr { - namespace gsm { - - /*! - * \brief <+description of block+> - * \ingroup gsm - * - */ - class GRGSM_API freq_hopping : virtual public gr::block - { - public: - typedef boost::shared_ptr sptr; - - /*! - * hopping_cmd is a pmt dictionary with following fields: - * "cmd": string with type of command, possible values: - * -"start" - immediately start hopping or if there is "fn" - * field defined start from frame number defined - * by that field - * -"stop" - immediately stop hopping or if there is "fn" - * field defined start from frame number defined - * by that field - * -"discard" - discard all queued "start_fn" and "stop_fn" - * (this command doesn't require hopping parameters or frame number) - * "hopping_params": dictionary with hopping parameters in following form: - * {"hsn": hopping_sequence_number(uint64), - * "ma": mobile_allocation(list of arfcns), - * "maio": mobile_allocation_index_offset(uint64), - * "n_arfcn": number_of_arfcns_in_ma} - * "fn": frame number when to start or stop hopping - */ - static sptr make(pmt::pmt_t hopping_cmd); - virtual void add_hopping_cmd(pmt::pmt_t hopping_cmd=pmt::PMT_NIL) = 0; - }; - } // namespace gsm -} // namespace gr - -#endif /* INCLUDED_GSM_FREQ_HOPPING_H */ - -- cgit v1.2.3