From 37a585f86b333bb141f936a5292689a10c9cad71 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Fri, 13 Nov 2015 13:17:03 -0600 Subject: gril: Remove g_ril_unsol_parse_signal_strength --- gril/grilunsol.c | 128 ------------------------------------------------------- gril/grilunsol.h | 3 -- 2 files changed, 131 deletions(-) diff --git a/gril/grilunsol.c b/gril/grilunsol.c index e6d55e4a..10b4b270 100644 --- a/gril/grilunsol.c +++ b/gril/grilunsol.c @@ -363,131 +363,3 @@ int g_ril_unsol_parse_radio_state_changed(GRil *gril, return radio_state; } - -/* - * This function makes a similar processing to was is done by validateInput() - * and getLteLevel() in $AOSP/frameworks/base/telephony/java/android/telephony/ - * SignalStrength.java. The main difference is that we linearly transform the - * ranges to ofono's one, while AOSP gives number of bars in a non-linear way - * (bins for each bar have different size). We rely on the indicator to obtain - * a translation to bars that makes sense for humans. - */ -static int get_lte_strength(int signal, int rsrp, int rssnr) -{ - int s_rsrp = -1, s_rssnr = -1, s_signal = -1; - - /* - * The range of signal is specified to be [0, 31] by ril.h, but the code - * in SignalStrength.java contradicts this: valid values are (0-63, 99) - * as defined in TS 36.331 for E-UTRA rssi. - */ - signal = (signal >= 0 && signal <= 63) ? signal : INT_MAX; - rsrp = (rsrp >= 44 && rsrp <= 140) ? -rsrp : INT_MAX; - rssnr = (rssnr >= -200 && rssnr <= 300) ? rssnr : INT_MAX; - - /* Linearly transform [-140, -44] to [0, 100] */ - if (rsrp != INT_MAX) - s_rsrp = (25 * rsrp + 3500) / 24; - - /* Linearly transform [-200, 300] to [0, 100] */ - if (rssnr != INT_MAX) - s_rssnr = (rssnr + 200) / 5; - - if (s_rsrp != -1 && s_rssnr != -1) - return s_rsrp < s_rssnr ? s_rsrp : s_rssnr; - - if (s_rssnr != -1) - return s_rssnr; - - if (s_rsrp != -1) - return s_rsrp; - - /* Linearly transform [0, 63] to [0, 100] */ - if (signal != INT_MAX) - s_signal = (100 * signal) / 63; - - return s_signal; -} - -/* - * Comments to get_lte_strength() apply here also, changing getLteLevel() with - * getGsmLevel(). The atmodem driver does exactly the same transformation with - * the rssi from AT+CSQ command. - */ -static int get_gsm_strength(int signal) -{ - /* Checking the range contemplates also the case signal=99 (invalid) */ - if (signal >= 0 && signal <= 31) - return (signal * 100) / 31; - else - return -1; -} - -int g_ril_unsol_parse_signal_strength(GRil *gril, const struct ril_msg *message, - int ril_tech) -{ - struct parcel rilp; - int gw_sigstr, gw_signal, cdma_dbm, evdo_dbm; - int lte_sigstr = -1, lte_rsrp = -1, lte_rssnr = -1; - int lte_signal; - int signal; - - g_ril_init_parcel(message, &rilp); - - /* RIL_SignalStrength_v5 */ - /* GW_SignalStrength */ - gw_sigstr = parcel_r_int32(&rilp); - gw_signal = get_gsm_strength(gw_sigstr); - parcel_r_int32(&rilp); /* bitErrorRate */ - - /* - * CDMA/EVDO values are not processed as CDMA is not supported - */ - - /* CDMA_SignalStrength */ - cdma_dbm = parcel_r_int32(&rilp); - parcel_r_int32(&rilp); /* ecio */ - - /* EVDO_SignalStrength */ - evdo_dbm = parcel_r_int32(&rilp); - parcel_r_int32(&rilp); /* ecio */ - parcel_r_int32(&rilp); /* signalNoiseRatio */ - - /* Present only for RIL_SignalStrength_v6 or newer */ - if (parcel_data_avail(&rilp) > 0) { - /* LTE_SignalStrength */ - lte_sigstr = parcel_r_int32(&rilp); - lte_rsrp = parcel_r_int32(&rilp); - parcel_r_int32(&rilp); /* rsrq */ - lte_rssnr = parcel_r_int32(&rilp); - parcel_r_int32(&rilp); /* cqi */ - lte_signal = get_lte_strength(lte_sigstr, lte_rsrp, lte_rssnr); - } else { - lte_signal = -1; - } - - g_ril_append_print_buf(gril, - "{gw: %d, cdma: %d, evdo: %d, lte: %d %d %d}", - gw_sigstr, cdma_dbm, evdo_dbm, lte_sigstr, - lte_rsrp, lte_rssnr); - - if (message->unsolicited) - g_ril_print_unsol(gril, message); - else - g_ril_print_response(gril, message); - - /* Return the first valid one */ - if (gw_signal != -1 && lte_signal != -1) - if (ril_tech == RADIO_TECH_LTE) - signal = lte_signal; - else - signal = gw_signal; - else if (gw_signal != -1) - signal = gw_signal; - else if (lte_signal != -1) - signal = lte_signal; - else - signal = -1; - - return signal; -} diff --git a/gril/grilunsol.h b/gril/grilunsol.h index a2ea7a48..5cea1adc 100644 --- a/gril/grilunsol.h +++ b/gril/grilunsol.h @@ -58,9 +58,6 @@ char *g_ril_unsol_parse_nitz(GRil *gril, const struct ril_msg *message); int g_ril_unsol_parse_radio_state_changed(GRil *gril, const struct ril_msg *message); -int g_ril_unsol_parse_signal_strength(GRil *gril, const struct ril_msg *message, - int ril_tech); - #ifdef __cplusplus } #endif -- cgit v1.2.3