aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorptrkrysik <ptrkrysik@gmail.com>2015-08-06 10:02:04 +0200
committerptrkrysik <ptrkrysik@gmail.com>2015-08-06 10:02:04 +0200
commit5e37674adf71f3de20b8da536c992ad4ae02f4b8 (patch)
treeb109bc5218bafc6a526d436742335564f78d2299 /lib
parent32c55a1f5203ce8a431e7cefd173c78ecd9ffc8e (diff)
Changes in extract_system_info
Diffstat (limited to 'lib')
-rw-r--r--lib/misc_utils/extract_system_info_impl.cc35
-rw-r--r--lib/misc_utils/extract_system_info_impl.h1
2 files changed, 19 insertions, 17 deletions
diff --git a/lib/misc_utils/extract_system_info_impl.cc b/lib/misc_utils/extract_system_info_impl.cc
index 846c87a..c9ffc06 100644
--- a/lib/misc_utils/extract_system_info_impl.cc
+++ b/lib/misc_utils/extract_system_info_impl.cc
@@ -104,17 +104,18 @@ namespace gr {
boost::mutex::scoped_lock lock(extract_mutex);
//read neighbour cells
gsm48_decode_freq_list(freq, &msg_elements[3], 16, 0xce, 0x01);
- for(int arfcn=0; arfcn<sizeof(freq); arfcn++){
- if(freq[arfcn].mask==0x01){
- d_c0_channels[info.id].neighbour_cells.insert(arfcn);
- }
- }
if(d_c0_channels.find(info.id) != d_c0_channels.end()){
d_c0_channels[info.id].copy_nonzero_elements(info);
} else {
d_c0_channels[info.id] = info;
}
+
+ for(int arfcn=0; arfcn<sizeof(freq); arfcn++){
+ if(freq[arfcn].mask==0x01){
+ d_c0_channels[info.id].neighbour_cells.insert(arfcn);
+ }
+ }
}
else if(msg_elements[2]==0x02){ //System Information Type 2bis
memset(freq, 0, sizeof(freq));
@@ -124,17 +125,17 @@ namespace gr {
boost::mutex::scoped_lock lock(extract_mutex);
//read neighbour cells
gsm48_decode_freq_list(freq, &msg_elements[3], 16, 0xce, 0x01);
- for(int arfcn=0; arfcn<sizeof(freq); arfcn++){
- if(freq[arfcn].mask==0x01){
- d_c0_channels[info.id].neighbour_cells.insert(arfcn);
- }
- }
-
if(d_c0_channels.find(info.id) != d_c0_channels.end()){
d_c0_channels[info.id].copy_nonzero_elements(info);
} else {
d_c0_channels[info.id] = info;
}
+
+ for(int arfcn=0; arfcn<sizeof(freq); arfcn++){
+ if(freq[arfcn].mask==0x01){
+ d_c0_channels[info.id].neighbour_cells.insert(arfcn);
+ }
+ }
}
else if(msg_elements[2]==0x03){ //System Information Type 2ter
memset(freq, 0, sizeof(freq));
@@ -144,17 +145,17 @@ namespace gr {
boost::mutex::scoped_lock lock(extract_mutex);
//read neighbour cells
gsm48_decode_freq_list(freq, &msg_elements[3], 16, 0x8e, 0x01);
- for(int arfcn=0; arfcn<sizeof(freq); arfcn++){
- if(freq[arfcn].mask==0x01){
- d_c0_channels[info.id].neighbour_cells.insert(arfcn);
- }
- }
-
if(d_c0_channels.find(info.id) != d_c0_channels.end()){
d_c0_channels[info.id].copy_nonzero_elements(info);
} else {
d_c0_channels[info.id] = info;
}
+
+ for(int arfcn=0; arfcn<sizeof(freq); arfcn++){
+ if(freq[arfcn].mask==0x01){
+ d_c0_channels[info.id].neighbour_cells.insert(arfcn);
+ }
+ }
}
}
diff --git a/lib/misc_utils/extract_system_info_impl.h b/lib/misc_utils/extract_system_info_impl.h
index ea259ad..b88a586 100644
--- a/lib/misc_utils/extract_system_info_impl.h
+++ b/lib/misc_utils/extract_system_info_impl.h
@@ -44,6 +44,7 @@ namespace gr {
chan_info(const chan_info & info) : id(info.id), pwr_db(info.pwr_db), arfcn(info.arfcn), lac(info.lac), cell_id(info.cell_id), mnc(info.mnc){}
~chan_info(){}
void copy_nonzero_elements(const chan_info & info){
+ id = info.id;
pwr_db = info.pwr_db;
arfcn = info.arfcn;
lac = (info.lac!=0) ? info.lac : lac;