From 9f4feb5c38d469d6ebc3e386f9d413a383f644ac Mon Sep 17 00:00:00 2001 From: Roman Khassraf Date: Sat, 26 Sep 2015 18:44:56 +0200 Subject: Added parsing CCCH Config in system info extractor --- lib/misc_utils/extract_system_info_impl.cc | 11 +++++++++++ lib/misc_utils/extract_system_info_impl.h | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/misc_utils/extract_system_info_impl.cc b/lib/misc_utils/extract_system_info_impl.cc index 0e6a4c8..73ce992 100644 --- a/lib/misc_utils/extract_system_info_impl.cc +++ b/lib/misc_utils/extract_system_info_impl.cc @@ -76,6 +76,8 @@ namespace gr { info.lac = (msg_elements[8]<<8)+msg_elements[9]; //take lac info.mcc = ((msg_elements[5] & 0xF) * 100) + (((msg_elements[5] & 0xF0) >> 4) * 10) + ((msg_elements[6] & 0xF)); // take mcc info.mnc = (msg_elements[7] & 0xF) * 10 + (msg_elements[7]>>4); //take mnc + info.ccch_conf = (msg_elements[10] & 0x7); // ccch_conf + boost::mutex::scoped_lock lock(extract_mutex); if(d_c0_channels.find(info.id) != d_c0_channels.end()){ d_c0_channels[info.id].copy_nonzero_elements(info); @@ -215,6 +217,15 @@ namespace gr { return pwrs; } + std::vector extract_system_info_impl::get_ccch_conf() + { + std::vector ccch_confs; + BOOST_FOREACH(chan_info_map::value_type &i, d_c0_channels){ + ccch_confs.push_back(i.second.ccch_conf); + } + return ccch_confs; + } + std::vector extract_system_info_impl::get_neighbours(int chan_id) { std::vector neighbour_cells; diff --git a/lib/misc_utils/extract_system_info_impl.h b/lib/misc_utils/extract_system_info_impl.h index 6c50e10..cd0b2b0 100644 --- a/lib/misc_utils/extract_system_info_impl.h +++ b/lib/misc_utils/extract_system_info_impl.h @@ -39,10 +39,11 @@ namespace gr { unsigned int cell_id; unsigned int mcc; unsigned int mnc; + unsigned int ccch_conf; std::set neighbour_cells; - chan_info() : id(-1), pwr_db(0), arfcn(0), lac(0), cell_id(0), mcc(0), mnc(0){} - 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), mcc(info.mcc), mnc(info.mnc){} + chan_info() : id(-1), pwr_db(0), arfcn(0), lac(0), cell_id(0), mcc(0), mnc(0), ccch_conf(-1){} + 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), mcc(info.mcc), mnc(info.mnc), ccch_conf(info.ccch_conf){} ~chan_info(){} void copy_nonzero_elements(const chan_info & info){ id = info.id; @@ -52,6 +53,7 @@ namespace gr { cell_id = (info.cell_id!=0) ? info.cell_id : cell_id; mcc = (info.mcc!=0) ? info.mcc : mcc; mnc = (info.mnc!=0) ? info.mnc : mnc; + ccch_conf = (info.ccch_conf!=-1) ? info.ccch_conf : ccch_conf; } }; @@ -86,6 +88,7 @@ namespace gr { virtual std::vector get_cell_id(); virtual std::vector get_mcc(); virtual std::vector get_mnc(); + virtual std::vector get_ccch_conf(); virtual std::vector get_neighbours(int chan_id); virtual void reset(); extract_system_info_impl(); -- cgit v1.2.3