aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2017-07-21 07:00:45 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2017-07-21 07:33:56 +0700
commitccc7183e42d7d29a6bd57fc3a27f79a1f6ae394c (patch)
treea34d7c14a5fda1877997723d30a85a83d282eb8b
parent91195eb5bfdf124b7dfaabfeae552b8050738aca (diff)
burst_fnr_filter: implement and expose GET/SET API
-rw-r--r--include/grgsm/flow_control/burst_fnr_filter.h6
-rw-r--r--lib/flow_control/burst_fnr_filter_impl.cc31
-rw-r--r--lib/flow_control/burst_fnr_filter_impl.h10
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