Check for PIN after activating the modem

This commit is contained in:
Marcel Holtmann 2010-04-11 18:23:24 +02:00
parent 3187e46799
commit 156904535e
1 changed files with 13 additions and 4 deletions

View File

@ -425,7 +425,7 @@ static void register_cb(gboolean ok, GAtResult *result, gpointer user_data)
static void start_dial(gboolean ok, GAtResult *result, gpointer user_data)
{
if (!ok) {
g_print("Turning on the modem failed\n");
g_print("Checking PIN status failed\n");
exit(1);
}
@ -436,6 +436,16 @@ static void start_dial(gboolean ok, GAtResult *result, gpointer user_data)
register_cb, NULL, NULL);
}
static void check_pin(gboolean ok, GAtResult *result, gpointer user_data)
{
if (!ok) {
g_print("Turning on the modem failed\n");
exit(1);
}
g_at_chat_send(control, "AT+CPIN?", NULL, start_dial, NULL, NULL);
}
static void check_mode(gboolean ok, GAtResult *result, gpointer user_data)
{
GAtResultIter iter;
@ -452,11 +462,11 @@ static void check_mode(gboolean ok, GAtResult *result, gpointer user_data)
g_print("Current modem mode is %d\n", oldmode);
if (oldmode == 1) {
start_dial(ok, result, user_data);
check_pin(ok, result, user_data);
return;
}
g_at_chat_send(control, "AT+CFUN=1", NULL, start_dial, NULL, NULL);
g_at_chat_send(control, "AT+CFUN=1", NULL, check_pin, NULL, NULL);
}
static int open_serial()
@ -651,7 +661,6 @@ int main(int argc, char **argv)
event_loop = g_main_loop_new(NULL, FALSE);
g_at_chat_send(control, "ATE0Q0V1", NULL, NULL, NULL, NULL);
g_at_chat_send(control, "AT+CPIN?", NULL, NULL, NULL, NULL);
g_at_chat_send(control, "AT+CFUN?", cfun_prefix,
check_mode, NULL, NULL);