test

Dependencies:   ATParser

Fork of ESP8266 by NetworkSocketAPI

Revision:
18:11f2f6bd2e97
Parent:
17:8b541b19f391
--- a/ESP8266.h	Thu Feb 18 16:08:29 2016 -0600
+++ b/ESP8266.h	Thu Feb 18 16:11:03 2016 -0600
@@ -18,55 +18,39 @@
 #define ESP8266_H
 
 #include "ATParser.h"
-#include <string>
 
 /** ESP8266Interface class.
     This is an interface to a ESP8266 radio.
  */
-class ESP8266 
+class ESP8266
 {
 public:
-    ESP8266(PinName tx, PinName rx, uint8_t debug = 0);
-    
+    ESP8266(PinName tx, PinName rx, bool debug=false);
+
     /**
-    * Test startup of ESP8266
+    * Startup the ESP8266
     *
-    * @return true only if ESP8266 AT system working correctly
+    * @param mode mode of WIFI 1-client, 2-host, 3-both
+    * @return true only if ESP8266 was setup correctly
     */
-    bool startup(void);
-    
+    bool startup(int mode);
+
     /**
     * Reset ESP8266
     *
-    * @return true only if ESP8266 resets successfully 
+    * @return true only if ESP8266 resets successfully
     */
     bool reset(void);
-    
-    /**
-    * Set WiFi mode
-    *
-    * @param mode mode of WiFi 1-client, 2-host, 3-both
-    * @return true only if ESP8266 enables/disables DHCP successfully
-    */
-    bool wifiMode(int mode);
-    
-    /**
-    * Enable/Disable multiple connections
-    *
-    * @param enabled multiple connections enabled when true
-    * @return true only if ESP8266 enables/disables multiple connections successfully
-    */
-    bool multipleConnections(bool enabled);
-    
+
     /**
     * Enable/Disable DHCP
     *
+    * @param enabled DHCP enabled when true
     * @param mode mode of DHCP 0-softAP, 1-station, 2-both
-    * @param enabled DHCP enabled when true
     * @return true only if ESP8266 enables/disables DHCP successfully
     */
-    bool dhcp(int mode, bool enabled);
-    
+    bool dhcp(bool enabled, int mode);
+
     /**
     * Connect ESP8266 to AP
     *
@@ -75,40 +59,46 @@
     * @return true only if ESP8266 is connected successfully
     */
     bool connect(const char *ap, const char *passPhrase);
-    
+
     /**
     * Disconnect ESP8266 from AP
     *
     * @return true only if ESP8266 is disconnected successfully
     */
     bool disconnect(void);
-    
+
     /**
     * Get the IP address of ESP8266
     *
-    * @param ip data placeholder for IP address
-    * @return true only if ESP8266 is assigned an IP address
+    * @return null-teriminated IP address or null if no IP address is assigned
     */
-    bool getIPAddress(char* ip);
-    
+    const char *getIPAddress(void);
+
+    /**
+    * Get the MAC address of ESP8266
+    *
+    * @return null-terminated MAC address or null if no MAC address is assigned
+    */
+    const char *getMACAddress(void);
+
     /**
     * Check if ESP8266 is conenected
     *
     * @return true only if the chip has an IP address
     */
     bool isConnected(void);
-    
+
     /**
-    * Open a socketed connection 
+    * Open a socketed connection
     *
-    * @param sockType the type of socket to open "UDP" or "TCP"
+    * @param type the type of socket to open "UDP" or "TCP"
     * @param id id to give the new socket, valid 0-4
     * @param port port to open connection with
-    * @param addr the IP address of the destination 
+    * @param addr the IP address of the destination
     * @return true only if socket opened successfully
     */
-    bool openSocket(string sockType, int id, int port, const char* addr);
-    
+    bool open(const char *type, int id, const char* addr, int port);
+
     /**
     * Sends data to an open socket
     *
@@ -117,17 +107,18 @@
     * @param amount amount of data to be sent - max 1024
     * @return true only if data sent successfully
     */
-    bool sendData(int id, const void *data, uint32_t amount);
-    
+    bool send(int id, const void *data, uint32_t amount);
+
     /**
-    * Receives data from an open socket 
+    * Receives data from an open socket
     *
+    * @param id id to receive from
     * @param data placeholder for returned information
     * @param amount number of bytes to be received
-    * @return the number of bytes actually received
+    * @return the number of bytes received
     */
-    uint32_t recv(void *data, uint32_t amount);
-    
+    int32_t recv(int id, void *data, uint32_t amount);
+
     /**
     * Closes a socket
     *
@@ -135,17 +126,30 @@
     * @return true only if socket is closed successfully
     */
     bool close(int id);
-    
+
     /**
     * Allows timeout to be changed between commands
     *
     * @param timeout_ms timeout of the connection
     */
     void setTimeout(uint32_t timeout_ms);
-    
+
+    /**
+    * Checks if data is available
+    */
+    bool readable();
+
+    /**
+    * Checks if data can be written
+    */
+    bool writeable();
+
 private:
-    BufferedSerial serial;
-    ATParser atParser;
+    BufferedSerial _serial;
+    ATParser _parser;
+
+    char _ip_buffer[16];
+    char _mac_buffer[18];
 };
 
 #endif