modem-helpers: Make 3gpp signal quality functions public

This commit is contained in:
Paul Bartell
2017-09-07 09:43:58 -07:00
committed by Aleksander Morgado
parent 6e5ea39cba
commit 04bf69c276
2 changed files with 50 additions and 26 deletions

View File

@@ -2260,12 +2260,12 @@ mm_3gpp_parse_cesq_response (const gchar *response,
GRegex *r; GRegex *r;
GMatchInfo *match_info; GMatchInfo *match_info;
GError *inner_error = NULL; GError *inner_error = NULL;
guint rxlev = 0; guint rxlev = 99;
guint ber = 0; guint ber = 99;
guint rscp = 0; guint rscp = 255;
guint ecn0 = 0; guint ecn0 = 255;
guint rsrq = 0; guint rsrq = 255;
guint rsrp = 0; guint rsrp = 255;
gboolean success = FALSE; gboolean success = FALSE;
g_assert (out_rxlev); g_assert (out_rxlev);
@@ -2336,8 +2336,8 @@ out:
return TRUE; return TRUE;
} }
static gboolean gboolean
rxlev_to_rssi (guint rxlev, mm_3gpp_rxlev_to_rssi (guint rxlev,
gdouble *out_rssi) gdouble *out_rssi)
{ {
if (rxlev <= 63) { if (rxlev <= 63) {
@@ -2350,8 +2350,8 @@ rxlev_to_rssi (guint rxlev,
return FALSE; return FALSE;
} }
static gboolean gboolean
rscp_level_to_rscp (guint rscp_level, mm_3gpp_rscp_level_to_rscp (guint rscp_level,
gdouble *out_rscp) gdouble *out_rscp)
{ {
if (rscp_level <= 96) { if (rscp_level <= 96) {
@@ -2364,8 +2364,8 @@ rscp_level_to_rscp (guint rscp_level,
return FALSE; return FALSE;
} }
static gboolean gboolean
ecn0_level_to_ecio (guint ecn0_level, mm_3gpp_ecn0_level_to_ecio (guint ecn0_level,
gdouble *out_ecio) gdouble *out_ecio)
{ {
if (ecn0_level <= 49) { if (ecn0_level <= 49) {
@@ -2378,8 +2378,8 @@ ecn0_level_to_ecio (guint ecn0_level,
return FALSE; return FALSE;
} }
static gboolean gboolean
rsrq_level_to_rsrq (guint rsrq_level, mm_3gpp_rsrq_level_to_rsrq (guint rsrq_level,
gdouble *out_rsrq) gdouble *out_rsrq)
{ {
if (rsrq_level <= 34) { if (rsrq_level <= 34) {
@@ -2392,8 +2392,8 @@ rsrq_level_to_rsrq (guint rsrq_level,
return FALSE; return FALSE;
} }
static gboolean gboolean
rsrp_level_to_rsrp (guint rsrp_level, mm_3gpp_rsrp_level_to_rsrp (guint rsrp_level,
gdouble *out_rsrp) gdouble *out_rsrp)
{ {
if (rsrp_level <= 97) { if (rsrp_level <= 97) {
@@ -2436,7 +2436,7 @@ mm_3gpp_cesq_response_to_signal_info (const gchar *response,
return FALSE; return FALSE;
/* GERAN RSSI */ /* GERAN RSSI */
if (rxlev_to_rssi (rxlev, &rssi)) { if (mm_3gpp_rxlev_to_rssi (rxlev, &rssi)) {
gsm = mm_signal_new (); gsm = mm_signal_new ();
mm_signal_set_rssi (gsm, rssi); mm_signal_set_rssi (gsm, rssi);
} }
@@ -2444,26 +2444,26 @@ mm_3gpp_cesq_response_to_signal_info (const gchar *response,
/* ignore BER */ /* ignore BER */
/* UMTS RSCP */ /* UMTS RSCP */
if (rscp_level_to_rscp (rscp_level, &rscp)) { if (mm_3gpp_rscp_level_to_rscp (rscp_level, &rscp)) {
umts = mm_signal_new (); umts = mm_signal_new ();
mm_signal_set_rscp (umts, rscp); mm_signal_set_rscp (umts, rscp);
} }
/* UMTS EcIo (assumed EcN0) */ /* UMTS EcIo (assumed EcN0) */
if (ecn0_level_to_ecio (ecn0_level, &ecio)) { if (mm_3gpp_ecn0_level_to_ecio (ecn0_level, &ecio)) {
if (!umts) if (!umts)
umts = mm_signal_new (); umts = mm_signal_new ();
mm_signal_set_ecio (umts, ecio); mm_signal_set_ecio (umts, ecio);
} }
/* LTE RSRQ */ /* LTE RSRQ */
if (rsrq_level_to_rsrq (rsrq_level, &rsrq)) { if (mm_3gpp_rsrq_level_to_rsrq (rsrq_level, &rsrq)) {
lte = mm_signal_new (); lte = mm_signal_new ();
mm_signal_set_rsrq (lte, rsrq); mm_signal_set_rsrq (lte, rsrq);
} }
/* LTE RSRP */ /* LTE RSRP */
if (rsrp_level_to_rsrp (rsrp_level, &rsrp)) { if (mm_3gpp_rsrp_level_to_rsrp (rsrp_level, &rsrp)) {
if (!lte) if (!lte)
lte = mm_signal_new (); lte = mm_signal_new ();
mm_signal_set_rsrp (lte, rsrp); mm_signal_set_rsrp (lte, rsrp);

View File

@@ -357,6 +357,30 @@ MMBearerIpFamily mm_3gpp_get_ip_family_from_pdp_type (const gchar *pdp_type);
char *mm_3gpp_parse_iccid (const char *raw_iccid, GError **error); char *mm_3gpp_parse_iccid (const char *raw_iccid, GError **error);
gboolean
mm_3gpp_rscp_level_to_rscp (guint rscp_level,
gdouble *out_rscp);
gboolean
mm_3gpp_rxlev_to_rssi (guint rxlev,
gdouble *out_rssi);
gboolean
mm_3gpp_ecn0_level_to_ecio (guint ecn0_level,
gdouble *out_ecio);
gboolean
mm_3gpp_rsrq_level_to_rsrq (guint rsrq_level,
gdouble *out_rsrq);
gboolean
mm_3gpp_rsrp_level_to_rsrp (guint rsrp_level,
gdouble *out_rsrp);
gboolean
mm_3gpp_rssnr_level_to_rssnr (gint rssnr_level,
gdouble *out_rssnr);
/*****************************************************************************/ /*****************************************************************************/
/* CDMA specific helpers and utilities */ /* CDMA specific helpers and utilities */
/*****************************************************************************/ /*****************************************************************************/