diff options
-rw-r--r-- | plugins/mm-modem-novatel-gsm.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/plugins/mm-modem-novatel-gsm.c b/plugins/mm-modem-novatel-gsm.c index 4a846269..c8c28d1f 100644 --- a/plugins/mm-modem-novatel-gsm.c +++ b/plugins/mm-modem-novatel-gsm.c @@ -49,12 +49,26 @@ mm_modem_novatel_gsm_new (const char *device, /*****************************************************************************/ static void +dmat_callback2 (MMSerialPort *port, + GString *response, + GError *error, + gpointer user_data) +{ + mm_serial_port_close (port); +} + +static void dmat_callback (MMSerialPort *port, GString *response, GError *error, gpointer user_data) { - mm_serial_port_close (port); + if (error) { + /* Try it again */ + if (mm_serial_port_open (port, NULL)) + mm_serial_port_queue_command (port, "$NWDMAT=1", 2, dmat_callback2, NULL); + } else + mm_serial_port_close (port); } static gboolean |