static void get_signal_quality (MMModemCdma *modem, MMModemUIntFn callback, gpointer user_data) { MMCallbackInfo *info; MMAtSerialPort *port; MMModemCdma *parent_iface; port = mm_generic_cdma_get_best_at_port (MM_GENERIC_CDMA (modem), NULL); if (!port) { /* Let the superclass handle it */ parent_iface = g_type_interface_peek_parent (MM_MODEM_CDMA_GET_INTERFACE (modem)); parent_iface->get_signal_quality (MM_MODEM_CDMA (modem), callback, user_data); return; } info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data); /* Many Novatel CDMA cards don't report CSQ in standard 0 - 31 and the CSQ * reply doesn't appear to be in positive dBm either; instead try the custom * Novatel command for it. */ mm_at_serial_port_queue_command (port, "$NWRSSI", 3, get_rssi_done, info); }
static void uint_call_not_supported (MMModemGsmCard *self, MMModemUIntFn callback, gpointer user_data) { MMCallbackInfo *info; info = mm_callback_info_uint_new (MM_MODEM (self), callback, user_data); info->error = g_error_new_literal (MM_MODEM_ERROR, MM_MODEM_ERROR_OPERATION_NOT_SUPPORTED, "Operation not supported"); mm_callback_info_schedule (info); }
void mm_modem_icera_get_allowed_mode (MMModemIcera *self, MMModemUIntFn callback, gpointer user_data) { MMCallbackInfo *info; MMAtSerialPort *port; info = mm_callback_info_uint_new (MM_MODEM (self), callback, user_data); port = mm_generic_gsm_get_best_at_port (MM_GENERIC_GSM (self), &info->error); if (!port) { mm_callback_info_schedule (info); return; } mm_at_serial_port_queue_command (port, "%IPSYS?", 3, get_allowed_mode_done, info); }
static void get_access_technology (MMGenericGsm *modem, MMModemUIntFn callback, gpointer user_data) { MMAtSerialPort *port; MMCallbackInfo *info; info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data); port = mm_generic_gsm_get_best_at_port (modem, &info->error); if (!port) { mm_callback_info_schedule (info); return; } mm_at_serial_port_queue_command (port, "+PSRAT", 3, get_act_request_done, info); }
static void get_allowed_mode (MMGenericGsm *gsm, MMModemUIntFn callback, gpointer user_data) { MMCallbackInfo *info; MMAtSerialPort *port; info = mm_callback_info_uint_new (MM_MODEM (gsm), callback, user_data); port = mm_generic_gsm_get_best_at_port (gsm, &info->error); if (!port) { mm_callback_info_schedule (info); return; } mm_at_serial_port_queue_command (port, "AT+MODODR?", 3, get_allowed_mode_done, info); }