aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs_ms.cpp
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-06-11 16:54:50 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-06-12 15:35:10 +0200
commit6659c516fa32ab64642b5822bf4b880f3cc27bbb (patch)
treea82c2862056cc929043d0316a828a39117213969 /src/gprs_ms.cpp
parent54fff3b3e4cef0bf182ec7779793a252b73c48b0 (diff)
l1: Store measurement values sent by the MS
This commit extends the pcu_l1_meas structure by MS side measurement values which are transmitted by PACKET DOWNLINK ACK/NACK and PACKET RESOURCE REQUEST messages. The encoded values are remapped to dB respectively % values. The values are stored in the corresponding MS object (if there is one). Note that the values are store as (rounded) integers, so some different encodings are mapped to the same decoded value. Sponsored-by: On-Waves ehf
Diffstat (limited to 'src/gprs_ms.cpp')
-rw-r--r--src/gprs_ms.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp
index cc211713..fe560e86 100644
--- a/src/gprs_ms.cpp
+++ b/src/gprs_ms.cpp
@@ -421,6 +421,7 @@ void GprsMs::update_l1_meas(const pcu_l1_meas *meas)
{
struct gprs_rlcmac_bts *bts_data;
uint8_t max_cs_ul = 4;
+ unsigned i;
OSMO_ASSERT(m_bts != NULL);
bts_data = m_bts->bts_data();
@@ -464,4 +465,20 @@ void GprsMs::update_l1_meas(const pcu_l1_meas *meas)
m_l1_meas.set_ber(meas->ber);
if (meas->have_link_qual)
m_l1_meas.set_link_qual(meas->link_qual);
+
+ if (meas->have_ms_rx_qual)
+ m_l1_meas.set_ms_rx_qual(meas->ms_rx_qual);
+ if (meas->have_ms_c_value)
+ m_l1_meas.set_ms_c_value(meas->ms_c_value);
+ if (meas->have_ms_sign_var)
+ m_l1_meas.set_ms_sign_var(meas->ms_sign_var);
+
+ if (meas->have_ms_i_level) {
+ for (i = 0; i < ARRAY_SIZE(meas->ts); ++i) {
+ if (meas->ts[i].have_ms_i_level)
+ m_l1_meas.set_ms_i_level(i, meas->ts[i].ms_i_level);
+ else
+ m_l1_meas.ts[i].have_ms_i_level = 0;
+ }
+ }
}