diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2017-07-21 07:00:45 +0700 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2017-07-21 07:33:56 +0700 |
commit | ccc7183e42d7d29a6bd57fc3a27f79a1f6ae394c (patch) | |
tree | a34d7c14a5fda1877997723d30a85a83d282eb8b | |
parent | 91195eb5bfdf124b7dfaabfeae552b8050738aca (diff) |
burst_fnr_filter: implement and expose GET/SET API
-rw-r--r-- | include/grgsm/flow_control/burst_fnr_filter.h | 6 | ||||
-rw-r--r-- | lib/flow_control/burst_fnr_filter_impl.cc | 31 | ||||
-rw-r--r-- | lib/flow_control/burst_fnr_filter_impl.h | 10 |
3 files changed, 47 insertions, 0 deletions
diff --git a/include/grgsm/flow_control/burst_fnr_filter.h b/include/grgsm/flow_control/burst_fnr_filter.h index 919bc1c..dd60830 100644 --- a/include/grgsm/flow_control/burst_fnr_filter.h +++ b/include/grgsm/flow_control/burst_fnr_filter.h @@ -56,6 +56,12 @@ namespace gr { */ static sptr make(filter_mode mode, unsigned int fnr); + /* External API */ + virtual unsigned int get_fn(void) = 0; + virtual unsigned int set_fn(unsigned int fn) = 0; + + virtual filter_mode get_mode(void) = 0; + virtual filter_mode set_mode(filter_mode mode) = 0; }; } // namespace gsm diff --git a/lib/flow_control/burst_fnr_filter_impl.cc b/lib/flow_control/burst_fnr_filter_impl.cc index e665acf..940dcdf 100644 --- a/lib/flow_control/burst_fnr_filter_impl.cc +++ b/lib/flow_control/burst_fnr_filter_impl.cc @@ -75,5 +75,36 @@ namespace gr { message_port_pub(pmt::mp("out"), msg); } } + + /* External API */ + unsigned int + burst_fnr_filter_impl::get_fn(void) + { + return d_framenr; + } + + unsigned int + burst_fnr_filter_impl::set_fn(unsigned int fn) + { + if (fn <= GSM_HYPERFRAME) + d_framenr = fn; + + return d_framenr; + } + + + filter_mode + burst_fnr_filter_impl::get_mode(void) + { + return d_mode; + } + + filter_mode + burst_fnr_filter_impl::set_mode(filter_mode mode) + { + d_mode = mode; + return d_mode; + } + } /* namespace gsm */ } /* namespace gr */ diff --git a/lib/flow_control/burst_fnr_filter_impl.h b/lib/flow_control/burst_fnr_filter_impl.h index 5d9850d..b113679 100644 --- a/lib/flow_control/burst_fnr_filter_impl.h +++ b/lib/flow_control/burst_fnr_filter_impl.h @@ -25,6 +25,9 @@ #include <grgsm/flow_control/burst_fnr_filter.h> +#define GSM_SUPERFRAME (26 * 51) +#define GSM_HYPERFRAME (2048 * GSM_SUPERFRAME) + namespace gr { namespace gsm { @@ -37,6 +40,13 @@ namespace gr { burst_fnr_filter_impl(filter_mode mode, unsigned int fnr); ~burst_fnr_filter_impl(); void process_burst(pmt::pmt_t msg); + + /* External API */ + unsigned int get_fn(void); + unsigned int set_fn(unsigned int fn); + + filter_mode get_mode(void); + filter_mode set_mode(filter_mode mode); }; } // namespace gsm |