diff options
-rw-r--r-- | data/qmi-service-nas.json | 32 | ||||
-rw-r--r-- | src/qmicli/qmicli-nas.c | 33 |
2 files changed, 62 insertions, 3 deletions
diff --git a/data/qmi-service-nas.json b/data/qmi-service-nas.json index dcdd03d..24d4ff0 100644 --- a/data/qmi-service-nas.json +++ b/data/qmi-service-nas.json @@ -1413,7 +1413,21 @@ "type" : "TLV", "since" : "1.0", "format" : "guint64", - "public-format" : "QmiNasTdScdmaBandPreference" } ], + "public-format" : "QmiNasTdScdmaBandPreference" }, + { "name" : "Extended LTE Band Preference", + "id" : "0x24", + "mandatory" : "no", + "type" : "TLV", + "since" : "1.20", + "format" : "sequence", + "contents" : [ { "name" : "Mask Low", + "format" : "guint64" }, + { "name" : "Mask Mid Low", + "format" : "guint64" }, + { "name" : "Mask Mid High", + "format" : "guint64" }, + { "name" : "Mask High", + "format" : "guint64" } ] } ], "output" : [ { "common-ref" : "Operation Result" } ] }, // ********************************************************************************* @@ -1506,7 +1520,21 @@ "format" : "guint16" }, { "name" : "Includes PCS Digit", "format" : "guint8", - "public-format" : "gboolean" } ] } ] }, + "public-format" : "gboolean" } ] }, + { "name" : "Extended LTE Band Preference", + "id" : "0x23", + "mandatory" : "no", + "type" : "TLV", + "since" : "1.20", + "format" : "sequence", + "contents" : [ { "name" : "Mask Low", + "format" : "guint64" }, + { "name" : "Mask Mid Low", + "format" : "guint64" }, + { "name" : "Mask Mid High", + "format" : "guint64" }, + { "name" : "Mask High", + "format" : "guint64" } ] } ] }, // ********************************************************************************* { "name" : "Get Operator Name", diff --git a/src/qmicli/qmicli-nas.c b/src/qmicli/qmicli-nas.c index 3ee9653..4cca61b 100644 --- a/src/qmicli/qmicli-nas.c +++ b/src/qmicli/qmicli-nas.c @@ -1953,7 +1953,7 @@ get_technology_preference_ready (QmiClientNas *client, static void get_system_selection_preference_ready (QmiClientNas *client, - GAsyncResult *res) + GAsyncResult *res) { QmiMessageNasGetSystemSelectionPreferenceOutput *output; GError *error = NULL; @@ -1969,6 +1969,7 @@ get_system_selection_preference_ready (QmiClientNas *client, QmiNasGsmWcdmaAcquisitionOrderPreference gsm_wcdma_acquisition_order_preference; guint16 mcc; guint16 mnc; + guint64 extended_lte_band_preference[4]; gboolean has_pcs_digit; output = qmi_client_nas_get_system_selection_preference_finish (client, res, &error); @@ -2031,6 +2032,36 @@ get_system_selection_preference_ready (QmiClientNas *client, g_free (str); } + if (qmi_message_nas_get_system_selection_preference_output_get_extended_lte_band_preference ( + output, + &extended_lte_band_preference[0], + &extended_lte_band_preference[1], + &extended_lte_band_preference[2], + &extended_lte_band_preference[3], + NULL)) { + guint i; + gboolean first = TRUE; + + g_print ("\tLTE band preference (extended): '"); + for (i = 0; i < G_N_ELEMENTS (extended_lte_band_preference); i++) { + guint j; + + for (j = 0; j < 64; j++) { + guint band; + + if (!(extended_lte_band_preference[i] & (((guint64) 1) << j))) + continue; + band = 1 + j + (i * 64); + if (first) { + g_print ("%u", band); + first = FALSE; + } else + g_print (", %u", band); + } + } + g_print ("'\n"); + } + if (qmi_message_nas_get_system_selection_preference_output_get_td_scdma_band_preference ( output, &td_scdma_band_preference, |