250
251
mm_serial_queue_command (serial, "+CREG=1", 25, init_do_wait4creg, user_data);
255
init_do_wait4enap_loop (MMSerial *serial, gpointer user_data);
259
check_enap_done (MMSerial *serial,
264
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
265
MMModemMbmPrivate *priv = MM_MODEM_MBM_GET_PRIVATE (info->modem);
266
const char *reply = response->str;
268
priv->enap_completed = 0;
271
info->error = g_error_copy (error);
273
if (g_str_has_prefix (reply, "*ENAP: ")) {
275
if (sscanf (reply + 7, "%d", &bEnabled)) {
277
priv->enap_completed = 1;
281
mm_serial_flash (serial, 1000, init_do_wait4enap_loop, user_data);
287
init_do_wait4enap_loop (MMSerial *serial, gpointer user_data)
289
MMCallbackInfo *info = (MMCallbackInfo *) user_data;
290
MMModemMbmPrivate *priv = MM_MODEM_MBM_GET_PRIVATE(info->modem);
297
if (!priv->bModemEnabled) {
298
mm_callback_info_schedule (info); /* TODO: is this the best way to free structures */
302
if (!priv->enap_completed) {
303
g_debug("still waiting for enap to complete\n");
304
mm_serial_queue_command (serial, "*enap?", 3, check_enap_done, info);
307
g_debug("registration completed\n");
308
do_register_done (serial, "", NULL, info);
309
// mm_serial_queue_command(serial, "AT*ENAP=1,1", 20, do_register_done, info);
254
315
* ENAP=1,1 should be done after a successful registration
274
mm_serial_queue_command (serial, "*ENAP=1,1", 25, do_register_done, user_data);
335
mm_serial_queue_command (serial, "*ENAP=1,1", 25, check_enap_done, user_data);
364
mm_serial_queue_command(serial, "AT*ENAP=1,1", 20, do_register_done, info);
425
mm_serial_queue_command(serial, "AT*ENAP=1,1", 20, check_enap_done, info);