diff options
author | Walter Hagstrom <walter.hagstrom@digi.com> | 2020-06-23 11:14:43 -0400 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2020-07-04 05:50:41 +0200 |
commit | 88923ffe3996fdef83dc13a7a4762855af77706d (patch) | |
tree | 38e1240a6a9db59c6f95d16a6316dba6e2ec7418 /cli | |
parent | 711b17278edecbc474418ecf95e7582f515711cb (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.c | 16 | ||||
-rw-r--r-- | cli/mmcli-output.c | 4 | ||||
-rw-r--r-- | cli/mmcli-output.h | 4 |
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, |