diff options
author | Tambet Ingo <tambet@gmail.com> | 2008-10-22 16:34:34 +0300 |
---|---|---|
committer | Tambet Ingo <tambet@gmail.com> | 2008-10-22 16:34:34 +0300 |
commit | fd4e78fe920492099a45dbf42ba9d4f1e9b0899b (patch) | |
tree | 8f433119966bf3c1fac2e9ef0bec51142ddf91c9 | |
parent | 3201a1e6b7913577690ff059a4ac0d5fb7f23094 (diff) |
Add a default send delay to the serial class.
Show the correct error in case of write errors (EAGAIN).
-rw-r--r-- | src/mm-serial.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/mm-serial.c b/src/mm-serial.c index 63770090..04bea7dc 100644 --- a/src/mm-serial.c +++ b/src/mm-serial.c @@ -302,12 +302,17 @@ mm_serial_send_command (MMSerial *self, serial_debug ("-->", priv->command->str, -1); s = priv->command->str; - while (*s && eagain_count > 0) { + while (*s) { status = write (priv->fd, s, 1); if (status < 0) { - if (errno == EAGAIN) + if (errno == EAGAIN) { eagain_count--; - else { + if (eagain_count <= 0) { + g_set_error (error, MM_SERIAL_ERROR, MM_SERIAL_SEND_FAILED, + "Sending command failed: '%s'", strerror (errno)); + break; + } + } else { g_set_error (error, MM_SERIAL_ERROR, MM_SERIAL_SEND_FAILED, "Sending command failed: '%s'", strerror (errno)); break; @@ -702,7 +707,7 @@ mm_serial_init (MMSerial *self) priv->bits = 8; priv->parity = 'n'; priv->stopbits = 1; - priv->send_delay = 0; + priv->send_delay = 1000; priv->queue = g_queue_new (); priv->command = g_string_new_len ("AT", SERIAL_BUF_SIZE); |