aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTeijo Kinnunen <teijo.kinnunen@uros.com>2021-03-12 09:32:35 +0200
committerTeijo Kinnunen <teijo.kinnunen@uros.com>2021-03-12 09:32:35 +0200
commit82a9f16fa46cd0f625ff2d39d4f4f4212e464f52 (patch)
tree4f71c667fe018219568def61ccc38e3429ef8101 /src
parente00e113dc9182a9e77aa529cbe5fbbd1c757dbf2 (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.
Diffstat (limited to 'src')
-rw-r--r--src/mm-base-sim.c35
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);
}