mbm: receive E2NAP unsolicited messages
This commit is contained in:
@@ -57,6 +57,8 @@ struct _MMBroadbandModemMbmPrivate {
|
|||||||
|
|
||||||
gboolean have_emrdy;
|
gboolean have_emrdy;
|
||||||
|
|
||||||
|
GRegex *e2nap_regex;
|
||||||
|
GRegex *e2nap_ext_regex;
|
||||||
GRegex *emrdy_regex;
|
GRegex *emrdy_regex;
|
||||||
GRegex *pacsp_regex;
|
GRegex *pacsp_regex;
|
||||||
GRegex *estksmenu_regex;
|
GRegex *estksmenu_regex;
|
||||||
@@ -392,6 +394,14 @@ modem_power_up (MMIfaceModem *_self,
|
|||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* Setup/Cleanup unsolicited events (3GPP interface) */
|
/* Setup/Cleanup unsolicited events (3GPP interface) */
|
||||||
|
|
||||||
|
static void
|
||||||
|
e2nap_received (MMAtSerialPort *port,
|
||||||
|
GMatchInfo *info,
|
||||||
|
MMBroadbandModemMbm *self)
|
||||||
|
{
|
||||||
|
/* Just receive them from now */
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
erinfo_received (MMAtSerialPort *port,
|
erinfo_received (MMAtSerialPort *port,
|
||||||
GMatchInfo *info,
|
GMatchInfo *info,
|
||||||
@@ -454,6 +464,20 @@ set_unsolicited_events_handlers (MMBroadbandModemMbm *self,
|
|||||||
enable ? (MMAtSerialUnsolicitedMsgFn)erinfo_received : NULL,
|
enable ? (MMAtSerialUnsolicitedMsgFn)erinfo_received : NULL,
|
||||||
enable ? self : NULL,
|
enable ? self : NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
/* Connection related */
|
||||||
|
mm_at_serial_port_add_unsolicited_msg_handler (
|
||||||
|
ports[i],
|
||||||
|
self->priv->e2nap_regex,
|
||||||
|
enable ? (MMAtSerialUnsolicitedMsgFn)e2nap_received : NULL,
|
||||||
|
enable ? self : NULL,
|
||||||
|
NULL);
|
||||||
|
mm_at_serial_port_add_unsolicited_msg_handler (
|
||||||
|
ports[i],
|
||||||
|
self->priv->e2nap_ext_regex,
|
||||||
|
enable ? (MMAtSerialUnsolicitedMsgFn)e2nap_received : NULL,
|
||||||
|
enable ? self : NULL,
|
||||||
|
NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -770,6 +794,10 @@ mm_broadband_modem_mbm_init (MMBroadbandModemMbm *self)
|
|||||||
self->priv->network_mode = MBM_NETWORK_MODE_ANY;
|
self->priv->network_mode = MBM_NETWORK_MODE_ANY;
|
||||||
|
|
||||||
/* Prepare regular expressions to setup */
|
/* Prepare regular expressions to setup */
|
||||||
|
self->priv->e2nap_regex = g_regex_new ("\\r\\n\\*E2NAP: (\\d)\\r\\n",
|
||||||
|
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
|
||||||
|
self->priv->e2nap_ext_regex = g_regex_new ("\\r\\n\\*E2NAP: (\\d),.*\\r\\n",
|
||||||
|
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
|
||||||
self->priv->emrdy_regex = g_regex_new ("\\r\\n\\*EMRDY: \\d\\r\\n",
|
self->priv->emrdy_regex = g_regex_new ("\\r\\n\\*EMRDY: \\d\\r\\n",
|
||||||
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
|
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
|
||||||
self->priv->pacsp_regex = g_regex_new ("\\r\\n\\+PACSP(\\d)\\r\\n",
|
self->priv->pacsp_regex = g_regex_new ("\\r\\n\\+PACSP(\\d)\\r\\n",
|
||||||
@@ -787,6 +815,8 @@ finalize (GObject *object)
|
|||||||
{
|
{
|
||||||
MMBroadbandModemMbm *self = MM_BROADBAND_MODEM_MBM (object);
|
MMBroadbandModemMbm *self = MM_BROADBAND_MODEM_MBM (object);
|
||||||
|
|
||||||
|
g_regex_unref (self->priv->e2nap_regex);
|
||||||
|
g_regex_unref (self->priv->e2nap_ext_regex);
|
||||||
g_regex_unref (self->priv->emrdy_regex);
|
g_regex_unref (self->priv->emrdy_regex);
|
||||||
g_regex_unref (self->priv->pacsp_regex);
|
g_regex_unref (self->priv->pacsp_regex);
|
||||||
g_regex_unref (self->priv->estksmenu_regex);
|
g_regex_unref (self->priv->estksmenu_regex);
|
||||||
|
Reference in New Issue
Block a user