aboutsummaryrefslogtreecommitdiff
path: root/plugins/mbm
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-08-23 17:09:03 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-08-23 18:56:23 +0200
commit894ff1be689647425b76237515ffe2f50701693b (patch)
treecf03dedd3e071a4d0eb94b843de4d14e9289f482 /plugins/mbm
parent49f5bc98e2577a0e6c4d1c4f9695d344a0a38830 (diff)
mbm: ignore several unsolicited messages
Diffstat (limited to 'plugins/mbm')
-rw-r--r--plugins/mbm/mm-broadband-modem-mbm.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/mbm/mm-broadband-modem-mbm.c b/plugins/mbm/mm-broadband-modem-mbm.c
index b439df11..ce27102f 100644
--- a/plugins/mbm/mm-broadband-modem-mbm.c
+++ b/plugins/mbm/mm-broadband-modem-mbm.c
@@ -58,6 +58,9 @@ struct _MMBroadbandModemMbmPrivate {
gboolean have_emrdy;
GRegex *emrdy_regex;
+ GRegex *pacsp_regex;
+ GRegex *estksmenu_regex;
+ GRegex *emwi_regex;
};
/*****************************************************************************/
@@ -557,6 +560,22 @@ setup_ports (MMBroadbandModem *_self)
(MMAtSerialUnsolicitedMsgFn)emrdy_received,
self,
NULL);
+
+ /* Several unsolicited messages to always ignore... */
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->pacsp_regex,
+ NULL, NULL, NULL);
+
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->estksmenu_regex,
+ NULL, NULL, NULL);
+
+ mm_at_serial_port_add_unsolicited_msg_handler (
+ ports[i],
+ self->priv->emwi_regex,
+ NULL, NULL, NULL);
}
}
@@ -592,6 +611,12 @@ mm_broadband_modem_mbm_init (MMBroadbandModemMbm *self)
/* Prepare regular expressions to setup */
self->priv->emrdy_regex = g_regex_new ("\\r\\n\\*EMRDY: \\d\\r\\n",
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->pacsp_regex = g_regex_new ("\\r\\n\\+PACSP(\\d)\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
+ self->priv->estksmenu_regex = g_regex_new ("\\R\\*ESTKSMENU:.*\\R",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE | G_REGEX_MULTILINE | G_REGEX_NEWLINE_CRLF, G_REGEX_MATCH_NEWLINE_CRLF, NULL);
+ self->priv->emwi_regex = g_regex_new ("\\r\\n\\*EMWI: (\\d),(\\d).*\\r\\n",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
}
static void
@@ -600,6 +625,9 @@ finalize (GObject *object)
MMBroadbandModemMbm *self = MM_BROADBAND_MODEM_MBM (object);
g_regex_unref (self->priv->emrdy_regex);
+ g_regex_unref (self->priv->pacsp_regex);
+ g_regex_unref (self->priv->estksmenu_regex);
+ g_regex_unref (self->priv->emwi_regex);
G_OBJECT_CLASS (mm_broadband_modem_mbm_parent_class)->finalize (object);
}