summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSom_SP <somashekhar.puttagangaiah@intel.com>2021-10-20 21:59:45 +0200
committerAleksander Morgado <aleksander@aleksander.es>2021-10-20 22:07:24 +0200
commit9537261651a4f44fb0d0817bb902b225abb5e5a5 (patch)
treeb7b60924dbb2da17298f3b1de9cd41e9c090eb6b
parent296b5185f51b5444468059919c3c5cf7ca14247f (diff)
libmm-glib,mmcli: add support for 'error-rate' measurements in signal info
Includes updates by Aleksander Morgado to fix mostly coding style issues.
-rw-r--r--cli/mmcli-modem-signal.c64
-rw-r--r--cli/mmcli-output.c6
-rw-r--r--cli/mmcli-output.h6
-rw-r--r--docs/reference/libmm-glib/libmm-glib-sections.txt2
-rw-r--r--libmm-glib/mm-signal.c65
-rw-r--r--libmm-glib/mm-signal.h39
6 files changed, 135 insertions, 47 deletions
diff --git a/cli/mmcli-modem-signal.c b/cli/mmcli-modem-signal.c
index 955ed4c3..1b9b0e49 100644
--- a/cli/mmcli-modem-signal.c
+++ b/cli/mmcli-modem-signal.c
@@ -141,21 +141,27 @@ print_signal_info (void)
gchar *refresh_rate;
gchar *cdma1x_rssi = NULL;
gchar *cdma1x_ecio = NULL;
+ gchar *cdma1x_error_rate = NULL;
gchar *evdo_rssi = NULL;
gchar *evdo_ecio = NULL;
gchar *evdo_sinr = NULL;
gchar *evdo_io = NULL;
+ gchar *evdo_error_rate = NULL;
gchar *gsm_rssi = NULL;
+ gchar *gsm_error_rate = NULL;
gchar *umts_rssi = NULL;
gchar *umts_rscp = NULL;
gchar *umts_ecio = NULL;
+ gchar *umts_error_rate = NULL;
gchar *lte_rssi = NULL;
gchar *lte_rsrp = NULL;
gchar *lte_rsrq = NULL;
gchar *lte_snr = NULL;
+ gchar *lte_error_rate = NULL;
gchar *nr5g_rsrp = NULL;
gchar *nr5g_rsrq = NULL;
gchar *nr5g_snr = NULL;
+ gchar *nr5g_error_rate = NULL;
refresh_rate = g_strdup_printf ("%u", mm_modem_signal_get_rate (ctx->modem_signal));
@@ -165,6 +171,8 @@ print_signal_info (void)
cdma1x_rssi = g_strdup_printf ("%.2lf", value);
if ((value = mm_signal_get_ecio (signal)) != MM_SIGNAL_UNKNOWN)
cdma1x_ecio = g_strdup_printf ("%.2lf", value);
+ if ((value = mm_signal_get_error_rate (signal)) != MM_SIGNAL_UNKNOWN)
+ cdma1x_error_rate = g_strdup_printf ("%.2lf", value);
}
signal = mm_modem_signal_peek_evdo (ctx->modem_signal);
@@ -177,12 +185,16 @@ print_signal_info (void)
evdo_sinr = g_strdup_printf ("%.2lf", value);
if ((value = mm_signal_get_io (signal)) != MM_SIGNAL_UNKNOWN)
evdo_io = g_strdup_printf ("%.2lf", value);
+ if ((value = mm_signal_get_error_rate (signal)) != MM_SIGNAL_UNKNOWN)
+ evdo_error_rate = g_strdup_printf ("%.2lf", value);
}
signal = mm_modem_signal_peek_gsm (ctx->modem_signal);
if (signal) {
if ((value = mm_signal_get_rssi (signal)) != MM_SIGNAL_UNKNOWN)
gsm_rssi = g_strdup_printf ("%.2lf", value);
+ if ((value = mm_signal_get_error_rate (signal)) != MM_SIGNAL_UNKNOWN)
+ gsm_error_rate = g_strdup_printf ("%.2lf", value);
}
signal = mm_modem_signal_peek_umts (ctx->modem_signal);
@@ -193,6 +205,8 @@ print_signal_info (void)
umts_rscp = g_strdup_printf ("%.2lf", value);
if ((value = mm_signal_get_ecio (signal)) != MM_SIGNAL_UNKNOWN)
umts_ecio = g_strdup_printf ("%.2lf", value);
+ if ((value = mm_signal_get_error_rate (signal)) != MM_SIGNAL_UNKNOWN)
+ umts_error_rate = g_strdup_printf ("%.2lf", value);
}
signal = mm_modem_signal_peek_lte (ctx->modem_signal);
@@ -205,6 +219,8 @@ print_signal_info (void)
lte_rsrp = g_strdup_printf ("%.2lf", value);
if ((value = mm_signal_get_snr (signal)) != MM_SIGNAL_UNKNOWN)
lte_snr = g_strdup_printf ("%.2lf", value);
+ if ((value = mm_signal_get_error_rate (signal)) != MM_SIGNAL_UNKNOWN)
+ lte_error_rate = g_strdup_printf ("%.2lf", value);
}
signal = mm_modem_signal_peek_nr5g (ctx->modem_signal);
@@ -215,26 +231,34 @@ print_signal_info (void)
nr5g_rsrp = g_strdup_printf ("%.2lf", value);
if ((value = mm_signal_get_snr (signal)) != MM_SIGNAL_UNKNOWN)
nr5g_snr = g_strdup_printf ("%.2lf", value);
+ if ((value = mm_signal_get_error_rate (signal)) != MM_SIGNAL_UNKNOWN)
+ nr5g_error_rate = g_strdup_printf ("%.2lf", value);
}
- mmcli_output_string_take_typed (MMC_F_SIGNAL_REFRESH_RATE, refresh_rate, "seconds");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_CDMA1X_RSSI, cdma1x_rssi, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_CDMA1X_ECIO, cdma1x_ecio, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_RSSI, evdo_rssi, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_ECIO, evdo_ecio, "dB");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_SINR, evdo_sinr, "dB");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_IO, evdo_io, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_GSM_RSSI, gsm_rssi, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_UMTS_RSSI, umts_rssi, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_UMTS_RSCP, umts_rscp, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_UMTS_ECIO, umts_ecio, "dB");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_RSSI, lte_rssi, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_RSRQ, lte_rsrq, "dB");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_RSRP, lte_rsrp, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_SNR, lte_snr, "dB");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_5G_RSRQ, nr5g_rsrq, "dB");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_5G_RSRP, nr5g_rsrp, "dBm");
- mmcli_output_string_take_typed (MMC_F_SIGNAL_5G_SNR, nr5g_snr, "dB");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_REFRESH_RATE, refresh_rate, "seconds");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_CDMA1X_RSSI, cdma1x_rssi, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_CDMA1X_ECIO, cdma1x_ecio, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_CDMA1X_ERROR_RATE, cdma1x_error_rate, "%%");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_RSSI, evdo_rssi, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_ECIO, evdo_ecio, "dB");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_SINR, evdo_sinr, "dB");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_IO, evdo_io, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_EVDO_ERROR_RATE, evdo_error_rate, "%%");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_GSM_RSSI, gsm_rssi, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_GSM_ERROR_RATE, gsm_error_rate, "%%");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_UMTS_RSSI, umts_rssi, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_UMTS_RSCP, umts_rscp, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_UMTS_ECIO, umts_ecio, "dB");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_UMTS_ERROR_RATE, umts_error_rate, "%%");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_RSSI, lte_rssi, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_RSRQ, lte_rsrq, "dB");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_RSRP, lte_rsrp, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_SNR, lte_snr, "dB");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_LTE_ERROR_RATE, lte_error_rate, "%%");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_5G_RSRQ, nr5g_rsrq, "dB");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_5G_RSRP, nr5g_rsrp, "dBm");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_5G_SNR, nr5g_snr, "dB");
+ mmcli_output_string_take_typed (MMC_F_SIGNAL_5G_ERROR_RATE, nr5g_error_rate, "%%");
mmcli_output_dump ();
}
@@ -243,12 +267,12 @@ setup_process_reply (gboolean result,
const GError *error)
{
if (!result) {
- g_printerr ("error: couldn't setup extended signal information retrieval: '%s'\n",
+ g_printerr ("error: couldn't setup signal quality information polling: '%s'\n",
error ? error->message : "unknown error");
exit (EXIT_FAILURE);
}
- g_print ("Successfully setup extended signal information retrieval\n");
+ g_print ("Successfully setup signal quality information polling\n");
}
static void
diff --git a/cli/mmcli-output.c b/cli/mmcli-output.c
index c012c1bd..947b4074 100644
--- a/cli/mmcli-output.c
+++ b/cli/mmcli-output.c
@@ -164,21 +164,27 @@ static FieldInfo field_infos[] = {
[MMC_F_SIGNAL_REFRESH_RATE] = { "modem.signal.refresh.rate", "refresh rate", MMC_S_MODEM_SIGNAL, },
[MMC_F_SIGNAL_CDMA1X_RSSI] = { "modem.signal.cdma1x.rssi", "rssi", MMC_S_MODEM_SIGNAL_CDMA1X, },
[MMC_F_SIGNAL_CDMA1X_ECIO] = { "modem.signal.cdma1x.ecio", "ecio", MMC_S_MODEM_SIGNAL_CDMA1X, },
+ [MMC_F_SIGNAL_CDMA1X_ERROR_RATE] = { "modem.signal.cdma1x.error-rate", "error rate", MMC_S_MODEM_SIGNAL_CDMA1X, },
[MMC_F_SIGNAL_EVDO_RSSI] = { "modem.signal.evdo.rssi", "rssi", MMC_S_MODEM_SIGNAL_EVDO, },
[MMC_F_SIGNAL_EVDO_ECIO] = { "modem.signal.evdo.ecio", "ecio", MMC_S_MODEM_SIGNAL_EVDO, },
[MMC_F_SIGNAL_EVDO_SINR] = { "modem.signal.evdo.sinr", "sinr", MMC_S_MODEM_SIGNAL_EVDO, },
[MMC_F_SIGNAL_EVDO_IO] = { "modem.signal.evdo.io", "io", MMC_S_MODEM_SIGNAL_EVDO, },
+ [MMC_F_SIGNAL_EVDO_ERROR_RATE] = { "modem.signal.evdo.error-rate", "error rate", MMC_S_MODEM_SIGNAL_EVDO, },
[MMC_F_SIGNAL_GSM_RSSI] = { "modem.signal.gsm.rssi", "rssi", MMC_S_MODEM_SIGNAL_GSM, },
+ [MMC_F_SIGNAL_GSM_ERROR_RATE] = { "modem.signal.gsm.error-rate", "error rate", MMC_S_MODEM_SIGNAL_GSM, },
[MMC_F_SIGNAL_UMTS_RSSI] = { "modem.signal.umts.rssi", "rssi", MMC_S_MODEM_SIGNAL_UMTS, },
[MMC_F_SIGNAL_UMTS_RSCP] = { "modem.signal.umts.rscp", "rscp", MMC_S_MODEM_SIGNAL_UMTS, },
[MMC_F_SIGNAL_UMTS_ECIO] = { "modem.signal.umts.ecio", "ecio", MMC_S_MODEM_SIGNAL_UMTS, },
+ [MMC_F_SIGNAL_UMTS_ERROR_RATE] = { "modem.signal.umts.error-rate", "error rate", MMC_S_MODEM_SIGNAL_UMTS, },
[MMC_F_SIGNAL_LTE_RSSI] = { "modem.signal.lte.rssi", "rssi", MMC_S_MODEM_SIGNAL_LTE, },
[MMC_F_SIGNAL_LTE_RSRQ] = { "modem.signal.lte.rsrq", "rsrq", MMC_S_MODEM_SIGNAL_LTE, },
[MMC_F_SIGNAL_LTE_RSRP] = { "modem.signal.lte.rsrp", "rsrp", MMC_S_MODEM_SIGNAL_LTE, },
[MMC_F_SIGNAL_LTE_SNR] = { "modem.signal.lte.snr", "s/n", MMC_S_MODEM_SIGNAL_LTE, },
+ [MMC_F_SIGNAL_LTE_ERROR_RATE] = { "modem.signal.lte.error-rate", "error rate", MMC_S_MODEM_SIGNAL_LTE, },
[MMC_F_SIGNAL_5G_RSRQ] = { "modem.signal.5g.rsrq", "rsrq", MMC_S_MODEM_SIGNAL_5G, },
[MMC_F_SIGNAL_5G_RSRP] = { "modem.signal.5g.rsrp", "rsrp", MMC_S_MODEM_SIGNAL_5G, },
[MMC_F_SIGNAL_5G_SNR] = { "modem.signal.5g.snr", "s/n", MMC_S_MODEM_SIGNAL_5G, },
+ [MMC_F_SIGNAL_5G_ERROR_RATE] = { "modem.signal.5g.error-rate", "error rate", MMC_S_MODEM_SIGNAL_5G, },
[MMC_F_OMA_FEATURES] = { "modem.oma.features", "features", MMC_S_MODEM_OMA, },
[MMC_F_OMA_CURRENT_TYPE] = { "modem.oma.current.type", "type", MMC_S_MODEM_OMA_CURRENT, },
[MMC_F_OMA_CURRENT_STATE] = { "modem.oma.current.state", "state", MMC_S_MODEM_OMA_CURRENT, },
diff --git a/cli/mmcli-output.h b/cli/mmcli-output.h
index 0c74159f..6fe045f4 100644
--- a/cli/mmcli-output.h
+++ b/cli/mmcli-output.h
@@ -175,21 +175,27 @@ typedef enum {
MMC_F_SIGNAL_REFRESH_RATE,
MMC_F_SIGNAL_CDMA1X_RSSI,
MMC_F_SIGNAL_CDMA1X_ECIO,
+ MMC_F_SIGNAL_CDMA1X_ERROR_RATE,
MMC_F_SIGNAL_EVDO_RSSI,
MMC_F_SIGNAL_EVDO_ECIO,
MMC_F_SIGNAL_EVDO_SINR,
MMC_F_SIGNAL_EVDO_IO,
+ MMC_F_SIGNAL_EVDO_ERROR_RATE,
MMC_F_SIGNAL_GSM_RSSI,
+ MMC_F_SIGNAL_GSM_ERROR_RATE,
MMC_F_SIGNAL_UMTS_RSSI,
MMC_F_SIGNAL_UMTS_RSCP,
MMC_F_SIGNAL_UMTS_ECIO,
+ MMC_F_SIGNAL_UMTS_ERROR_RATE,
MMC_F_SIGNAL_LTE_RSSI,
MMC_F_SIGNAL_LTE_RSRQ,
MMC_F_SIGNAL_LTE_RSRP,
MMC_F_SIGNAL_LTE_SNR,
+ MMC_F_SIGNAL_LTE_ERROR_RATE,
MMC_F_SIGNAL_5G_RSRQ,
MMC_F_SIGNAL_5G_RSRP,
MMC_F_SIGNAL_5G_SNR,
+ MMC_F_SIGNAL_5G_ERROR_RATE,
/* OMA section */
MMC_F_OMA_FEATURES,
MMC_F_OMA_CURRENT_TYPE,
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt
index f3a786cd..45d3eb60 100644
--- a/docs/reference/libmm-glib/libmm-glib-sections.txt
+++ b/docs/reference/libmm-glib/libmm-glib-sections.txt
@@ -1029,6 +1029,7 @@ mm_signal_get_io
mm_signal_get_rsrp
mm_signal_get_rsrq
mm_signal_get_snr
+mm_signal_get_error_rate
<SUBSECTION Private>
mm_signal_new
mm_signal_new_from_dictionary
@@ -1041,6 +1042,7 @@ mm_signal_set_io
mm_signal_set_rsrp
mm_signal_set_rsrq
mm_signal_set_snr
+mm_signal_set_error_rate
<SUBSECTION Standard>
MMSignalClass
MMSignalPrivate
diff --git a/libmm-glib/mm-signal.c b/libmm-glib/mm-signal.c
index 64127cd0..fbe44f97 100644
--- a/libmm-glib/mm-signal.c
+++ b/libmm-glib/mm-signal.c
@@ -10,7 +10,8 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details:
*
- * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ * Copyright (C) 2013-2021 Aleksander Morgado <aleksander@aleksander.es>
+ * Copyright (C) 2021 Intel Corporation
*/
#include <string.h>
@@ -31,14 +32,15 @@
G_DEFINE_TYPE (MMSignal, mm_signal, G_TYPE_OBJECT)
-#define PROPERTY_RSSI "rssi"
-#define PROPERTY_RSCP "rscp"
-#define PROPERTY_ECIO "ecio"
-#define PROPERTY_SINR "sinr"
-#define PROPERTY_IO "io"
-#define PROPERTY_RSRQ "rsrq"
-#define PROPERTY_RSRP "rsrp"
-#define PROPERTY_SNR "snr"
+#define PROPERTY_RSSI "rssi"
+#define PROPERTY_RSCP "rscp"
+#define PROPERTY_ECIO "ecio"
+#define PROPERTY_SINR "sinr"
+#define PROPERTY_IO "io"
+#define PROPERTY_RSRQ "rsrq"
+#define PROPERTY_RSRP "rsrp"
+#define PROPERTY_SNR "snr"
+#define PROPERTY_ERROR_RATE "error-rate"
struct _MMSignalPrivate {
gdouble rssi;
@@ -49,6 +51,7 @@ struct _MMSignalPrivate {
gdouble rsrq;
gdouble rsrp;
gdouble snr;
+ gdouble error_rate;
};
/*****************************************************************************/
@@ -322,6 +325,41 @@ mm_signal_set_snr (MMSignal *self,
/*****************************************************************************/
/**
+ * mm_signal_get_error_rate:
+ * @self: a #MMSignal.
+ *
+ * Gets the channel error rate (BER, BLER,... depends on the RAT), in
+ * percentage.
+ *
+ * Applicable to all RAT.
+ *
+ * Returns: the error rate, or %MM_SIGNAL_UNKNOWN if unknown.
+ *
+ * Since: 1.20
+ */
+gdouble
+mm_signal_get_error_rate (MMSignal *self)
+{
+ g_return_val_if_fail (MM_IS_SIGNAL (self), MM_SIGNAL_UNKNOWN);
+
+ return self->priv->error_rate;
+}
+
+/**
+ * mm_signal_set_error_rate: (skip)
+ */
+void
+mm_signal_set_error_rate (MMSignal *self,
+ gdouble value)
+{
+ g_return_if_fail (MM_IS_SIGNAL (self));
+
+ self->priv->error_rate = value;
+}
+
+/*****************************************************************************/
+
+/**
* mm_signal_get_dictionary: (skip)
*/
GVariant *
@@ -385,6 +423,12 @@ mm_signal_get_dictionary (MMSignal *self)
PROPERTY_SNR,
g_variant_new_double (self->priv->snr));
+ if (self->priv->error_rate != MM_SIGNAL_UNKNOWN)
+ g_variant_builder_add (&builder,
+ "{sv}",
+ PROPERTY_ERROR_RATE,
+ g_variant_new_double (self->priv->error_rate));
+
return g_variant_ref_sink (g_variant_builder_end (&builder));
}
@@ -412,6 +456,8 @@ consume_variant (MMSignal *self,
self->priv->rsrq = g_variant_get_double (value);
else if (g_str_equal (key, PROPERTY_SNR))
self->priv->snr = g_variant_get_double (value);
+ else if (g_str_equal (key, PROPERTY_ERROR_RATE))
+ self->priv->error_rate = g_variant_get_double (value);
else {
/* Set error */
g_set_error (error,
@@ -499,6 +545,7 @@ mm_signal_init (MMSignal *self)
self->priv->rsrq = MM_SIGNAL_UNKNOWN;
self->priv->rsrp = MM_SIGNAL_UNKNOWN;
self->priv->snr = MM_SIGNAL_UNKNOWN;
+ self->priv->error_rate = MM_SIGNAL_UNKNOWN;
}
static void
diff --git a/libmm-glib/mm-signal.h b/libmm-glib/mm-signal.h
index e970e729..b0950a79 100644
--- a/libmm-glib/mm-signal.h
+++ b/libmm-glib/mm-signal.h
@@ -10,7 +10,8 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details:
*
- * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ * Copyright (C) 2013-2021 Aleksander Morgado <aleksander@aleksander.es>
+ * Copyright (C) 2021 Intel Corporation
*/
#ifndef MM_SIGNAL_H
@@ -28,7 +29,7 @@ G_BEGIN_DECLS
/**
* MM_SIGNAL_UNKNOWN:
*
- * Identifier for an unknown signal value.
+ * Identifier for an unknown signal or error rate value.
*
* Since: 1.2
*/
@@ -65,14 +66,15 @@ struct _MMSignalClass {
GType mm_signal_get_type (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMSignal, g_object_unref)
-gdouble mm_signal_get_rssi (MMSignal *self);
-gdouble mm_signal_get_rscp (MMSignal *self);
-gdouble mm_signal_get_ecio (MMSignal *self);
-gdouble mm_signal_get_sinr (MMSignal *self);
-gdouble mm_signal_get_io (MMSignal *self);
-gdouble mm_signal_get_rsrq (MMSignal *self);
-gdouble mm_signal_get_rsrp (MMSignal *self);
-gdouble mm_signal_get_snr (MMSignal *self);
+gdouble mm_signal_get_rssi (MMSignal *self);
+gdouble mm_signal_get_rscp (MMSignal *self);
+gdouble mm_signal_get_ecio (MMSignal *self);
+gdouble mm_signal_get_sinr (MMSignal *self);
+gdouble mm_signal_get_io (MMSignal *self);
+gdouble mm_signal_get_rsrq (MMSignal *self);
+gdouble mm_signal_get_rsrp (MMSignal *self);
+gdouble mm_signal_get_snr (MMSignal *self);
+gdouble mm_signal_get_error_rate (MMSignal *self);
/*****************************************************************************/
/* ModemManager/libmm-glib/mmcli specific methods */
@@ -87,14 +89,15 @@ MMSignal *mm_signal_new (void);
MMSignal *mm_signal_new_from_dictionary (GVariant *dictionary,
GError **error);
-void mm_signal_set_rssi (MMSignal *self, gdouble value);
-void mm_signal_set_rscp (MMSignal *self, gdouble value);
-void mm_signal_set_ecio (MMSignal *self, gdouble value);
-void mm_signal_set_sinr (MMSignal *self, gdouble value);
-void mm_signal_set_io (MMSignal *self, gdouble value);
-void mm_signal_set_rsrq (MMSignal *self, gdouble value);
-void mm_signal_set_rsrp (MMSignal *self, gdouble value);
-void mm_signal_set_snr (MMSignal *self, gdouble value);
+void mm_signal_set_rssi (MMSignal *self, gdouble value);
+void mm_signal_set_rscp (MMSignal *self, gdouble value);
+void mm_signal_set_ecio (MMSignal *self, gdouble value);
+void mm_signal_set_sinr (MMSignal *self, gdouble value);
+void mm_signal_set_io (MMSignal *self, gdouble value);
+void mm_signal_set_rsrq (MMSignal *self, gdouble value);
+void mm_signal_set_rsrp (MMSignal *self, gdouble value);
+void mm_signal_set_snr (MMSignal *self, gdouble value);
+void mm_signal_set_error_rate (MMSignal *self, gdouble value);
#endif