aboutsummaryrefslogtreecommitdiff
path: root/src/mm-generic-gsm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-generic-gsm.c')
-rw-r--r--src/mm-generic-gsm.c239
1 files changed, 122 insertions, 117 deletions
diff --git a/src/mm-generic-gsm.c b/src/mm-generic-gsm.c
index cab564ae..0d55431d 100644
--- a/src/mm-generic-gsm.c
+++ b/src/mm-generic-gsm.c
@@ -26,6 +26,7 @@
#include "mm-modem-simple.h"
#include "mm-errors.h"
#include "mm-callback-info.h"
+#include "mm-at-serial-port.h"
#include "mm-serial-parsers.h"
#include "mm-modem-helpers.h"
#include "mm-options.h"
@@ -83,27 +84,27 @@ typedef struct {
guint32 signal_quality;
gint cid;
- MMSerialPort *primary;
- MMSerialPort *secondary;
+ MMAtSerialPort *primary;
+ MMAtSerialPort *secondary;
MMPort *data;
} MMGenericGsmPrivate;
-static void get_registration_status (MMSerialPort *port, MMCallbackInfo *info);
-static void read_operator_code_done (MMSerialPort *port,
+static void get_registration_status (MMAtSerialPort *port, MMCallbackInfo *info);
+static void read_operator_code_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data);
-static void read_operator_name_done (MMSerialPort *port,
+static void read_operator_name_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data);
-static void reg_state_changed (MMSerialPort *port,
+static void reg_state_changed (MMAtSerialPort *port,
GMatchInfo *match_info,
gpointer user_data);
-static void get_reg_status_done (MMSerialPort *port,
+static void get_reg_status_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data);
@@ -196,7 +197,7 @@ error_for_unlock_required (const char *unlock)
}
static void
-pin_check_done (MMSerialPort *port,
+pin_check_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -255,7 +256,7 @@ mm_generic_gsm_check_pin (MMGenericGsm *modem,
priv = MM_GENERIC_GSM_GET_PRIVATE (modem);
info = mm_callback_info_new (MM_MODEM (modem), callback, user_data);
- mm_serial_port_queue_command (priv->primary, "+CPIN?", 3, pin_check_done, info);
+ mm_at_serial_port_queue_command (priv->primary, "+CPIN?", 3, pin_check_done, info);
}
/*****************************************************************************/
@@ -341,7 +342,7 @@ initial_pin_check_done (MMModem *modem, GError *error, gpointer user_data)
} else {
priv->pin_checked = TRUE;
if (close_port)
- mm_serial_port_close (priv->primary);
+ mm_serial_port_close (MM_SERIAL_PORT (priv->primary));
check_valid (MM_GENERIC_GSM (modem));
}
}
@@ -357,7 +358,7 @@ initial_pin_check (MMGenericGsm *self)
g_return_if_fail (priv->primary != NULL);
- if (mm_serial_port_open (priv->primary, &error))
+ if (mm_serial_port_open (MM_SERIAL_PORT (priv->primary), &error))
mm_generic_gsm_check_pin (self, initial_pin_check_done, GUINT_TO_POINTER (TRUE));
else {
g_warning ("%s: failed to open serial port: (%d) %s",
@@ -393,26 +394,26 @@ mm_generic_gsm_grab_port (MMGenericGsm *self,
g_return_val_if_fail (!strcmp (subsys, "net") || !strcmp (subsys, "tty"), FALSE);
port = mm_modem_base_add_port (MM_MODEM_BASE (self), subsys, name, ptype);
- if (port && MM_IS_SERIAL_PORT (port)) {
+ if (port && MM_IS_AT_SERIAL_PORT (port)) {
GPtrArray *array;
int i;
- mm_serial_port_set_response_parser (MM_SERIAL_PORT (port),
- mm_serial_parser_v1_parse,
- mm_serial_parser_v1_new (),
- mm_serial_parser_v1_destroy);
+ mm_at_serial_port_set_response_parser (MM_AT_SERIAL_PORT (port),
+ mm_serial_parser_v1_parse,
+ mm_serial_parser_v1_new (),
+ mm_serial_parser_v1_destroy);
/* Set up CREG unsolicited message handlers */
array = mm_gsm_creg_regex_get (FALSE);
for (i = 0; i < array->len; i++) {
regex = g_ptr_array_index (array, i);
- mm_serial_port_add_unsolicited_msg_handler (MM_SERIAL_PORT (port), regex, reg_state_changed, self, NULL);
+ mm_at_serial_port_add_unsolicited_msg_handler (MM_AT_SERIAL_PORT (port), regex, reg_state_changed, self, NULL);
}
mm_gsm_creg_regex_destroy (array);
if (ptype == MM_PORT_TYPE_PRIMARY) {
- priv->primary = MM_SERIAL_PORT (port);
+ priv->primary = MM_AT_SERIAL_PORT (port);
if (!priv->data) {
priv->data = port;
g_object_notify (G_OBJECT (self), MM_MODEM_DATA_DEVICE);
@@ -422,7 +423,7 @@ mm_generic_gsm_grab_port (MMGenericGsm *self,
initial_pin_check (self);
} else if (ptype == MM_PORT_TYPE_SECONDARY)
- priv->secondary = MM_SERIAL_PORT (port);
+ priv->secondary = MM_AT_SERIAL_PORT (port);
} else {
/* Net device (if any) is the preferred data port */
if (!priv->data || MM_IS_SERIAL_PORT (priv->data)) {
@@ -496,7 +497,7 @@ release_port (MMModem *modem, const char *subsys, const char *name)
}
static void
-reg_poll_response (MMSerialPort *port,
+reg_poll_response (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -512,7 +513,7 @@ periodic_poll_cb (gpointer user_data)
{
MMGenericGsm *self = MM_GENERIC_GSM (user_data);
MMGenericGsmPrivate *priv = MM_GENERIC_GSM_GET_PRIVATE (self);
- MMSerialPort *port = priv->primary;
+ MMAtSerialPort *port = priv->primary;
if (mm_port_get_connected (MM_PORT (priv->primary))) {
if (!priv->secondary)
@@ -523,15 +524,15 @@ periodic_poll_cb (gpointer user_data)
}
if (priv->creg_poll)
- mm_serial_port_queue_command (port, "+CREG?", 10, reg_poll_response, self);
+ mm_at_serial_port_queue_command (port, "+CREG?", 10, reg_poll_response, self);
if (priv->cgreg_poll)
- mm_serial_port_queue_command (port, "+CGREG?", 10, reg_poll_response, self);
+ mm_at_serial_port_queue_command (port, "+CGREG?", 10, reg_poll_response, self);
return TRUE; /* continue running */
}
static void
-cgreg1_done (MMSerialPort *port,
+cgreg1_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -551,13 +552,13 @@ cgreg1_done (MMSerialPort *port,
priv->poll_id = g_timeout_add_seconds (10, periodic_poll_cb, info->modem);
}
/* Success; get initial state */
- mm_serial_port_queue_command (port, "+CGREG?", 10, reg_poll_response, info->modem);
+ mm_at_serial_port_queue_command (port, "+CGREG?", 10, reg_poll_response, info->modem);
}
mm_callback_info_schedule (info);
}
static void
-cgreg2_done (MMSerialPort *port,
+cgreg2_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -570,10 +571,10 @@ cgreg2_done (MMSerialPort *port,
if (info->error) {
g_clear_error (&info->error);
/* Try CGREG=1 instead */
- mm_serial_port_queue_command (port, "+CGREG=1", 3, cgreg1_done, info);
+ mm_at_serial_port_queue_command (port, "+CGREG=1", 3, cgreg1_done, info);
} else {
/* Success; get initial state */
- mm_serial_port_queue_command (port, "+CGREG?", 10, reg_poll_response, info->modem);
+ mm_at_serial_port_queue_command (port, "+CGREG?", 10, reg_poll_response, info->modem);
/* All done */
mm_callback_info_schedule (info);
@@ -585,7 +586,7 @@ cgreg2_done (MMSerialPort *port,
}
static void
-creg1_done (MMSerialPort *port,
+creg1_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -605,10 +606,10 @@ creg1_done (MMSerialPort *port,
priv->poll_id = g_timeout_add_seconds (10, periodic_poll_cb, info->modem);
}
/* Success; get initial state */
- mm_serial_port_queue_command (port, "+CREG?", 10, reg_poll_response, info->modem);
+ mm_at_serial_port_queue_command (port, "+CREG?", 10, reg_poll_response, info->modem);
/* Now try to set up CGREG messages */
- mm_serial_port_queue_command (port, "+CGREG=2", 3, cgreg2_done, info);
+ mm_at_serial_port_queue_command (port, "+CGREG=2", 3, cgreg2_done, info);
} else {
/* Modem got removed */
mm_callback_info_schedule (info);
@@ -616,7 +617,7 @@ creg1_done (MMSerialPort *port,
}
static void
-creg2_done (MMSerialPort *port,
+creg2_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -628,13 +629,13 @@ creg2_done (MMSerialPort *port,
if (info->modem) {
if (info->error) {
g_clear_error (&info->error);
- mm_serial_port_queue_command (port, "+CREG=1", 3, creg1_done, info);
+ mm_at_serial_port_queue_command (port, "+CREG=1", 3, creg1_done, info);
} else {
/* Success; get initial state */
- mm_serial_port_queue_command (port, "+CREG?", 10, reg_poll_response, info->modem);
+ mm_at_serial_port_queue_command (port, "+CREG?", 10, reg_poll_response, info->modem);
/* Now try to set up CGREG messages */
- mm_serial_port_queue_command (port, "+CGREG=2", 3, cgreg2_done, info);
+ mm_at_serial_port_queue_command (port, "+CGREG=2", 3, cgreg2_done, info);
}
} else {
/* Modem got removed */
@@ -672,10 +673,10 @@ mm_generic_gsm_enable_complete (MMGenericGsm *self,
MM_MODEM_STATE_DISABLED,
MM_MODEM_STATE_REASON_NONE);
- if (priv->primary && mm_serial_port_is_open (priv->primary))
- mm_serial_port_close (priv->primary);
- if (priv->secondary && mm_serial_port_is_open (priv->secondary))
- mm_serial_port_close (priv->secondary);
+ if (priv->primary && mm_serial_port_is_open (MM_SERIAL_PORT (priv->primary)))
+ mm_serial_port_close (MM_SERIAL_PORT (priv->primary));
+ if (priv->secondary && mm_serial_port_is_open (MM_SERIAL_PORT (priv->secondary)))
+ mm_serial_port_close (MM_SERIAL_PORT (priv->secondary));
info->error = g_error_copy (error);
mm_callback_info_schedule (info);
@@ -691,7 +692,7 @@ mm_generic_gsm_enable_complete (MMGenericGsm *self,
* messages to the secondary port but not the primary.
*/
if (priv->secondary) {
- if (!mm_serial_port_open (priv->secondary, &error)) {
+ if (!mm_serial_port_open (MM_SERIAL_PORT (priv->secondary), &error)) {
if (mm_options_debug ()) {
g_warning ("%s: error opening secondary port: (%d) %s",
__func__,
@@ -702,14 +703,14 @@ mm_generic_gsm_enable_complete (MMGenericGsm *self,
}
/* Try to enable XON/XOFF flow control */
- mm_serial_port_queue_command (priv->primary, "+IFC=1,1", 3, NULL, NULL);
+ mm_at_serial_port_queue_command (priv->primary, "+IFC=1,1", 3, NULL, NULL);
/* Get allowed mode */
if (MM_GENERIC_GSM_GET_CLASS (self)->get_allowed_mode)
MM_GENERIC_GSM_GET_CLASS (self)->get_allowed_mode (self, get_allowed_mode_done, NULL);
/* Set up unsolicited registration notifications */
- mm_serial_port_queue_command (priv->primary, "+CREG=2", 3, creg2_done, info);
+ mm_at_serial_port_queue_command (priv->primary, "+CREG=2", 3, creg2_done, info);
}
static void
@@ -723,7 +724,7 @@ real_do_enable_power_up_done (MMGenericGsm *self,
}
static void
-enable_done (MMSerialPort *port,
+enable_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -742,7 +743,7 @@ enable_done (MMSerialPort *port,
}
static void
-init_done (MMSerialPort *port,
+init_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -758,15 +759,15 @@ init_done (MMSerialPort *port,
/* Ensure echo is off after the init command; some modems ignore the
* E0 when it's in the same like as ATZ (Option GIO322).
*/
- mm_serial_port_queue_command (port, "E0 +CMEE=1", 2, NULL, NULL);
+ mm_at_serial_port_queue_command (port, "E0 +CMEE=1", 2, NULL, NULL);
g_object_get (G_OBJECT (info->modem), MM_GENERIC_GSM_INIT_CMD_OPTIONAL, &cmd, NULL);
- mm_serial_port_queue_command (port, cmd, 2, NULL, NULL);
+ mm_at_serial_port_queue_command (port, cmd, 2, NULL, NULL);
g_free (cmd);
g_object_get (G_OBJECT (info->modem), MM_GENERIC_GSM_POWER_UP_CMD, &cmd, NULL);
if (cmd && strlen (cmd))
- mm_serial_port_queue_command (port, cmd, 5, enable_done, user_data);
+ mm_at_serial_port_queue_command (port, cmd, 5, enable_done, user_data);
else
enable_done (port, NULL, NULL, user_data);
g_free (cmd);
@@ -784,7 +785,7 @@ enable_flash_done (MMSerialPort *port, GError *error, gpointer user_data)
}
g_object_get (G_OBJECT (info->modem), MM_GENERIC_GSM_INIT_CMD, &cmd, NULL);
- mm_serial_port_queue_command (port, cmd, 3, init_done, user_data);
+ mm_at_serial_port_queue_command (MM_AT_SERIAL_PORT (port), cmd, 3, init_done, user_data);
g_free (cmd);
}
@@ -795,7 +796,7 @@ real_do_enable (MMGenericGsm *self, MMModemFn callback, gpointer user_data)
MMCallbackInfo *info;
info = mm_callback_info_new (MM_MODEM (self), callback, user_data);
- mm_serial_port_flash (priv->primary, 100, enable_flash_done, info);
+ mm_serial_port_flash (MM_SERIAL_PORT (priv->primary), 100, enable_flash_done, info);
}
static void
@@ -821,7 +822,7 @@ enable (MMModem *modem,
/* First, reset the previously used CID */
priv->cid = -1;
- if (!mm_serial_port_open (priv->primary, &error)) {
+ if (!mm_serial_port_open (MM_SERIAL_PORT (priv->primary), &error)) {
MMCallbackInfo *info;
g_assert (error);
@@ -838,7 +839,7 @@ enable (MMModem *modem,
}
static void
-disable_done (MMSerialPort *port,
+disable_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -849,7 +850,7 @@ disable_done (MMSerialPort *port,
if (!info->error) {
MMGenericGsm *self = MM_GENERIC_GSM (info->modem);
- mm_serial_port_close (port);
+ mm_serial_port_close (MM_SERIAL_PORT (port));
mm_modem_set_state (MM_MODEM (info->modem),
MM_MODEM_STATE_DISABLED,
MM_MODEM_STATE_REASON_NONE);
@@ -888,9 +889,9 @@ disable_flash_done (MMSerialPort *port,
g_object_get (G_OBJECT (info->modem), MM_GENERIC_GSM_POWER_DOWN_CMD, &cmd, NULL);
if (cmd && strlen (cmd))
- mm_serial_port_queue_command (port, cmd, 5, disable_done, user_data);
+ mm_at_serial_port_queue_command (MM_AT_SERIAL_PORT (port), cmd, 5, disable_done, user_data);
else
- disable_done (port, NULL, NULL, user_data);
+ disable_done (MM_AT_SERIAL_PORT (port), NULL, NULL, user_data);
g_free (cmd);
}
@@ -927,8 +928,8 @@ disable (MMModem *modem,
_internal_update_access_technology (self, MM_MODEM_GSM_ACCESS_TECH_UNKNOWN);
/* Close the secondary port if its open */
- if (priv->secondary && mm_serial_port_is_open (priv->secondary))
- mm_serial_port_close (priv->secondary);
+ if (priv->secondary && mm_serial_port_is_open (MM_SERIAL_PORT (priv->secondary)))
+ mm_serial_port_close (MM_SERIAL_PORT (priv->secondary));
info = mm_callback_info_new (modem, callback, user_data);
@@ -944,13 +945,13 @@ disable (MMModem *modem,
MM_MODEM_STATE_REASON_NONE);
if (mm_port_get_connected (MM_PORT (priv->primary)))
- mm_serial_port_flash (priv->primary, 1000, disable_flash_done, info);
+ mm_serial_port_flash (MM_SERIAL_PORT (priv->primary), 1000, disable_flash_done, info);
else
- disable_flash_done (priv->primary, NULL, info);
+ disable_flash_done (MM_SERIAL_PORT (priv->primary), NULL, info);
}
static void
-get_string_done (MMSerialPort *port,
+get_string_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -974,7 +975,7 @@ get_imei (MMModemGsmCard *modem,
MMCallbackInfo *info;
info = mm_callback_info_string_new (MM_MODEM (modem), callback, user_data);
- mm_serial_port_queue_command_cached (priv->primary, "+CGSN", 3, get_string_done, info);
+ mm_at_serial_port_queue_command_cached (priv->primary, "+CGSN", 3, get_string_done, info);
}
static void
@@ -986,7 +987,7 @@ get_imsi (MMModemGsmCard *modem,
MMCallbackInfo *info;
info = mm_callback_info_string_new (MM_MODEM (modem), callback, user_data);
- mm_serial_port_queue_command_cached (priv->primary, "+CIMI", 3, get_string_done, info);
+ mm_at_serial_port_queue_command_cached (priv->primary, "+CIMI", 3, get_string_done, info);
}
static void
@@ -1017,7 +1018,7 @@ strip_tag (const char *str, const char *tag)
}
static void
-get_version_done (MMSerialPort *port,
+get_version_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1034,7 +1035,7 @@ get_version_done (MMSerialPort *port,
}
static void
-get_model_done (MMSerialPort *port,
+get_model_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1049,7 +1050,7 @@ get_model_done (MMSerialPort *port,
}
static void
-get_manufacturer_done (MMSerialPort *port,
+get_manufacturer_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1076,9 +1077,9 @@ get_card_info (MMModem *modem,
G_CALLBACK (callback),
user_data);
- mm_serial_port_queue_command_cached (priv->primary, "+CGMI", 3, get_manufacturer_done, info);
- mm_serial_port_queue_command_cached (priv->primary, "+CGMM", 3, get_model_done, info);
- mm_serial_port_queue_command_cached (priv->primary, "+CGMR", 3, get_version_done, info);
+ mm_at_serial_port_queue_command_cached (priv->primary, "+CGMI", 3, get_manufacturer_done, info);
+ mm_at_serial_port_queue_command_cached (priv->primary, "+CGMM", 3, get_model_done, info);
+ mm_at_serial_port_queue_command_cached (priv->primary, "+CGMR", 3, get_version_done, info);
}
#define PIN_CLOSE_PORT_TAG "close-port"
@@ -1094,14 +1095,18 @@ pin_puk_recheck_done (MMModem *modem, GError *error, gpointer user_data)
*/
info->error = mm_modem_check_removed (modem, error);
- if (modem && close_port)
- mm_serial_port_close (MM_GENERIC_GSM_GET_PRIVATE (modem)->primary);
+ if (modem && close_port) {
+ MMSerialPort *port;
+
+ port = MM_SERIAL_PORT (MM_GENERIC_GSM_GET_PRIVATE (modem)->primary);
+ mm_serial_port_close (port);
+ }
mm_callback_info_schedule (info);
}
static void
-send_puk_done (MMSerialPort *port,
+send_puk_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1113,7 +1118,7 @@ send_puk_done (MMSerialPort *port,
info->error = g_error_copy (error);
mm_callback_info_schedule (info);
if (close_port)
- mm_serial_port_close (port);
+ mm_serial_port_close (MM_SERIAL_PORT (port));
return;
}
@@ -1143,11 +1148,11 @@ send_puk (MMModemGsmCard *modem,
"Cannot unlock device while connected");
mm_callback_info_schedule (info);
return;
- } else if (!mm_serial_port_is_open (priv->primary)) {
+ } else if (!mm_serial_port_is_open (MM_SERIAL_PORT (priv->primary))) {
/* Modem may not be enabled yet, which sometimes can't be done until
* the device has been unlocked.
*/
- if (!mm_serial_port_open (priv->primary, &info->error)) {
+ if (!mm_serial_port_open (MM_SERIAL_PORT (priv->primary), &info->error)) {
mm_callback_info_schedule (info);
return;
}
@@ -1157,12 +1162,12 @@ send_puk (MMModemGsmCard *modem,
}
command = g_strdup_printf ("+CPIN=\"%s\",\"%s\"", puk, pin);
- mm_serial_port_queue_command (connected ? priv->secondary : priv->primary, command, 3, send_puk_done, info);
+ mm_at_serial_port_queue_command (connected ? priv->secondary : priv->primary, command, 3, send_puk_done, info);
g_free (command);
}
static void
-send_pin_done (MMSerialPort *port,
+send_pin_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1174,7 +1179,7 @@ send_pin_done (MMSerialPort *port,
info->error = g_error_copy (error);
mm_callback_info_schedule (info);
if (close_port)
- mm_serial_port_close (port);
+ mm_serial_port_close (MM_SERIAL_PORT (port));
return;
}
@@ -1203,11 +1208,11 @@ send_pin (MMModemGsmCard *modem,
"Cannot unlock device while connected");
mm_callback_info_schedule (info);
return;
- } else if (!mm_serial_port_is_open (priv->primary)) {
+ } else if (!mm_serial_port_is_open (MM_SERIAL_PORT (priv->primary))) {
/* Modem may not be enabled yet, which sometimes can't be done until
* the device has been unlocked.
*/
- if (!mm_serial_port_open (priv->primary, &info->error)) {
+ if (!mm_serial_port_open (MM_SERIAL_PORT (priv->primary), &info->error)) {
mm_callback_info_schedule (info);
return;
}
@@ -1217,12 +1222,12 @@ send_pin (MMModemGsmCard *modem,
}
command = g_strdup_printf ("+CPIN=\"%s\"", pin);
- mm_serial_port_queue_command (connected ? priv->secondary : priv->primary, command, 3, send_pin_done, info);
+ mm_at_serial_port_queue_command (connected ? priv->secondary : priv->primary, command, 3, send_pin_done, info);
g_free (command);
}
static void
-enable_pin_done (MMSerialPort *port,
+enable_pin_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1247,12 +1252,12 @@ enable_pin (MMModemGsmCard *modem,
info = mm_callback_info_new (MM_MODEM (modem), callback, user_data);
command = g_strdup_printf ("+CLCK=\"SC\",%d,\"%s\"", enabled ? 1 : 0, pin);
- mm_serial_port_queue_command (priv->primary, command, 3, enable_pin_done, info);
+ mm_at_serial_port_queue_command (priv->primary, command, 3, enable_pin_done, info);
g_free (command);
}
static void
-change_pin_done (MMSerialPort *port,
+change_pin_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1277,7 +1282,7 @@ change_pin (MMModemGsmCard *modem,
info = mm_callback_info_new (MM_MODEM (modem), callback, user_data);
command = g_strdup_printf ("+CPWD=\"SC\",\"%s\",\"%s\"", old_pin, new_pin);
- mm_serial_port_queue_command (priv->primary, command, 3, change_pin_done, info);
+ mm_at_serial_port_queue_command (priv->primary, command, 3, change_pin_done, info);
g_free (command);
}
@@ -1351,7 +1356,7 @@ parse_operator (const char *reply)
}
static void
-read_operator_code_done (MMSerialPort *port,
+read_operator_code_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1367,7 +1372,7 @@ read_operator_code_done (MMSerialPort *port,
}
static void
-read_operator_name_done (MMSerialPort *port,
+read_operator_name_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1432,8 +1437,8 @@ mm_generic_gsm_set_reg_status (MMGenericGsm *modem,
if (status == MM_MODEM_GSM_NETWORK_REG_STATUS_HOME ||
status == MM_MODEM_GSM_NETWORK_REG_STATUS_ROAMING) {
- mm_serial_port_queue_command (priv->primary, "+COPS=3,2;+COPS?", 3, read_operator_code_done, modem);
- mm_serial_port_queue_command (priv->primary, "+COPS=3,0;+COPS?", 3, read_operator_name_done, modem);
+ mm_at_serial_port_queue_command (priv->primary, "+COPS=3,2;+COPS?", 3, read_operator_code_done, modem);
+ mm_at_serial_port_queue_command (priv->primary, "+COPS=3,0;+COPS?", 3, read_operator_name_done, modem);
mm_modem_gsm_network_get_signal_quality (MM_MODEM_GSM_NETWORK (modem), got_signal_quality, NULL);
} else
reg_info_updated (MM_GENERIC_GSM (modem), FALSE, 0, TRUE, NULL, TRUE, NULL);
@@ -1505,7 +1510,7 @@ reg_status_updated (MMGenericGsm *self, int new_value, GError **error)
}
static void
-reg_state_changed (MMSerialPort *port,
+reg_state_changed (MMAtSerialPort *port,
GMatchInfo *match_info,
gpointer user_data)
{
@@ -1630,7 +1635,7 @@ handle_reg_status_response (MMGenericGsm *self,
}
static void
-get_reg_status_done (MMSerialPort *port,
+get_reg_status_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1681,13 +1686,13 @@ reg_done:
}
static void
-get_registration_status (MMSerialPort *port, MMCallbackInfo *info)
+get_registration_status (MMAtSerialPort *port, MMCallbackInfo *info)
{
- mm_serial_port_queue_command (port, "+CREG?", 10, get_reg_status_done, info);
+ mm_at_serial_port_queue_command (port, "+CREG?", 10, get_reg_status_done, info);
}
static void
-register_done (MMSerialPort *port,
+register_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1774,7 +1779,7 @@ do_register (MMModemGsmNetwork *modem,
* the +COPS response is never received.
*/
mm_callback_info_ref (info);
- mm_serial_port_queue_command (priv->primary, command, 120, register_done, info);
+ mm_at_serial_port_queue_command (priv->primary, command, 120, register_done, info);
g_free (command);
}
@@ -1837,7 +1842,7 @@ mm_generic_gsm_connect_complete (MMGenericGsm *modem,
}
static void
-connect_report_done (MMSerialPort *port,
+connect_report_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1868,7 +1873,7 @@ connect_report_done (MMSerialPort *port,
}
static void
-connect_done (MMSerialPort *port,
+connect_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1880,7 +1885,7 @@ connect_done (MMSerialPort *port,
info->error = g_error_copy (error);
/* Try to get more information why it failed */
priv = MM_GENERIC_GSM_GET_PRIVATE (info->modem);
- mm_serial_port_queue_command (priv->primary, "+CEER", 3, connect_report_done, info);
+ mm_at_serial_port_queue_command (priv->primary, "+CEER", 3, connect_report_done, info);
} else
mm_generic_gsm_connect_complete (MM_GENERIC_GSM (info->modem), NULL, info);
}
@@ -1914,7 +1919,7 @@ connect (MMModem *modem,
} else
command = g_strconcat ("DT", number, NULL);
- mm_serial_port_queue_command (priv->primary, command, 60, connect_done, info);
+ mm_at_serial_port_queue_command (priv->primary, command, 60, connect_done, info);
g_free (command);
}
@@ -1948,7 +1953,7 @@ disconnect_done (MMModem *modem,
}
static void
-disconnect_cgact_done (MMSerialPort *port,
+disconnect_cgact_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -1986,7 +1991,7 @@ disconnect_flash_done (MMSerialPort *port,
command = g_strdup_printf ("+CGACT=0");
}
- mm_serial_port_queue_command (port, command, 3, disconnect_cgact_done, info);
+ mm_at_serial_port_queue_command (MM_AT_SERIAL_PORT (port), command, 3, disconnect_cgact_done, info);
g_free (command);
}
@@ -2000,7 +2005,7 @@ real_do_disconnect (MMGenericGsm *self,
MMCallbackInfo *info;
info = mm_callback_info_new (MM_MODEM (self), callback, user_data);
- mm_serial_port_flash (priv->primary, 1000, disconnect_flash_done, info);
+ mm_serial_port_flash (MM_SERIAL_PORT (priv->primary), 1000, disconnect_flash_done, info);
}
static void
@@ -2040,7 +2045,7 @@ gsm_network_scan_invoke (MMCallbackInfo *info)
}
static void
-scan_done (MMSerialPort *port,
+scan_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -2072,7 +2077,7 @@ scan (MMModemGsmNetwork *modem,
G_CALLBACK (callback),
user_data);
- mm_serial_port_queue_command (priv->primary, "+COPS=?", 120, scan_done, info);
+ mm_at_serial_port_queue_command (priv->primary, "+COPS=?", 120, scan_done, info);
}
/* SetApn */
@@ -2080,7 +2085,7 @@ scan (MMModemGsmNetwork *modem,
#define APN_CID_TAG "generic-gsm-cid"
static void
-set_apn_done (MMSerialPort *port,
+set_apn_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -2098,7 +2103,7 @@ set_apn_done (MMSerialPort *port,
}
static void
-cid_range_read (MMSerialPort *port,
+cid_range_read (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -2158,13 +2163,13 @@ cid_range_read (MMSerialPort *port,
mm_callback_info_set_data (info, APN_CID_TAG, GINT_TO_POINTER (cid), NULL);
command = g_strdup_printf ("+CGDCONT=%d,\"IP\",\"%s\"", cid, apn);
- mm_serial_port_queue_command (port, command, 3, set_apn_done, info);
+ mm_at_serial_port_queue_command (port, command, 3, set_apn_done, info);
g_free (command);
}
}
static void
-existing_apns_read (MMSerialPort *port,
+existing_apns_read (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -2231,7 +2236,7 @@ done:
mm_callback_info_schedule (info);
else {
/* APN not configured on the card. Get the allowed CID range */
- mm_serial_port_queue_command_cached (port, "+CGDCONT=?", 3, cid_range_read, info);
+ mm_at_serial_port_queue_command_cached (port, "+CGDCONT=?", 3, cid_range_read, info);
}
}
@@ -2248,7 +2253,7 @@ set_apn (MMModemGsmNetwork *modem,
mm_callback_info_set_data (info, "apn", g_strdup (apn), g_free);
/* Start by searching if the APN is already in card */
- mm_serial_port_queue_command (priv->primary, "+CGDCONT?", 3, existing_apns_read, info);
+ mm_at_serial_port_queue_command (priv->primary, "+CGDCONT?", 3, existing_apns_read, info);
}
/* GetSignalQuality */
@@ -2319,7 +2324,7 @@ mm_generic_gsm_update_signal_quality (MMGenericGsm *self, guint32 quality)
}
static void
-get_signal_quality_done (MMSerialPort *port,
+get_signal_quality_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -2379,7 +2384,7 @@ get_signal_quality (MMModemGsmNetwork *modem,
}
info = mm_callback_info_uint_new (MM_MODEM (modem), callback, user_data);
- mm_serial_port_queue_command (connected ? priv->secondary : priv->primary, "+CSQ", 3, get_signal_quality_done, info);
+ mm_at_serial_port_queue_command (connected ? priv->secondary : priv->primary, "+CSQ", 3, get_signal_quality_done, info);
}
/*****************************************************************************/
@@ -2520,7 +2525,7 @@ set_allowed_mode (MMModemGsmNetwork *net,
/* MMModemGsmSms interface */
static void
-sms_send_done (MMSerialPort *port,
+sms_send_done (MMAtSerialPort *port,
GString *response,
GError *error,
gpointer user_data)
@@ -2547,7 +2552,7 @@ sms_send (MMModemGsmSms *modem,
MMCallbackInfo *info;
char *command;
gboolean connected;
- MMSerialPort *port = NULL;
+ MMAtSerialPort *port = NULL;
info = mm_callback_info_new (MM_MODEM (modem), callback, user_data);
@@ -2566,16 +2571,16 @@ sms_send (MMModemGsmSms *modem,
}
/* FIXME: use the PDU mode instead */
- mm_serial_port_queue_command (port, "AT+CMGF=1", 3, NULL, NULL);
+ mm_at_serial_port_queue_command (port, "AT+CMGF=1", 3, NULL, NULL);
command = g_strdup_printf ("+CMGS=\"%s\"\r%s\x1a", number, text);
- mm_serial_port_queue_command (port, command, 10, sms_send_done, info);
+ mm_at_serial_port_queue_command (port, command, 10, sms_send_done, info);
g_free (command);
}
-MMSerialPort *
-mm_generic_gsm_get_port (MMGenericGsm *modem,
- MMPortType ptype)
+MMAtSerialPort *
+mm_generic_gsm_get_at_port (MMGenericGsm *modem,
+ MMPortType ptype)
{
g_return_val_if_fail (MM_IS_GENERIC_GSM (modem), NULL);
g_return_val_if_fail (ptype != MM_PORT_TYPE_UNKNOWN, NULL);