Parser for AT commands and similar protocols

Dependencies:   BufferedSerial

Revision:
8:91515b168c70
Parent:
7:d1b193880af1
Child:
9:9bcb87c27208
--- a/ATParser.h	Mon Jul 20 18:23:54 2015 +0000
+++ b/ATParser.h	Mon Jul 20 20:56:30 2015 +0000
@@ -25,8 +25,22 @@
 
  
 /**
-* The ATParser class wraps information about the serial in use
-*/
+ * Parser class for parsing AT commands
+ *
+ * Here are some examples:
+ * @code
+ * ATParser at = ATParser(serial, "\r\n");
+ * int value;
+ * char buffer[100];
+ *
+ * at.send("AT") && at.recv("OK");
+ * at.send("AT+CWMODE=%d", 3) && at.recv("OK");
+ * at.send("AT+CWMODE?") && at.recv("+CWMODE:%d\r\nOK", &value);
+ * at.recv("+IPD,%d:", &value);
+ * at.read(buffer, value);
+ * at.recv("OK");
+ * @endcode
+ */
 class ATParser {
 private:
     // Serial information
@@ -48,8 +62,8 @@
     * @param timeout timeout of the connection
     * @param delimiter string of characters to use as line delimiters
     */
-    ATParser(BufferedSerial *serial, int buffer_size = 256, int timeout = 8000,
-             const char *delimiter = "\r\n") :
+    ATParser(BufferedSerial *serial, const char *delimiter = "\r\n", 
+             int buffer_size = 256, int timeout = 8000) :
             _serial(serial),
             _buffer_size(buffer_size) {
         _buffer = new char[buffer_size];
@@ -113,29 +127,6 @@
     */
     bool recv(const char *response, ...);
     bool vrecv(const char *response, va_list args);
-            
-    /**
-    * Issue AT commands
-    *
-    * Issues formatted commands and parses formatted responses.
-    * A command call is identical to a send call followed by a recv call.
-    * @see send, recv
-    *
-    * Here are some examples:
-    * @code
-    * at.command("AT", "OK");
-    * at.command("AT+CWMODE=%d", "OK", 3);
-    * at.command("AT+CWMODE?", "+CWMODE:%d\r\nOK", &result);
-    * @endcode
-    *
-    * @param command printf-like format string of command to send
-    * @param response scanf-like format string of response to expect
-    * @param ... all printf-like arguments to insert into command followed by 
-    *            all scanf-like arguments to extract from response
-    * @return true only if response is successfully matched
-    */
-    bool command(const char *command, const char *response, ...);
-    bool vcommand(const char *command, const char *response, va_list args);
     
     /** 
     * Write a single byte to the underlying stream