diff options
author | Teijo Kinnunen <teijo.kinnunen@uros.com> | 2021-03-12 09:32:35 +0200 |
---|---|---|
committer | Teijo Kinnunen <teijo.kinnunen@uros.com> | 2021-03-12 09:32:35 +0200 |
commit | 82a9f16fa46cd0f625ff2d39d4f4f4212e464f52 (patch) | |
tree | 4f71c667fe018219568def61ccc38e3429ef8101 | |
parent | e00e113dc9182a9e77aa529cbe5fbbd1c757dbf2 (diff) |
base-sim: select the desired format for loading preferred networks
Before invoking AT+CPOL? for loading preferred networks list from
SIM, AT+CPOL=,2 is executed to make sure that the returned
operator codes are in expected (numeric) format.
-rw-r--r-- | src/mm-base-sim.c | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/mm-base-sim.c b/src/mm-base-sim.c index 524a1c62..4d9be3ee 100644 --- a/src/mm-base-sim.c +++ b/src/mm-base-sim.c @@ -1761,6 +1761,34 @@ load_preferred_networks_finish (MMBaseSim *self, STR_REPLY_READY_FN (load_preferred_networks) static void +load_preferred_networks_set_format_ready (MMBaseModem *modem, + GAsyncResult *res, + GTask *task) +{ + MMBaseSim *self; + GError *error = NULL; + + self = g_task_get_source_object (task); + + /* Ignore error */ + mm_base_modem_at_command_finish (modem, res, &error); + if (error) { + mm_obj_dbg (self, "setting preferred network list format failed: '%s'", error->message); + g_error_free (error); + } + + mm_obj_dbg (self, "loading preferred networks..."); + + mm_base_modem_at_command ( + modem, + "+CPOL?", + 20, + FALSE, + (GAsyncReadyCallback)load_preferred_networks_command_ready, + task); +} + +static void load_preferred_networks_cpls_command_ready (MMBaseModem *modem, GAsyncResult *res, GTask *task) @@ -1777,14 +1805,15 @@ load_preferred_networks_cpls_command_ready (MMBaseModem *modem, g_error_free (error); } - mm_obj_dbg (self, "loading preferred networks..."); + mm_obj_dbg (self, "setting preferred networks format..."); + /* Request numeric MCCMNC format */ mm_base_modem_at_command ( modem, - "+CPOL?", + "+CPOL=,2", 20, FALSE, - (GAsyncReadyCallback)load_preferred_networks_command_ready, + (GAsyncReadyCallback)load_preferred_networks_set_format_ready, task); } |