aboutsummaryrefslogtreecommitdiff
path: root/src/mm-iface-modem-signal.c
diff options
context:
space:
mode:
authorWalter Hagstrom <walter.hagstrom@digi.com>2020-06-23 11:14:43 -0400
committerAleksander Morgado <aleksander@aleksander.es>2020-07-04 05:50:41 +0200
commit88923ffe3996fdef83dc13a7a4762855af77706d (patch)
tree38e1240a6a9db59c6f95d16a6316dba6e2ec7418 /src/mm-iface-modem-signal.c
parent711b17278edecbc474418ecf95e7582f515711cb (diff)
iface-modem-signal: added 5G signal information
Extended the ModemManager Signal interface to include 5G signal information for RSRP, RSRQ and SINR via libqmi. Also extended mmci to print 5G signal info.
Diffstat (limited to 'src/mm-iface-modem-signal.c')
-rw-r--r--src/mm-iface-modem-signal.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mm-iface-modem-signal.c b/src/mm-iface-modem-signal.c
index 03e4ce1f..447b7cf2 100644
--- a/src/mm-iface-modem-signal.c
+++ b/src/mm-iface-modem-signal.c
@@ -68,6 +68,7 @@ clear_values (MMIfaceModemSignal *self)
mm_gdbus_modem_signal_set_gsm (skeleton, NULL);
mm_gdbus_modem_signal_set_umts (skeleton, NULL);
mm_gdbus_modem_signal_set_lte (skeleton, NULL);
+ mm_gdbus_modem_signal_set_nr5g (skeleton, NULL);
g_object_unref (skeleton);
}
@@ -82,6 +83,7 @@ load_values_ready (MMIfaceModemSignal *self,
MMSignal *gsm = NULL;
MMSignal *umts = NULL;
MMSignal *lte = NULL;
+ MMSignal *nr5g = NULL;
MmGdbusModemSignal *skeleton;
if (!MM_IFACE_MODEM_SIGNAL_GET_INTERFACE (self)->load_values_finish (
@@ -92,6 +94,7 @@ load_values_ready (MMIfaceModemSignal *self,
&gsm,
&umts,
&lte,
+ &nr5g,
&error)) {
mm_obj_warn (self, "couldn't load extended signal information: %s", error->message);
g_error_free (error);
@@ -147,6 +150,15 @@ load_values_ready (MMIfaceModemSignal *self,
} else
mm_gdbus_modem_signal_set_lte (skeleton, NULL);
+ if (nr5g) {
+ dictionary = mm_signal_get_dictionary (nr5g);
+ mm_gdbus_modem_signal_set_nr5g (skeleton, dictionary);
+ g_variant_unref (dictionary);
+ g_object_unref (nr5g);
+ } else
+ mm_gdbus_modem_signal_set_nr5g (skeleton, NULL);
+
+
/* Flush right away */
g_dbus_interface_skeleton_flush (G_DBUS_INTERFACE_SKELETON (skeleton));