diff options
Diffstat (limited to 'README.txt')
-rw-r--r-- | README.txt | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..5ea8894 --- /dev/null +++ b/README.txt @@ -0,0 +1,54 @@ + + +1. GSMD api towards libgsmd + - provides api for other processes to interact with GSM subsystem + +2. GSMD api towards vendor-specific plugins + - implement vendor-specific AT commands + +3. libgsmd api towards applications + - wraps GSMD-libgsmd api into C functions that can be used by applications + + + +code flow in gsmd: + +- select loop detects data has arrived on user socket + - gsmd_usock_user_cb() + - if this is atcmd passthrough, + - alloc + fill in gsmd_atcmd + - atcmd_submit() + - append it to pending_atcmds + - mark interest of writing to UART + - if this is not passthrough + - do whatever handling, including enqueueing of atcmds +- select loop detects UART is marked writable + - atcmd_select_cb() + - iterate over list of pending_atcmds() + - write a particular atcmd to UART + - move atcmd to busy_atcmds +- select loop detects UART is marked readable + - atcmd_select_cb() + - read up to 1024 bytes into buffer + - llparse_string() + - llparse_byte() + - llparse_append() + - llp->cb == ml_parse() + - if this is not unsolicited + - call cmd->cb() + - alloc + fill ucmd reply + - add to finished_ucmds + - mark user sock writable + - unlink + free atcmd + - if this is unsolicited + - unsolicited_parse() + - usock_evt_send() + - alloc + fill ucmd reply + - add to finished_ucmds + - mark user sock writable +- select loop detects user sock writeability + - gsmd_usock_user_cb() + - iterate over finished_ucmds + - write ucmd + - unlink + free ucmd + |