test
Fork of ESP8266 by
Diff: ESP8266.h
- 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