ESP8266 Socket Library. AT Thinker firmware.

Dependents:   ESP8266_MQTT_HelloWorld ESP8266_IFTTT_Test ECE_4180_Lab_4 websocketmbed ... more

Fork of ESP8266Interface by ESP8266

This repository has been superceded

This project has moved to https://developer.mbed.org/teams/ESP8266/code/esp8266-driver/

This library works with the AT Thinker firmware.

Note

This library is currently in Beta. It is not feature complete and has some bugs, proceed with caution! Fixes and patches are welcome and appreciated!

Currently the ESP8266Interface Library has the following Abilities:

Working

  • TCP Client
  • UDP Client
  • Transparent mode (single connection of 1 type at a time)
  • Station Mode (connects to AP)

To be implemented

  • TCP Server
  • UDP Server
  • Multi Connection Mode (able to have up to 5 sockets at a time)
  • AP Mode (Make ESP Chip act like access point)
  • DNS Support (currently websites must be looked up by IP)
  • Error Recovery

Nice but not necessary

  • colorized text for ESP AT Commands in Command line (easier to differentiate from other text)
Committer:
sarahmarshy
Date:
Wed Jun 10 15:47:33 2015 +0000
Revision:
48:03fd9333670d
Parent:
30:c035696b9397
ESP8266 was changing ssid spaces to "$". Unecessary. Removed this feature.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedAustin 30:c035696b9397 1 /* Copyright (C) 2012 mbed.org, MIT License
mbedAustin 30:c035696b9397 2 *
mbedAustin 30:c035696b9397 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
mbedAustin 30:c035696b9397 4 * and associated documentation files (the "Software"), to deal in the Software without restriction,
mbedAustin 30:c035696b9397 5 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
mbedAustin 30:c035696b9397 6 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
mbedAustin 30:c035696b9397 7 * furnished to do so, subject to the following conditions:
mbedAustin 30:c035696b9397 8 *
mbedAustin 30:c035696b9397 9 * The above copyright notice and this permission notice shall be included in all copies or
mbedAustin 30:c035696b9397 10 * substantial portions of the Software.
mbedAustin 30:c035696b9397 11 *
mbedAustin 30:c035696b9397 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
mbedAustin 30:c035696b9397 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
mbedAustin 30:c035696b9397 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
mbedAustin 30:c035696b9397 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
mbedAustin 30:c035696b9397 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
mbedAustin 30:c035696b9397 17 */
mbedAustin 30:c035696b9397 18
mbedAustin 30:c035696b9397 19 #ifndef TCPSOCKET_H
mbedAustin 30:c035696b9397 20 #define TCPSOCKET_H
mbedAustin 30:c035696b9397 21
mbedAustin 30:c035696b9397 22 #include "Socket/Socket.h"
mbedAustin 30:c035696b9397 23 #include "Socket/Endpoint.h"
mbedAustin 30:c035696b9397 24
mbedAustin 30:c035696b9397 25 /**
mbedAustin 30:c035696b9397 26 TCP socket connection
mbedAustin 30:c035696b9397 27 */
mbedAustin 30:c035696b9397 28 class TCPSocketConnection : public Socket, public Endpoint {
mbedAustin 30:c035696b9397 29 friend class TCPSocketServer;
mbedAustin 30:c035696b9397 30
mbedAustin 30:c035696b9397 31 public:
mbedAustin 30:c035696b9397 32 /** TCP socket connection
mbedAustin 30:c035696b9397 33 */
mbedAustin 30:c035696b9397 34 TCPSocketConnection();
mbedAustin 30:c035696b9397 35
mbedAustin 30:c035696b9397 36 /** Connects this TCP socket to the server
mbedAustin 30:c035696b9397 37 \param host The host to connect to. It can either be an IP Address or a hostname that will be resolved with DNS.
mbedAustin 30:c035696b9397 38 \param port The host's port to connect to.
mbedAustin 30:c035696b9397 39 \return 0 on success, -1 on failure.
mbedAustin 30:c035696b9397 40 */
mbedAustin 30:c035696b9397 41 int connect(const char* host, const int port);
mbedAustin 30:c035696b9397 42
mbedAustin 30:c035696b9397 43 /** Check if the socket is connected
mbedAustin 30:c035696b9397 44 \return true if connected, false otherwise.
mbedAustin 30:c035696b9397 45 */
mbedAustin 30:c035696b9397 46 bool is_connected(void);
mbedAustin 30:c035696b9397 47
mbedAustin 30:c035696b9397 48 /** Send data to the remote host.
mbedAustin 30:c035696b9397 49 \param data The buffer to send to the host.
mbedAustin 30:c035696b9397 50 \param length The length of the buffer to send.
mbedAustin 30:c035696b9397 51 \return the number of written bytes on success (>=0) or -1 on failure
mbedAustin 30:c035696b9397 52 */
mbedAustin 30:c035696b9397 53 int send(char* data, int length);
mbedAustin 30:c035696b9397 54
mbedAustin 30:c035696b9397 55 /** Send all the data to the remote host.
mbedAustin 30:c035696b9397 56 \param data The buffer to send to the host.
mbedAustin 30:c035696b9397 57 \param length The length of the buffer to send.
mbedAustin 30:c035696b9397 58 \return the number of written bytes on success (>=0) or -1 on failure
mbedAustin 30:c035696b9397 59 */
mbedAustin 30:c035696b9397 60 int send_all(char* data, int length);
mbedAustin 30:c035696b9397 61
mbedAustin 30:c035696b9397 62 /** Receive data from the remote host.
mbedAustin 30:c035696b9397 63 \param data The buffer in which to store the data received from the host.
mbedAustin 30:c035696b9397 64 \param length The maximum length of the buffer.
mbedAustin 30:c035696b9397 65 \return the number of received bytes on success (>=0) or -1 on failure
mbedAustin 30:c035696b9397 66 */
mbedAustin 30:c035696b9397 67 int receive(char* data, int length);
mbedAustin 30:c035696b9397 68
mbedAustin 30:c035696b9397 69 /** Receive all the data from the remote host.
mbedAustin 30:c035696b9397 70 \param data The buffer in which to store the data received from the host.
mbedAustin 30:c035696b9397 71 \param length The maximum length of the buffer.
mbedAustin 30:c035696b9397 72 \return the number of received bytes on success (>=0) or -1 on failure
mbedAustin 30:c035696b9397 73 */
mbedAustin 30:c035696b9397 74 int receive_all(char* data, int length);
mbedAustin 30:c035696b9397 75
mbedAustin 30:c035696b9397 76 private:
mbedAustin 30:c035696b9397 77 bool _is_connected;
mbedAustin 30:c035696b9397 78
mbedAustin 30:c035696b9397 79 };
mbedAustin 30:c035696b9397 80
mbedAustin 30:c035696b9397 81 #endif
mbedAustin 30:c035696b9397 82