static void setup_ports (MMBroadbandModem *self) { MMAtSerialPort *ports[2]; guint i; /* Call parent's setup ports first always */ MM_BROADBAND_MODEM_CLASS (mm_broadband_modem_zte_icera_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)); /* Configure AT ports */ for (i = 0; i < 2; i++) { if (!ports[i]) continue; g_object_set (ports[i], MM_PORT_CARRIER_DETECT, FALSE, NULL); } /* Now reset the unsolicited messages we'll handle when enabled */ mm_common_zte_set_unsolicited_events_handlers (MM_BROADBAND_MODEM (self), MM_BROADBAND_MODEM_ZTE_ICERA (self)->priv->unsolicited_setup, FALSE); }
static void setup_ports (MMBroadbandModem *_self) { MMBroadbandModemMbm *self = MM_BROADBAND_MODEM_MBM (_self); MMPortSerialAt *ports[2]; guint i; /* Call parent's setup ports first always */ MM_BROADBAND_MODEM_CLASS (mm_broadband_modem_mbm_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)); /* Setup unsolicited handlers which should be always on */ for (i = 0; i < 2; i++) { if (!ports[i]) continue; /* The Ericsson modems always have a free AT command port, so we * don't need to flash the ports when disconnecting to get back to * command mode. F5521gw R2A07 resets port properties like echo when * flashed, leading to confusion. bgo #650740 */ g_object_set (G_OBJECT (ports[i]), MM_PORT_SERIAL_FLASH_OK, FALSE, NULL); mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->emrdy_regex, (MMPortSerialAtUnsolicitedMsgFn)emrdy_received, self, NULL); /* Several unsolicited messages to always ignore... */ mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->pacsp_regex, NULL, NULL, NULL); mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->estksmenu_regex, NULL, NULL, NULL); mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->estksms_regex, NULL, NULL, NULL); mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->emwi_regex, NULL, NULL, NULL); } /* Now reset the unsolicited messages we'll handle when enabled */ set_unsolicited_events_handlers (MM_BROADBAND_MODEM_MBM (self), FALSE); }
static void set_unsolicited_events_handlers (MMBroadbandModemOption *self, gboolean enable) { MMPortSerialAt *ports[2]; guint i; ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)); ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self)); /* Enable unsolicited events in given port */ for (i = 0; i < 2; i++) { if (!ports[i]) continue; /* Access technology related */ mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->_ossysi_regex, enable ? (MMPortSerialAtUnsolicitedMsgFn)option_ossys_tech_changed : NULL, enable ? self : NULL, NULL); mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->_octi_regex, enable ? (MMPortSerialAtUnsolicitedMsgFn)option_2g_tech_changed : NULL, enable ? self : NULL, NULL); mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->_ouwcti_regex, enable ? (MMPortSerialAtUnsolicitedMsgFn)option_3g_tech_changed : NULL, enable ? self : NULL, NULL); /* Signal quality related */ mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->_osigq_regex, enable ? (MMPortSerialAtUnsolicitedMsgFn)option_signal_changed : NULL, enable ? self : NULL, NULL); /* Other unsolicited events to always ignore */ if (!enable) mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->ignore_regex, NULL, NULL, NULL); } }
static void modem_3gpp_enable_unsolicited_events (MMIfaceModem3gpp *self, GAsyncReadyCallback callback, gpointer user_data) { mm_base_modem_at_sequence_full ( MM_BASE_MODEM (self), mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self)), unsolicited_enable_sequence, NULL, /* response_processor_context */ NULL, /* response_processor_context_free */ NULL, /* cancellable */ callback, user_data); }
static void set_unsolicited_events_handlers (MMBroadbandModemMbm *self, gboolean enable) { MMPortSerialAt *ports[2]; guint i; ports[0] = mm_base_modem_peek_port_primary (MM_BASE_MODEM (self)); ports[1] = mm_base_modem_peek_port_secondary (MM_BASE_MODEM (self)); /* Enable unsolicited events in given port */ for (i = 0; i < 2; i++) { if (!ports[i]) continue; /* Access technology related */ mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->erinfo_regex, enable ? (MMPortSerialAtUnsolicitedMsgFn)erinfo_received : NULL, enable ? self : NULL, NULL); /* Connection related */ mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->e2nap_regex, enable ? (MMPortSerialAtUnsolicitedMsgFn)e2nap_received : NULL, enable ? self : NULL, NULL); mm_port_serial_at_add_unsolicited_msg_handler ( ports[i], self->priv->e2nap_ext_regex, enable ? (MMPortSerialAtUnsolicitedMsgFn)e2nap_received : NULL, enable ? self : NULL, NULL); } }