diff options
author | Som_SP <somashekhar.puttagangaiah@intel.com> | 2021-10-20 21:59:45 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2021-10-20 22:07:24 +0200 |
commit | 9537261651a4f44fb0d0817bb902b225abb5e5a5 (patch) | |
tree | b7b60924dbb2da17298f3b1de9cd41e9c090eb6b | |
parent | 296b5185f51b5444468059919c3c5cf7ca14247f (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.c | 64 | ||||
-rw-r--r-- | cli/mmcli-output.c | 6 | ||||
-rw-r--r-- | cli/mmcli-output.h | 6 | ||||
-rw-r--r-- | docs/reference/libmm-glib/libmm-glib-sections.txt | 2 | ||||
-rw-r--r-- | libmm-glib/mm-signal.c | 65 | ||||
-rw-r--r-- | libmm-glib/mm-signal.h | 39 |
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 |