diff options
-rw-r--r-- | plugins/huawei/mm-plugin-huawei.c | 2 | ||||
-rw-r--r-- | plugins/longcheer/mm-plugin-longcheer.c | 1 | ||||
-rw-r--r-- | plugins/sierra/mm-plugin-sierra.c | 1 | ||||
-rw-r--r-- | plugins/x22x/mm-plugin-x22x.c | 1 | ||||
-rw-r--r-- | src/mm-at-serial-port.c | 25 | ||||
-rw-r--r-- | src/mm-at-serial-port.h | 2 | ||||
-rw-r--r-- | src/mm-base-modem-at.c | 5 | ||||
-rw-r--r-- | src/mm-port-probe.c | 1 |
8 files changed, 29 insertions, 9 deletions
diff --git a/plugins/huawei/mm-plugin-huawei.c b/plugins/huawei/mm-plugin-huawei.c index f699f2b4..05e25965 100644 --- a/plugins/huawei/mm-plugin-huawei.c +++ b/plugins/huawei/mm-plugin-huawei.c @@ -213,6 +213,7 @@ huawei_custom_init_step (HuaweiCustomInitContext *ctx) ctx->port, "AT^CURC=0", 3, + FALSE, /* raw */ ctx->cancellable, (MMAtSerialResponseFn)curc_ready, ctx); @@ -232,6 +233,7 @@ huawei_custom_init_step (HuaweiCustomInitContext *ctx) ctx->port, "AT^GETPORTMODE", 3, + FALSE, /* raw */ ctx->cancellable, (MMAtSerialResponseFn)getportmode_ready, ctx); diff --git a/plugins/longcheer/mm-plugin-longcheer.c b/plugins/longcheer/mm-plugin-longcheer.c index 4b94a590..08a9eb46 100644 --- a/plugins/longcheer/mm-plugin-longcheer.c +++ b/plugins/longcheer/mm-plugin-longcheer.c @@ -130,6 +130,7 @@ longcheer_custom_init_step (LongcheerCustomInitContext *ctx) ctx->port, "AT+GMR", 3, + FALSE, /* raw */ ctx->cancellable, (MMAtSerialResponseFn)gmr_ready, ctx); diff --git a/plugins/sierra/mm-plugin-sierra.c b/plugins/sierra/mm-plugin-sierra.c index bdca0650..99aebf80 100644 --- a/plugins/sierra/mm-plugin-sierra.c +++ b/plugins/sierra/mm-plugin-sierra.c @@ -124,6 +124,7 @@ sierra_custom_init_step (SierraCustomInitContext *ctx) ctx->port, "AT+GCAP", 3, + FALSE, /* raw */ ctx->cancellable, (MMAtSerialResponseFn)gcap_ready, ctx); diff --git a/plugins/x22x/mm-plugin-x22x.c b/plugins/x22x/mm-plugin-x22x.c index 08a71231..22977771 100644 --- a/plugins/x22x/mm-plugin-x22x.c +++ b/plugins/x22x/mm-plugin-x22x.c @@ -129,6 +129,7 @@ x22x_custom_init_step (X22xCustomInitContext *ctx) ctx->port, "AT+GMR", 3, + FALSE, /* raw */ ctx->cancellable, (MMAtSerialResponseFn)gmr_ready, ctx); diff --git a/src/mm-at-serial-port.c b/src/mm-at-serial-port.c index 38ec38e4..840f38a0 100644 --- a/src/mm-at-serial-port.c +++ b/src/mm-at-serial-port.c @@ -281,7 +281,7 @@ parse_unsolicited (MMSerialPort *port, GByteArray *response) /*****************************************************************************/ static GByteArray * -at_command_to_byte_array (const char *command) +at_command_to_byte_array (const char *command, gboolean is_raw) { GByteArray *buf; int cmdlen; @@ -291,14 +291,19 @@ at_command_to_byte_array (const char *command) cmdlen = strlen (command); buf = g_byte_array_sized_new (cmdlen + 3); - /* Make sure there's an AT in the front */ - if (!g_str_has_prefix (command, "AT")) - g_byte_array_append (buf, (const guint8 *) "AT", 2); + if (!is_raw) { + /* Make sure there's an AT in the front */ + if (!g_str_has_prefix (command, "AT")) + g_byte_array_append (buf, (const guint8 *) "AT", 2); + } + g_byte_array_append (buf, (const guint8 *) command, cmdlen); - /* Make sure there's a trailing carriage return */ - if (command[cmdlen - 1] != '\r') - g_byte_array_append (buf, (const guint8 *) "\r", 1); + if (!is_raw) { + /* Make sure there's a trailing carriage return */ + if (command[cmdlen - 1] != '\r') + g_byte_array_append (buf, (const guint8 *) "\r", 1); + } return buf; } @@ -307,6 +312,7 @@ void mm_at_serial_port_queue_command (MMAtSerialPort *self, const char *command, guint32 timeout_seconds, + gboolean is_raw, GCancellable *cancellable, MMAtSerialResponseFn callback, gpointer user_data) @@ -317,7 +323,7 @@ mm_at_serial_port_queue_command (MMAtSerialPort *self, g_return_if_fail (MM_IS_AT_SERIAL_PORT (self)); g_return_if_fail (command != NULL); - buf = at_command_to_byte_array (command); + buf = at_command_to_byte_array (command, is_raw); g_return_if_fail (buf != NULL); mm_serial_port_queue_command (MM_SERIAL_PORT (self), @@ -333,6 +339,7 @@ void mm_at_serial_port_queue_command_cached (MMAtSerialPort *self, const char *command, guint32 timeout_seconds, + gboolean is_raw, GCancellable *cancellable, MMAtSerialResponseFn callback, gpointer user_data) @@ -343,7 +350,7 @@ mm_at_serial_port_queue_command_cached (MMAtSerialPort *self, g_return_if_fail (MM_IS_AT_SERIAL_PORT (self)); g_return_if_fail (command != NULL); - buf = at_command_to_byte_array (command); + buf = at_command_to_byte_array (command, is_raw); g_return_if_fail (buf != NULL); mm_serial_port_queue_command_cached (MM_SERIAL_PORT (self), diff --git a/src/mm-at-serial-port.h b/src/mm-at-serial-port.h index 8ed8db9d..682e2382 100644 --- a/src/mm-at-serial-port.h +++ b/src/mm-at-serial-port.h @@ -93,6 +93,7 @@ void mm_at_serial_port_set_response_parser (MMAtSerialPort *self, void mm_at_serial_port_queue_command (MMAtSerialPort *self, const char *command, guint32 timeout_seconds, + gboolean is_raw, GCancellable *cancellable, MMAtSerialResponseFn callback, gpointer user_data); @@ -100,6 +101,7 @@ void mm_at_serial_port_queue_command (MMAtSerialPort *self, void mm_at_serial_port_queue_command_cached (MMAtSerialPort *self, const char *command, guint32 timeout_seconds, + gboolean is_raw, GCancellable *cancellable, MMAtSerialResponseFn callback, gpointer user_data); diff --git a/src/mm-base-modem-at.c b/src/mm-base-modem-at.c index 657d1df2..00dea480 100644 --- a/src/mm-base-modem-at.c +++ b/src/mm-base-modem-at.c @@ -201,6 +201,7 @@ at_sequence_parse_response (MMAtSerialPort *port, ctx->port, ctx->current->command, ctx->current->timeout, + FALSE, ctx->cancellable, (MMAtSerialResponseFn)at_sequence_parse_response, ctx); @@ -209,6 +210,7 @@ at_sequence_parse_response (MMAtSerialPort *port, ctx->port, ctx->current->command, ctx->current->timeout, + FALSE, ctx->cancellable, (MMAtSerialResponseFn)at_sequence_parse_response, ctx); @@ -288,6 +290,7 @@ mm_base_modem_at_sequence_full (MMBaseModem *self, ctx->port, ctx->current->command, ctx->current->timeout, + FALSE, ctx->cancellable, (MMAtSerialResponseFn)at_sequence_parse_response, ctx); @@ -535,6 +538,7 @@ mm_base_modem_at_command_full (MMBaseModem *self, port, command, timeout, + FALSE, ctx->cancellable, (MMAtSerialResponseFn)at_command_parse_response, ctx); @@ -543,6 +547,7 @@ mm_base_modem_at_command_full (MMBaseModem *self, port, command, timeout, + FALSE, ctx->cancellable, (MMAtSerialResponseFn)at_command_parse_response, ctx); diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c index 08468a75..58fcb301 100644 --- a/src/mm-port-probe.c +++ b/src/mm-port-probe.c @@ -583,6 +583,7 @@ serial_probe_at (MMPortProbe *self) MM_AT_SERIAL_PORT (task->serial), task->at_commands->command, task->at_commands->timeout, + FALSE, task->at_probing_cancellable, (MMAtSerialResponseFn)serial_probe_at_parse_response, self); |