diff options
author | Marc Murphy <marc.murphy@marcm.co.uk> | 2015-06-18 08:28:28 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2015-06-18 09:21:08 -0700 |
commit | 669cfda50c57b80878daef39738ccee4c1453f1c (patch) | |
tree | ca15e86d2cf1ff0b329b1077cf364782b58a6d09 | |
parent | c3822282f663f7e429982d808b8c599236608915 (diff) |
huawei: update to correct secondary port request and regex masking for ^POSITION
-rw-r--r-- | plugins/huawei/mm-broadband-modem-huawei.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c index ce1fb6fd..b8db7c32 100644 --- a/plugins/huawei/mm-broadband-modem-huawei.c +++ b/plugins/huawei/mm-broadband-modem-huawei.c @@ -101,6 +101,8 @@ struct _MMBroadbandModemHuaweiPrivate { GRegex *pdpdeact_regex; GRegex *ndisend_regex; GRegex *rfswitch_regex; + GRegex *position_regex; + GRegex *posend_regex; FeatureSupport ndisdup_support; FeatureSupport rfswitch_support; @@ -133,7 +135,7 @@ get_at_port_list (MMBroadbandModemHuawei *self) out = g_list_append (out, port); /* Secondary */ - port = mm_base_modem_get_port_primary (MM_BASE_MODEM (self)); + port = mm_base_modem_get_port_secondary (MM_BASE_MODEM (self)); if (port) out = g_list_append (out, port); @@ -3634,6 +3636,14 @@ set_ignored_unsolicited_events_handlers (MMBroadbandModemHuawei *self) port, self->priv->rfswitch_regex, NULL, NULL, NULL); + mm_port_serial_at_add_unsolicited_msg_handler ( + port, + self->priv->position_regex, + NULL, NULL, NULL); + mm_port_serial_at_add_unsolicited_msg_handler ( + port, + self->priv->posend_regex, + NULL, NULL, NULL); } g_list_free_full (ports, (GDestroyNotify)g_object_unref); @@ -3745,6 +3755,10 @@ mm_broadband_modem_huawei_init (MMBroadbandModemHuawei *self) G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); self->priv->rfswitch_regex = g_regex_new ("\\r\\n\\^RFSWITCH:.+\\r\\n", G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); + self->priv->position_regex = g_regex_new ("\\r\\n\\^POSITION:.+\\r\\n", + G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); + self->priv->posend_regex = g_regex_new ("\\r\\n\\^POSEND:.+\\r\\n", + G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, NULL); self->priv->ndisdup_support = FEATURE_SUPPORT_UNKNOWN; self->priv->rfswitch_support = FEATURE_SUPPORT_UNKNOWN; @@ -3780,6 +3794,8 @@ finalize (GObject *object) g_regex_unref (self->priv->pdpdeact_regex); g_regex_unref (self->priv->ndisend_regex); g_regex_unref (self->priv->rfswitch_regex); + g_regex_unref (self->priv->position_regex); + g_regex_unref (self->priv->posend_regex); if (self->priv->syscfg_supported_modes) g_array_unref (self->priv->syscfg_supported_modes); |