From 40fa0f983ba95da1750c8bef6cdfa0271f4c4b44 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 17 Feb 2013 16:08:52 +0100 Subject: [PATCH] add command for getting signal strength info --- commands-nas.c | 43 +++++++++++++++++++++++++++++++++++++++++++ commands-nas.h | 6 ++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/commands-nas.c b/commands-nas.c index aef2745..81975b2 100644 --- a/commands-nas.c +++ b/commands-nas.c @@ -1,3 +1,5 @@ +#include "qmi-message.h" + static struct qmi_nas_set_system_selection_preference_request sel_req; #define cmd_nas_set_network_modes_cb no_cb @@ -43,3 +45,44 @@ cmd_nas_set_network_modes_prepare(struct qmi_dev *qmi, struct qmi_request *req, return QMI_CMD_REQUEST; } +static void +cmd_nas_get_signal_info_cb(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg) +{ + struct qmi_nas_get_signal_info_response res; + + qmi_parse_nas_get_signal_info_response(msg, &res); + + if (res.set.cdma_signal_strength) + printf("cdma_rssi=%d\ncdma_ecio=%d\n", + res.data.cdma_signal_strength.rssi, + res.data.cdma_signal_strength.ecio); + + if (res.set.hdr_signal_strength) + printf("hdr_rssi=%d\nhdr_ecio=%d\nhdr_io=%d\n", + res.data.hdr_signal_strength.rssi, + res.data.hdr_signal_strength.ecio, + res.data.hdr_signal_strength.io); + + if (res.set.gsm_signal_strength) + printf("gsm_rssi=%d\n", res.data.gsm_signal_strength); + + if (res.set.wcdma_signal_strength) + printf("wcdma_rssi=%d\nwcdma_ecio=%d\n", + res.data.wcdma_signal_strength.rssi, + res.data.wcdma_signal_strength.ecio); + + if (res.set.lte_signal_strength) + printf("lte_rssi=%d\nlte_rsrq=%d\nlte_rsrp=%d\nlte_snr=%d\n", + res.data.lte_signal_strength.rssi, + res.data.lte_signal_strength.rsrq, + res.data.lte_signal_strength.rsrp, + res.data.lte_signal_strength.snr); + +} + +static enum qmi_cmd_result +cmd_nas_get_signal_info_prepare(struct qmi_dev *qmi, struct qmi_request *req, struct qmi_msg *msg, char *arg) +{ + qmi_set_nas_get_signal_info_request(msg); + return QMI_CMD_REQUEST; +} diff --git a/commands-nas.h b/commands-nas.h index b3e0154..0cc11a1 100644 --- a/commands-nas.h +++ b/commands-nas.h @@ -1,7 +1,9 @@ #define __uqmi_nas_commands \ - __uqmi_command(nas_set_network_modes, set-network-modes, required, QMI_SERVICE_NAS) \ + __uqmi_command(nas_set_network_modes, set-network-modes, required, QMI_SERVICE_NAS), \ + __uqmi_command(nas_get_signal_info, get-signal-info, no, QMI_SERVICE_NAS) \ #define nas_helptext \ " --set-network-modes : Set preferred network mode (Syntax: [,,...])\n" \ - " Available modes: all, lte, umts, gsm, cdma, td-scdma\n" + " Available modes: all, lte, umts, gsm, cdma, td-scdma\n" \ + " --get-signal-info: Get signal strength info\n" -- 2.25.1