Parser class for parsing AT commands. More...
#include <ATCmdParser.h>
Public Member Functions | |
ATCmdParser (FileHandle *fh, const char *output_delimiter="\r", int buffer_size=256, int timeout=8000, bool debug=false) | |
Constructor. More... | |
~ATCmdParser () | |
Destructor. More... | |
void | set_timeout (int timeout) |
Allows timeout to be changed between commands. More... | |
void | setTimeout (int timeout) |
For backward compatibility. More... | |
void | set_delimiter (const char *output_delimiter) |
Sets string of characters to use as line delimiters. More... | |
void | setDelimiter (const char *output_delimiter) |
For backwards compatibility. More... | |
void | debug_on (uint8_t on) |
Allows traces from modem to be turned on or off. More... | |
void | debugOn (uint8_t on) |
For backward compatibility. More... | |
bool | send (const char *command,...) |
Sends an AT command. More... | |
bool | recv (const char *response,...) |
Receive an AT response. More... | |
int | putc (char c) |
Write a single byte to the underlying stream. More... | |
int | getc () |
Get a single byte from the underlying stream. More... | |
int | write (const char *data, int size) |
Write an array of bytes to the underlying stream. More... | |
int | read (char *data, int size) |
Read an array of bytes from the underlying stream. More... | |
int | printf (const char *format,...) |
Direct printf to underlying stream. More... | |
int | scanf (const char *format,...) |
Direct scanf on underlying stream. More... | |
void | oob (const char *prefix, mbed::Callback< void()> func) |
Attach a callback for out-of-band data. More... | |
void | flush () |
Flushes the underlying stream. More... | |
void | abort () |
Abort current recv. More... | |
bool | process_oob (void) |
Process out-of-band data. More... | |
Parser class for parsing AT commands.
Here are some examples:
Definition at line 57 of file ATCmdParser.h.
ATCmdParser | ( | FileHandle * | fh, |
const char * | output_delimiter = "\r" , |
||
int | buffer_size = 256 , |
||
int | timeout = 8000 , |
||
bool | debug = false |
||
) |
Constructor.
fh | A FileHandle to the digital interface, used for AT commands |
output_delimiter | End of command-line termination |
buffer_size | Size of internal buffer for transaction |
timeout | Timeout of the connection |
debug | Turns on/off debug output for AT commands |
Definition at line 94 of file ATCmdParser.h.
~ATCmdParser | ( | ) |
Destructor.
Definition at line 107 of file ATCmdParser.h.
void abort | ( | ) |
Abort current recv.
Can be called from out-of-band handler to interrupt the current recv operation.
void debug_on | ( | uint8_t | on | ) |
Allows traces from modem to be turned on or off.
on | Set as 1 to turn on traces and 0 to disable traces. |
Definition at line 176 of file ATCmdParser.h.
void debugOn | ( | uint8_t | on | ) |
For backward compatibility.
Allows traces from modem to be turned on or off
on | Set as 1 to turn on traces and 0 to disable traces. |
Definition at line 190 of file ATCmdParser.h.
void flush | ( | ) |
Flushes the underlying stream.
int getc | ( | ) |
Get a single byte from the underlying stream.
void oob | ( | const char * | prefix, |
mbed::Callback< void()> | func | ||
) |
Attach a callback for out-of-band data.
prefix | String on when to initiate callback |
func | Callback to call when string is read |
int printf | ( | const char * | format, |
... | |||
) |
Direct printf to underlying stream.
format | Format string to pass to printf |
... | Variable arguments to printf |
bool process_oob | ( | void | ) |
Process out-of-band data.
Process out-of-band data in the receive buffer. This function returns immediately if there is no data to process.
int putc | ( | char | c | ) |
Write a single byte to the underlying stream.
c | The byte to write |
int read | ( | char * | data, |
int | size | ||
) |
Read an array of bytes from the underlying stream.
data | The buffer for filling the read bytes |
size | Number of bytes to read |
bool recv | ( | const char * | response, |
... | |||
) |
Receive an AT response.
Receives a formatted response using scanf style formatting
Responses are parsed line at a time. Any received data that does not match the response is ignored until a timeout occurs.
response | scanf-like format string of response to expect |
... | all scanf-like arguments to extract from response |
int scanf | ( | const char * | format, |
... | |||
) |
Direct scanf on underlying stream.
format | Format string to pass to scanf |
... | Variable arguments to scanf |
bool send | ( | const char * | command, |
... | |||
) |
Sends an AT command.
Sends a formatted command using printf style formatting
command | printf-like format string of command to send which is appended with a newline |
... | all printf-like arguments to insert into command |
void set_delimiter | ( | const char * | output_delimiter | ) |
Sets string of characters to use as line delimiters.
output_delimiter | String of characters to use as line delimiters |
Definition at line 150 of file ATCmdParser.h.
void set_timeout | ( | int | timeout | ) |
Allows timeout to be changed between commands.
timeout | ATCmdParser APIs (read/write/send/recv ..etc) throw an error if no response is received in timeout duration |
Definition at line 123 of file ATCmdParser.h.
void setDelimiter | ( | const char * | output_delimiter | ) |
For backwards compatibility.
Please use set_delimiter(const char *) API only from now on. Sets string of characters to use as line delimiters
output_delimiter | string of characters to use as line delimiters |
Definition at line 166 of file ATCmdParser.h.
void setTimeout | ( | int | timeout | ) |
For backward compatibility.
Please use set_timeout(int) API only from now on. Allows timeout to be changed between commands
timeout | ATCmdParser APIs (read/write/send/recv ..etc) throw an error if no response is received in timeout duration |
Definition at line 140 of file ATCmdParser.h.
int write | ( | const char * | data, |
int | size | ||
) |
Write an array of bytes to the underlying stream.
data | The array of bytes to write |
size | Number of bytes to write |