diff options
Diffstat (limited to 'lib/demapping/tch_h_chans_demapper_impl.h')
-rw-r--r-- | lib/demapping/tch_h_chans_demapper_impl.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/demapping/tch_h_chans_demapper_impl.h b/lib/demapping/tch_h_chans_demapper_impl.h new file mode 100644 index 0000000..ab0efd1 --- /dev/null +++ b/lib/demapping/tch_h_chans_demapper_impl.h @@ -0,0 +1,65 @@ +/* -*- c++ -*- */ +/* + * @file + * @author (C) 2018 by Andrew Artyushok <loony.developer@gmail.com> + * @author (C) 2018 by Vasil Velichkov <vvvelichkov@gmail.com> + * @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_TCH_H_CHANS_DEMAPPER_IMPL_H +#define INCLUDED_GSM_TCH_H_CHANS_DEMAPPER_IMPL_H + +#include <grgsm/demapping/tch_h_chans_demapper.h> + +namespace gr { + namespace gsm { + + class tch_h_chans_demapper_impl : public tch_h_chans_demapper + { + private: + unsigned int d_timeslot; + unsigned int d_tch_h_channel; + + // Downlink + uint32_t d_frame_numbers_dl[3][8]; // for checking consecutive frame numbers of tch + uint32_t d_frame_numbers_sacch_dl[4]; // for checking consecutive frame numbers of sacch + pmt::pmt_t d_bursts_dl[3][8]; // for tch output headers+bursts + pmt::pmt_t d_bursts_sacch_dl[4]; // for sacch output bursts + + // Uplink + uint32_t d_frame_numbers_ul[3][8]; // for checking consecutive frame numbers of tch + uint32_t d_frame_numbers_sacch_ul[4]; // for checking consecutive frame numbers of sacch + pmt::pmt_t d_bursts_ul[3][8]; // for tch output headers+bursts + pmt::pmt_t d_bursts_sacch_ul[4]; // for sacch output bursts + + void sacch_tch_demapper(uint32_t fn_mod13, u_int32_t fn_mod26, uint32_t frame_nr, pmt::pmt_t *d_bursts_sacch, + uint32_t *d_frame_numbers_sacch, pmt::pmt_t d_bursts[3][8], + uint32_t d_frame_numbers[3][8], pmt::pmt_t msg_out); + + void filter_tch_chans(pmt::pmt_t msg); + + public: + tch_h_chans_demapper_impl(unsigned int timeslot_nr, unsigned int tch_h_channel); + ~tch_h_chans_demapper_impl(); + }; + + } // namespace gsm +} // namespace gr + +#endif /* INCLUDED_GSM_TCH_H_CHANS_DEMAPPER_IMPL_H */ + |