diff options
author | Felix Fietkau <nbd@openwrt.org> | 2013-02-17 16:08:52 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2013-02-17 16:08:52 +0100 |
commit | 40fa0f983ba95da1750c8bef6cdfa0271f4c4b44 (patch) | |
tree | 224ce2e883b172936975c058d132abe0815d44ff | |
parent | ba83df61a02c582edd655f046d7f714fb7a7b556 (diff) |
add command for getting signal strength info
-rw-r--r-- | commands-nas.c | 43 | ||||
-rw-r--r-- | 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 <modes>: Set preferred network mode (Syntax: <mode1>[,<mode2>,...])\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" |