Commit Graph

642 Commits

Author SHA1 Message Date
Marcel Holtmann 4f3b99e189 Use 3 read attempts when in non-blocking mode 2010-01-28 22:24:04 +01:00
Marcel Holtmann c9a37e4a9a Add new constructor for fully blocking operation 2010-01-28 22:05:44 +01:00
Denis Kenzior fb918d39ba Fix: Take care of uninitialized variable condition
In some (impossible) circumstances rbytes and err might be used
uninitialized.  Here we make a check that a read was actually attempted
before checking those variables.
2010-01-28 14:38:59 -06:00
Marcel Holtmann 839988cfa3 Limit the number of continues read attempts 2010-01-28 12:41:31 +01:00
Denis Kenzior aebda1ac94 Refactor: Reorder argument order
The order of arguments was a bit confusing, reorder them to make more
logical sense.
2010-01-20 14:21:22 -06:00
Zhenhua Zhang 7145edd3a4 Add gatutil.c to share common APIs with GAtServer
Add gatutil.c/h gat.h and move shared typedef and APIs into it.
So that they can be shared by GAtServer and GAtChat.
2010-01-20 14:13:57 -06:00
Denis Kenzior e8d18946b9 Fix: One more fix for disconnect detection
In situations where lots of data is generated by the remote side (e.g.
phonebook is being read) we can get our ring buffer filled up.  In this
case setting rbytes to zero first and then breaking out of the loop
leads to an erroneous disconnect detection.  The fix is to move setting
of rbytes after we know we still have some space.
2010-01-15 10:24:01 -06:00
Denis Kenzior aec5b8a44f Fix: Make remote disconnect detection work 2010-01-14 10:26:12 -06:00
Denis Kenzior 687c84a1ff Style: Various issues 2010-01-12 17:54:37 -06:00
Marcel Holtmann 144080e749 Update copyright information 2010-01-01 17:00:10 -08:00
Marcel Holtmann 2876e1aa64 Unifiy all GAtChat error labels 2009-12-24 07:06:23 -08:00
Denis Kenzior 76e2eb1afc Add legacy mode to gsmdial
Use ATD*99 variety for modems that don't support CGDATA.
2009-12-10 18:14:11 -06:00
Denis Kenzior a41e856cfd Fix: wrong abbreviation for option 2009-12-10 17:49:33 -06:00
Denis Kenzior 7a456aaf7a Add offmode to gsmdial 2009-12-10 17:43:57 -06:00
Denis Kenzior 62d8cf7aa3 Fix: Fix gsmdial to handle MD300
MD300 never sends a CGREG indication, we must query it after CGATT
2009-12-10 17:41:42 -06:00
Denis Kenzior 51e090a283 Add the beginnings of a GSM GPRS dialing app 2009-12-10 17:11:27 -06:00
Denis Kenzior 1d98c226b5 Add g_at_chat_unregister_all function 2009-12-02 19:10:08 -06:00
Denis Kenzior cf98ebb653 Add: g_at_chat_cancel_all function
This will cancel all commands currently queued.
2009-12-02 19:10:04 -06:00
Denis Kenzior 9b5b1057e4 Fix: Sometimes it is possible to cancel first cmd
Commands on the head of the queue can be canceled if none of its bytes
have actually been written to the modem.  This is tracked by
cmd_bytes_written variable.
2009-12-02 15:27:26 -06:00
Denis Kenzior 0d022d3057 Fix: Don't allow cancelation of command id 0 2009-12-02 15:26:56 -06:00
Denis Kenzior 48a61b6d06 Fix: Retry the wakeup command until the modem OKs
The calypso is weird where it doesn't actually wakeup on the first try,
we need to bang its head a few times until it responds
2009-11-26 07:44:25 -06:00
Yang Gu d9acd12fae Framework to support non-standard terminator 2009-11-24 18:06:20 +01:00
Denis Kenzior d6f5ac3767 Fix: Make sure we don't gobble up unsolicited 2009-11-23 19:56:24 -06:00
Andrzej Zaborowski 19187a0ee7 Properly skip over quoted values
Otherwise a left paren in a string can bring an obscure segfault.
2009-11-10 12:59:30 -06:00
Denis Kenzior f83bb9d7b7 Cleanup previous patch and update docs 2009-10-28 16:38:55 -05:00
Ryan Raasch c630300c99 Refactor: Capitalize g_at_tty option names 2009-10-28 16:36:33 -05:00
Zhenhua Zhang 525ca751bd Handle right bracket in next_unquoted_string 2009-10-23 13:39:41 -05:00
Ryan Raasch d1db227d20 Enable / Disable CREAD functionality in gattty 2009-10-21 19:06:43 -05:00
Denis Kenzior feda620c94 Fix: Stop crashing when unrefing chat in callback 2009-10-16 17:46:28 -05:00
Denis Kenzior 43e5152934 Fix: Do not leak chat references in case of error 2009-10-15 16:15:17 -05:00
Denis Kenzior 20dc22a6c4 Fix: Cleanup debug formats 2009-10-15 16:15:17 -05:00
Denis Kenzior d4d1617684 Fix: Do not send shutdown more than once 2009-10-15 16:15:17 -05:00
Denis Kenzior a8af38d209 Fix: Be more paranoid in checking DLC validity 2009-10-15 16:15:17 -05:00
Denis Kenzior 112d07e14e Refactor: Add driver model to GAtMux
GAtMux can now be made to work with multiple multiplexing protocols.
Currently on the 27.010 (07.10) Advanced and Basic modes are supported.
However, further protocol support can be added by providing the
necessary driver functions for GAtMux
2009-10-15 16:15:17 -05:00
Denis Kenzior bcf962c79c Forgot to add void* to get_data 2009-10-15 16:15:17 -05:00
Denis Kenzior 6bfd76123b Forgot to add driverdata functions 2009-10-15 16:15:17 -05:00
Denis Kenzior a4a54f6625 Refactor: Enable multiplexer drivers for GAtMux 2009-10-15 16:15:17 -05:00
Denis Kenzior 1575f2dcd1 Fix: Notify sources upon shutdown 2009-10-15 16:15:16 -05:00
Denis Kenzior 5826fc9c15 Add ability to open/close multiple DLCs 2009-10-15 16:15:16 -05:00
Denis Kenzior 4734ebcb46 Refactor: Add convenience method to start 0710 MUX
Use an existing GAtChat that has been setup appropriately to conver the
channel into a MUX
2009-10-15 16:15:16 -05:00
Denis Kenzior 9aa2182261 Add ability to retrieve the atchat IOChannel 2009-10-15 16:15:16 -05:00
Denis Kenzior 556186eb35 Remove more unused code 2009-10-15 16:15:16 -05:00
Denis Kenzior 4c5cf38ddb Fix: Use DISC on dlc 0 instead of CLD
Some MUX implementations do not seem to support Multiplexer Closedown
(CLD) command.  The standard specifies that sending DISC on DLC 0 should
act exactly the same as CLD.
2009-10-08 12:53:25 -05:00
Denis Kenzior e2415161de Fix: Make compile on some obscure platforms 2009-10-08 12:53:25 -05:00
Denis Kenzior f9db94cd73 Cleanup: Remove more dead code 2009-10-08 12:53:25 -05:00
Denis Kenzior efadf058c3 Cleanup: Get rid of unused member
ctx->server is never set to anything but 0.  This was intended to handle
server side functionality of the GSM 07.10 multiplexer, but never fully
implemented.  Since GAtMux is only really meant for the client side, we
can safely remove this dead code.
2009-10-08 12:53:25 -05:00
Denis Kenzior 273c8b06a0 Get rid of from_tty variant, use gattty instead 2009-10-08 12:53:25 -05:00
Denis Kenzior 7e82686e70 Fix: Make next_hexstring handle optional quotes
Ericsson MBM devices send CRSM information as hex strings, yet enclose
them in quotes which is not according to the standard.
2009-10-02 18:25:56 -05:00
Marcel Holtmann cfbc902287 Add support for switching to a different GAtSyntax at runtime 2009-10-02 12:29:02 +02:00
Marcel Holtmann 729056cb2e Fix missing include for close() function call 2009-10-02 03:25:35 +02:00
Denis Kenzior 6a78e402d3 Replace g_at_chat_new_from_tty with g_at_tty_open 2009-10-01 16:43:19 -05:00
Marcel Holtmann a37f0dbad6 Add skeleton for gsmdial test application 2009-09-24 17:39:09 -07:00
Zhenhua Zhang 78244d6190 Unref GIOChannel in g_at_chat_new_from_tty 2009-09-24 10:01:07 -07:00
Marcel Holtmann c4a5f3a483 Fix trailing whitespace 2009-09-18 13:56:03 -07:00
Denis Kenzior a1e67482bb Simplify cleanup logic 2009-09-18 13:33:22 -05:00
Marcel Holtmann 47b1d09b6e Hook up GAtMux with GSM 07.10 implementation 2009-09-08 09:04:11 +02:00
Marcel Holtmann 8de68799a5 Remove AT command and re-init support from GSM 07.10 2009-09-08 08:51:46 +02:00
Marcel Holtmann abc7a934ee Use NULL for init of function callbacks 2009-09-08 08:39:51 +02:00
Marcel Holtmann 3a0518ec27 Export the GSM 07.10 status flags 2009-09-08 08:26:48 +02:00
Denis Kenzior 2ee7f4a6f8 Fix g_at_chat_unref from command callback
The resources were being used after being freed in this case
2009-09-07 23:21:50 -05:00
Marcel Holtmann 094fdd4e71 Add functions for disconnect and debug handling 2009-09-06 00:31:26 +02:00
Marcel Holtmann c9ba0e7df5 Integrate the multiplexer into the AT chat library 2009-09-06 00:25:16 +02:00
Denis Kenzior 740312f8fb Add GSM Permissive parser 2009-09-04 20:37:48 -05:00
Denis Kenzior 1a1f7d34d2 Add unquoted string capability
This is completely broken according to the standard, but some vendors
use this in their "special" commands.
2009-09-03 23:20:22 -05:00
Denis Kenzior c9d704955c Add PDU listing support 2009-08-31 23:03:35 -05:00
Denis Kenzior 789610389e Fix a problem with CtrlZ echo
When a PDU is submitted and echoed by the modem, the CtrlZ character
is also echoed back.  Fix the parser to handle this case appropriately.
2009-08-29 10:47:16 -05:00
Marcel Holtmann 70aab2a826 Convert to fully non-recursive build system 2009-08-24 23:49:40 -07:00
Denis Kenzior 5e4ff5ced9 Ensure g_timeout_add source can be removed safely 2009-08-07 16:20:59 -05:00
Denis Kenzior a53559e88f Fix trailing whitespace 2009-08-06 17:24:23 -05:00
Denis Kenzior d2c106b4db Be more lenient for PDU lines 2009-08-06 17:05:52 -05:00
Denis Kenzior e3466d9b92 Remove unneeded declarations 2009-08-06 17:05:31 -05:00
Denis Kenzior 88b327cff5 Cleanup the debug support patch 2009-08-06 16:38:46 -05:00
Andres Salomon d66fd48bf9 gatchat: add debugging infrastructure
This patch adds debugging support to GAtChat (specifically of what's going
across the serial line).  Callbacks can be set via g_at_chat_set_debugging,
and that callback is called after any channel reads or writes.
2009-08-06 16:38:45 -05:00
Denis Kenzior 1418c2aec1 Make overflow code a bit better 2009-08-06 16:38:45 -05:00
Denis Kenzior 83820c88b2 Refactor GAtChat to accept user-provided parsers
Intended for really broken modems.  A default 27.007 compliant
parser is provided.
2009-08-06 16:38:39 -05:00
Denis Kenzior 239ab461f7 Fix refcounting in GAtChat 2009-08-06 15:42:23 -05:00
Denis Kenzior d4536b3d2b Fix a crash with unsolicited notifications
When a line comes in from the modem, we check against prefixes
in outstanding commands and unsolicited notifications.  If the
outstanding command has not yet been sent (cmd_bytes_written == 0),
we still check it resulting in access violation.
2009-07-21 14:43:33 -05:00
Denis Kenzior 86864c819c Add extra_pdu_crlf quirk 2009-07-15 15:51:33 -05:00
Denis Kenzior 78a646797c Add set / get flags for GAtChat 2009-07-15 15:51:28 -05:00
Denis Kenzior 3dcf25807a Fix modem wakeup handling 2009-07-15 11:50:04 -05:00
Denis Kenzior 22ad7dc7c5 Fix range handling 2009-07-15 11:49:06 -05:00
Denis Kenzior c74ea2093f Fix case where CMGS returns an error before pdu
Commands like CMGS might return an error before the entire command
has been submitted.  This results in gatchat stalling completely.
2009-07-07 14:34:00 -05:00
Denis Kenzior 595407f65b Fix uninitialized use of bufpos 2009-07-01 10:48:51 -05:00
Marcel Holtmann 08b81f37a1 Add support for opening TTYs directly 2009-06-30 12:53:26 -07:00
Denis Kenzior c91ae28018 Fixes to parser state when command prompt is used 2009-06-19 21:14:00 -05:00
Denis Kenzior b648a112f2 Improve string parsing code
Currently next_string and next_hexstring functions use a static
buffer in the iterator to store the value.  This value is clobbered
as soon as next_string or next_hexstring is called.  Instead,
we copy the entire line in iter_next and use it as a scratch buffer.
The only limitation is that lines of max 2048 are possible, however
these are limited to around this size by parts of the standard.
2009-06-16 16:38:24 -05:00
Denis Kenzior 69372e642e Add g_at_send_listing function 2009-06-16 16:38:19 -05:00
Denis Kenzior 2222e1e38d Additional fixes to multiline responses
The previous fix did not take into account the logic in have_line
function, which takes care of certain modems that do not prefix
their responses by <cr><lf> at all.  This fix should take both
into consideration
2009-06-08 22:45:03 -05:00
Denis Kenzior fafdda30b9 Fix multiline responses in GAtChat
The standard is a bit fuzzy on how multiline responses are returned
GAtChat assumed that they will always start with <cr><lf>, however
this doesn't seem to be correct.  Add a new state which is entered
when a response is obtained.  If <cr> is encountered, then it
is processed regularly, otherwise the parser assumes that the
next line is part of the multiline response
2009-06-08 14:08:18 -05:00
Andrzej Zaborowski 41afb58bd7 Add hex-encoded character string getter to AtChat 2009-05-26 18:15:53 -05:00
Denis Kenzior 64c4276473 Add AT chat library implementation 2009-05-06 14:42:54 -07:00
Marcel Holtmann 4ea27466bf Add directory for AT chat library 2009-05-06 14:42:51 -07:00