Added option to ignore Immediate Assignments for GPRS channels in the extractor. Enhancement of issue #84
diff --git a/grc/misc_utils/gsm_extract_immediate_assignment.xml b/grc/misc_utils/gsm_extract_immediate_assignment.xml
index 92a2b90..788ea45 100644
--- a/grc/misc_utils/gsm_extract_immediate_assignment.xml
+++ b/grc/misc_utils/gsm_extract_immediate_assignment.xml
@@ -3,7 +3,7 @@
<name>Extract immediate assignment</name>
<key>gsm_extract_immediate_assignment</key>
<import>import grgsm</import>
- <make>grgsm.extract_immediate_assignment($print_immediate_assignments)</make>
+ <make>grgsm.extract_immediate_assignment($print_immediate_assignments, $ignore_gprs)</make>
<param>
<name>Print</name>
@@ -19,6 +19,20 @@
<key>True</key>
</option>
</param>
+ <param>
+ <name>Ignore GPRS</name>
+ <key>ignore_gprs</key>
+ <value>False</value>
+ <type>bool</type>
+ <option>
+ <name>False</name>
+ <key>False</key>
+ </option>
+ <option>
+ <name>True</name>
+ <key>True</key>
+ </option>
+ </param>
<sink>
<name>msgs</name>
diff --git a/include/grgsm/misc_utils/extract_immediate_assignment.h b/include/grgsm/misc_utils/extract_immediate_assignment.h
index 64b5f1e..361a9c3 100644
--- a/include/grgsm/misc_utils/extract_immediate_assignment.h
+++ b/include/grgsm/misc_utils/extract_immediate_assignment.h
@@ -48,7 +48,7 @@
* class. gsm::extract_immediate_assignment::make is the public interface for
* creating new instances.
*/
- static sptr make(bool print_immediate_assignments=false);
+ static sptr make(bool print_immediate_assignments=false, bool ignore_gprs=false);
virtual std::vector<int> get_frame_numbers() = 0;
virtual std::vector<std::string> get_channel_types() = 0;
virtual std::vector<int> get_timeslots() = 0;
diff --git a/lib/misc_utils/extract_immediate_assignment_impl.cc b/lib/misc_utils/extract_immediate_assignment_impl.cc
index db3318b..e3bce37 100644
--- a/lib/misc_utils/extract_immediate_assignment_impl.cc
+++ b/lib/misc_utils/extract_immediate_assignment_impl.cc
@@ -90,6 +90,11 @@
}
else
{
+ // We return if ignore_gprs is set true
+ if (d_ignore_gprs)
+ {
+ return;
+ }
current.channel_type = "GPRS - Temporary Block Flow TBF";
}
@@ -282,21 +287,22 @@
}
extract_immediate_assignment::sptr
- extract_immediate_assignment::make(bool print_immediate_assignments)
+ extract_immediate_assignment::make(bool print_immediate_assignments, bool ignore_gprs)
{
return gnuradio::get_initial_sptr
- (new extract_immediate_assignment_impl(print_immediate_assignments));
+ (new extract_immediate_assignment_impl(print_immediate_assignments, ignore_gprs));
}
/*
* The private constructor
*/
- extract_immediate_assignment_impl::extract_immediate_assignment_impl(bool print_immediate_assignments)
+ extract_immediate_assignment_impl::extract_immediate_assignment_impl(bool print_immediate_assignments, bool ignore_gprs)
: gr::block("extract_immediate_assignment",
gr::io_signature::make(0, 0, 0),
gr::io_signature::make(0, 0, 0))
{
d_print_immediate_assignments = print_immediate_assignments;
+ d_ignore_gprs = ignore_gprs;
message_port_register_in(pmt::mp("msgs"));
set_msg_handler(pmt::mp("msgs"), boost::bind(&extract_immediate_assignment_impl::process_message, this, _1));
}
diff --git a/lib/misc_utils/extract_immediate_assignment_impl.h b/lib/misc_utils/extract_immediate_assignment_impl.h
index 1e99f7c..80e02a5 100644
--- a/lib/misc_utils/extract_immediate_assignment_impl.h
+++ b/lib/misc_utils/extract_immediate_assignment_impl.h
@@ -57,6 +57,7 @@
void process_message(pmt::pmt_t msg);
immediate_assignment_map d_assignment_map;
bool d_print_immediate_assignments;
+ bool d_ignore_gprs;
public:
virtual std::vector<int> get_frame_numbers();
virtual std::vector<std::string> get_channel_types();
@@ -68,7 +69,7 @@
virtual std::vector<int> get_arfcns();
virtual std::vector<int> get_timing_advances();
virtual std::vector<std::string> get_mobile_allocations();
- extract_immediate_assignment_impl(bool print_immediate_assignments=false);
+ extract_immediate_assignment_impl(bool print_immediate_assignments=false, bool ignore_gprs=false);
~extract_immediate_assignment_impl();
};
} // namespace gsm