aboutsummaryrefslogtreecommitdiffstats
path: root/lib/misc_utils
diff options
context:
space:
mode:
authorptrkrysik <ptrkrysik@gmail.com>2014-12-15 09:10:01 +0100
committerptrkrysik <ptrkrysik@gmail.com>2014-12-15 09:10:01 +0100
commita31a481fd19e2964ed462c13eab4d09cceda2e66 (patch)
treed27f93589369686e378f197c2a647f22914ec08f /lib/misc_utils
parent18b631eb71083bda1b50c131f52dcc5929d92f90 (diff)
Corrected extract_system_info_impl to work with PDU messages
Diffstat (limited to 'lib/misc_utils')
-rw-r--r--lib/misc_utils/extract_system_info_impl.cc30
1 files changed, 14 insertions, 16 deletions
diff --git a/lib/misc_utils/extract_system_info_impl.cc b/lib/misc_utils/extract_system_info_impl.cc
index a7ed06d..2951173 100644
--- a/lib/misc_utils/extract_system_info_impl.cc
+++ b/lib/misc_utils/extract_system_info_impl.cc
@@ -39,16 +39,12 @@ namespace gr {
boost::mutex extract_mutex;
void extract_system_info_impl::process_bursts(pmt::pmt_t msg)
{
- pmt::pmt_t burst = pmt::cdr(msg);
- int8_t * burst_elements = (int8_t *)pmt::blob_data(burst);
- size_t burst_len=pmt::blob_length(burst);
+ pmt::pmt_t burst_plus_header_blob = pmt::cdr(msg);
+ gsmtap_hdr * header = (gsmtap_hdr *)pmt::blob_data(burst_plus_header_blob);
- pmt::pmt_t header_blob = pmt::car(msg);
- gsmtap_hdr * header = (gsmtap_hdr *)pmt::blob_data(header_blob);
chan_info info;
info.id = header->arfcn;
info.pwr_db = header->signal_dbm;
-
std::set<chan_info, compare_id>::iterator iter = d_c0_channels.find(info);
boost::mutex::scoped_lock lock(extract_mutex);
@@ -63,8 +59,10 @@ namespace gr {
}
void extract_system_info_impl::process_sysinfo(pmt::pmt_t msg){
- pmt::pmt_t msg_blob = pmt::cdr(msg);
- uint8_t * msg_elements = (uint8_t *)pmt::blob_data(msg_blob);
+ pmt::pmt_t message_plus_header_blob = pmt::cdr(msg);
+ uint8_t * message_plus_header = (uint8_t *)pmt::blob_data(message_plus_header_blob);
+ gsmtap_hdr * header = (gsmtap_hdr *)message_plus_header;
+ uint8_t * msg_elements = (uint8_t *)(message_plus_header+sizeof(gsmtap_hdr));
if(msg_elements[2]==0x1b){
//wyciągnij arfcn
@@ -73,9 +71,9 @@ namespace gr {
chan_info info;
info.id = header->arfcn;
info.pwr_db = header->signal_dbm;
- info.cell_id = (msg_elements[3]<<8)+msg_elements[4]; //wyciągnij cell id
- info.lac = (msg_elements[8]<<8)+msg_elements[9]; //wyciągnij lac
- info.mnc = (msg_elements[7]>>4); //wyciągnij id operatora
+ info.cell_id = (msg_elements[3]<<8)+msg_elements[4]; //take cell id
+ info.lac = (msg_elements[8]<<8)+msg_elements[9]; //take lac
+ info.mnc = (msg_elements[7]>>4); //take mnc
std::set<chan_info, compare_id>::iterator iter = d_c0_channels.find(info);
boost::mutex::scoped_lock lock(extract_mutex);
@@ -90,8 +88,8 @@ namespace gr {
chan_info info;
info.id = header->arfcn;
info.pwr_db = header->signal_dbm;
- info.lac = (msg_elements[6]<<8)+msg_elements[7]; //wyciągnij lac
- info.mnc = (msg_elements[5]>>4); //wyciągnij id operatora
+ info.lac = (msg_elements[6]<<8)+msg_elements[7]; //take lac
+ info.mnc = (msg_elements[5]>>4); //take mnc
std::set<chan_info, compare_id>::iterator iter = d_c0_channels.find(info);
boost::mutex::scoped_lock lock(extract_mutex);
@@ -186,9 +184,9 @@ namespace gr {
for(iter = d_c0_channels.begin(); iter != d_c0_channels.end(); iter++){
info.id = iter->id;
- info.cell_id = iter->cell_id; //wyciągnij cell id
- info.lac = iter->lac; //wyciągnij lac
- info.mnc = iter->mnc;
+ info.cell_id = iter->cell_id;
+ info.lac = iter->lac;
+ info.mnc = iter->mnc;
info.pwr_db = -111;
d_c0_channels.erase(iter);
d_c0_channels.insert(info);