fibocom: Ignore +SIM READY URC
This URC is emitted when the SIM phonebook is initialized. We don't care about that but don't want this URC to mess with the initialization sequence either. Signed-off-by: Sven Schwermer <sven.schwermer@disruptive-technologies.com>
This commit is contained in:
committed by
Aleksander Morgado
parent
eebdbc45b5
commit
bbf1b272e6
@@ -34,7 +34,8 @@ typedef enum {
|
||||
} FeatureSupport;
|
||||
|
||||
struct _MMBroadbandModemFibocomPrivate {
|
||||
FeatureSupport gtrndis_support;
|
||||
FeatureSupport gtrndis_support;
|
||||
GRegex *sim_ready_regex;
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -188,6 +189,31 @@ modem_reset (MMIfaceModem *self,
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
setup_ports (MMBroadbandModem *_self)
|
||||
{
|
||||
MMBroadbandModemFibocom *self = (MM_BROADBAND_MODEM_FIBOCOM (_self));
|
||||
MMPortSerialAt *ports[2];
|
||||
guint i;
|
||||
|
||||
/* Call parent's setup ports first always */
|
||||
MM_BROADBAND_MODEM_CLASS (mm_broadband_modem_fibocom_parent_class)->setup_ports (_self);
|
||||
|
||||
ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self));
|
||||
ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self));
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (ports); i++) {
|
||||
if (!ports[i])
|
||||
continue;
|
||||
mm_port_serial_at_add_unsolicited_msg_handler (
|
||||
ports[i],
|
||||
self->priv->sim_ready_regex,
|
||||
NULL, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
MMBroadbandModemFibocom *
|
||||
mm_broadband_modem_fibocom_new (const gchar *device,
|
||||
const gchar **drivers,
|
||||
@@ -214,6 +240,19 @@ mm_broadband_modem_fibocom_init (MMBroadbandModemFibocom *self)
|
||||
MMBroadbandModemFibocomPrivate);
|
||||
|
||||
self->priv->gtrndis_support = FEATURE_SUPPORT_UNKNOWN;
|
||||
|
||||
self->priv->sim_ready_regex = g_regex_new ("\\r\\n\\+SIM READY\\r\\n",
|
||||
G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
MMBroadbandModemFibocom *self = MM_BROADBAND_MODEM_FIBOCOM (object);
|
||||
|
||||
g_regex_unref (self->priv->sim_ready_regex);
|
||||
|
||||
G_OBJECT_CLASS (mm_broadband_modem_fibocom_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -228,6 +267,13 @@ iface_modem_init (MMIfaceModem *iface)
|
||||
static void
|
||||
mm_broadband_modem_fibocom_class_init (MMBroadbandModemFibocomClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
MMBroadbandModemClass *broadband_modem_class = MM_BROADBAND_MODEM_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (G_OBJECT_CLASS (klass),
|
||||
sizeof (MMBroadbandModemFibocomPrivate));
|
||||
|
||||
/* Virtual methods */
|
||||
object_class->finalize = finalize;
|
||||
broadband_modem_class->setup_ports = setup_ports;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user