aboutsummaryrefslogtreecommitdiff
path: root/cli
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 /cli
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 'cli')
-rw-r--r--cli/mmcli-modem-signal.c16
-rw-r--r--cli/mmcli-output.c4
-rw-r--r--cli/mmcli-output.h4
3 files changed, 24 insertions, 0 deletions
diff --git a/cli/mmcli-modem-signal.c b/cli/mmcli-modem-signal.c
index 506d7370..7fa476c1 100644
--- a/cli/mmcli-modem-signal.c
+++ b/cli/mmcli-modem-signal.c
@@ -153,6 +153,9 @@ print_signal_info (void)
gchar *lte_rsrp = NULL;
gchar *lte_rsrq = NULL;
gchar *lte_snr = NULL;
+ gchar *nr5g_rsrp = NULL;
+ gchar *nr5g_rsrq = NULL;
+ gchar *nr5g_snr = NULL;
refresh_rate = g_strdup_printf ("%u", mm_modem_signal_get_rate (ctx->modem_signal));
@@ -204,6 +207,16 @@ print_signal_info (void)
lte_snr = g_strdup_printf ("%.2lf", value);
}
+ signal = mm_modem_signal_peek_nr5g (ctx->modem_signal);
+ if (signal) {
+ if ((value = mm_signal_get_rsrq (signal)) != MM_SIGNAL_UNKNOWN)
+ nr5g_rsrq = g_strdup_printf ("%.2lf", value);
+ if ((value = mm_signal_get_rsrp (signal)) != MM_SIGNAL_UNKNOWN)
+ nr5g_rsrp = g_strdup_printf ("%.2lf", value);
+ if ((value = mm_signal_get_snr (signal)) != MM_SIGNAL_UNKNOWN)
+ nr5g_snr = 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");
@@ -219,6 +232,9 @@ print_signal_info (void)
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_dump ();
}
diff --git a/cli/mmcli-output.c b/cli/mmcli-output.c
index 1265856d..2242de8f 100644
--- a/cli/mmcli-output.c
+++ b/cli/mmcli-output.c
@@ -57,6 +57,7 @@ static SectionInfo section_infos[] = {
[MMC_S_MODEM_SIGNAL_GSM] = { "GSM" },
[MMC_S_MODEM_SIGNAL_UMTS] = { "UMTS" },
[MMC_S_MODEM_SIGNAL_LTE] = { "LTE" },
+ [MMC_S_MODEM_SIGNAL_5G] = { "5G" },
[MMC_S_MODEM_OMA] = { "OMA" },
[MMC_S_MODEM_OMA_CURRENT] = { "Current session" },
[MMC_S_MODEM_OMA_PENDING] = { "Pending sessions" },
@@ -169,6 +170,9 @@ static FieldInfo field_infos[] = {
[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_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_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 2cd02b4b..e350b340 100644
--- a/cli/mmcli-output.h
+++ b/cli/mmcli-output.h
@@ -54,6 +54,7 @@ typedef enum {
MMC_S_MODEM_SIGNAL_GSM,
MMC_S_MODEM_SIGNAL_UMTS,
MMC_S_MODEM_SIGNAL_LTE,
+ MMC_S_MODEM_SIGNAL_5G,
MMC_S_MODEM_OMA,
MMC_S_MODEM_OMA_CURRENT,
MMC_S_MODEM_OMA_PENDING,
@@ -179,6 +180,9 @@ typedef enum {
MMC_F_SIGNAL_LTE_RSRQ,
MMC_F_SIGNAL_LTE_RSRP,
MMC_F_SIGNAL_LTE_SNR,
+ MMC_F_SIGNAL_5G_RSRQ,
+ MMC_F_SIGNAL_5G_RSRP,
+ MMC_F_SIGNAL_5G_SNR,
/* OMA section */
MMC_F_OMA_FEATURES,
MMC_F_OMA_CURRENT_TYPE,