aboutsummaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorDan Williams <dan@ioncontrol.co>2025-04-01 09:53:46 -0500
committerDan Williams <dan@ioncontrol.co>2025-04-03 15:33:45 -0500
commit1eb177dd0ee0c92d251f41f902a5bd17ea9d7fe2 (patch)
tree6cb936097251b0173f2940412d7bec4a0232e011 /cli
parentceb1cd9a99dcf67860af85e0d6fee2badc362a39 (diff)
cli: report 5GNR RSSI in extended signal info
MBIM modems report RSSI and sometimes don't report more detailed RSRP and SNR info their MBIMex v2 signal-state replies. RSSI gets reported for every other access technology, and while it's not as good a signal indicator as the others, we might as well show something. Signed-off-by: Dan Williams <dan@ioncontrol.co>
Diffstat (limited to 'cli')
-rw-r--r--cli/mmcli-modem-signal.c4
-rw-r--r--cli/mmcli-output.c1
-rw-r--r--cli/mmcli-output.h1
3 files changed, 6 insertions, 0 deletions
diff --git a/cli/mmcli-modem-signal.c b/cli/mmcli-modem-signal.c
index 7d1e2ff6..ce23e7c1 100644
--- a/cli/mmcli-modem-signal.c
+++ b/cli/mmcli-modem-signal.c
@@ -166,6 +166,7 @@ print_signal_info (void)
gchar *lte_rsrq = NULL;
gchar *lte_snr = NULL;
gchar *lte_error_rate = NULL;
+ gchar *nr5g_rssi = NULL;
gchar *nr5g_rsrp = NULL;
gchar *nr5g_rsrq = NULL;
gchar *nr5g_snr = NULL;
@@ -235,6 +236,8 @@ print_signal_info (void)
signal = mm_modem_signal_peek_nr5g (ctx->modem_signal);
if (signal) {
+ if ((value = mm_signal_get_rssi (signal)) != MM_SIGNAL_UNKNOWN)
+ nr5g_rssi = g_strdup_printf ("%.2lf", value);
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)
@@ -267,6 +270,7 @@ print_signal_info (void)
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_RSSI, nr5g_rssi, "dBm");
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");
diff --git a/cli/mmcli-output.c b/cli/mmcli-output.c
index 440d6059..c5a10b84 100644
--- a/cli/mmcli-output.c
+++ b/cli/mmcli-output.c
@@ -202,6 +202,7 @@ static FieldInfo field_infos[] = {
[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_RSSI] = { "modem.signal.5g.rssi", "rssi", MMC_S_MODEM_SIGNAL_5G, },
[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, },
diff --git a/cli/mmcli-output.h b/cli/mmcli-output.h
index a9f050d8..700b6800 100644
--- a/cli/mmcli-output.h
+++ b/cli/mmcli-output.h
@@ -214,6 +214,7 @@ typedef enum {
MMC_F_SIGNAL_LTE_RSRP,
MMC_F_SIGNAL_LTE_SNR,
MMC_F_SIGNAL_LTE_ERROR_RATE,
+ MMC_F_SIGNAL_5G_RSSI,
MMC_F_SIGNAL_5G_RSRQ,
MMC_F_SIGNAL_5G_RSRP,
MMC_F_SIGNAL_5G_SNR,