sandbox / ESP8266Interface

Dependencies:   ESP8266

Fork of ESP8266Interface by Christopher Haster

Revision:
16:b2f781416464
Parent:
15:d29439d50306
Child:
17:c3f4095337b8
--- a/WiFiRadioInterface.h	Thu Jun 18 15:25:12 2015 +0000
+++ b/WiFiRadioInterface.h	Wed Jul 15 23:22:31 2015 +0000
@@ -19,16 +19,48 @@
 
 #include "WiFiInterface.h"
 #include "SocketInterface.h"
+#include "ATParser.h"
+
+/** WiFiSocket class.
+    This is a WiFi implementation of a socket that implements the SocketInterface class.
+    This mock WiFi hardware uses AT commands, so an ATParser is used to communicate with the hardware over serial.
+    In a non-AT command set, ATParser could be replaced by RawSerial or another hardware communication interface.
+ */
+ 
+class WiFiSocket : public SocketInterface
+{
+public:
+    WiFiSocket(uint32_t handle, ATParser* atParser);
+    virtual const char *getHostByName(const char *name) const;
+    virtual int32_t setAddress(const char* addr) const;
+    virtual int32_t setPort(uint16_t port) const;
+    virtual int32_t setAddressPort(const char* addr, uint16_t port) const;
+    virtual const char *getAddress(void) const;
+    virtual uint16_t getPort(void) const;
+    virtual int32_t bind(uint16_t port) const;
+    virtual int32_t listen(void) const;
+    virtual int32_t accept() const;
+    virtual int32_t open() const;
+    virtual int32_t send(const void *data, uint32_t amount, uint32_t timeout_ms = 15000) const;
+    virtual uint32_t recv(const void *data, uint32_t amount, uint32_t timeout_ms = 15000) const;
+    virtual int32_t close() const;
+
+protected:
+    uint32_t handle;
+
+private:
+    ATParser *atParser;
+   
+};
 
 /** WiFiRadioInterface class.
-    This is a interface a WiFi radio
+    This is an interface to a WiFi radio.
  */
-class WiFiRadioInterface : public WiFiInterface, SocketInterface
+class WiFiRadioInterface : public WiFiInterface
 {
 public:
-    
-    WiFiRadioInterface();
-    WiFiRadioInterface(const char *ap, const char *pass_phrase = 0, wifi_security_t security = WI_NONE, uint32_t timeout_ms = 15000);
+    WiFiRadioInterface(PinName tx, PinName rx);
+    WiFiRadioInterface(PinName tx, PinName rx, const char *ap, const char *pass_phrase = 0, wifi_security_t security = WI_NONE, uint32_t timeout_ms = 15000);
     virtual int32_t init(void) const;
     virtual int32_t init(const char *ip, const char *mask, const char *gateway) const;
     virtual int32_t connect(uint32_t timeout_ms) const;
@@ -39,23 +71,12 @@
     virtual char *getNetworkMask(void) const;
     virtual char *getMACAddress(void) const;
     virtual int32_t isConnected(void) const;
+    virtual SocketInterface *allocateSocket(socket_protocol_t socketProtocol) const;
+    virtual int deallocateSocket(SocketInterface *socket) const;
     
-    // socket stuff
-    virtual const char *get_host_by_name(const char *name) const;
-    virtual int32_t set_address(const char* addr) const;
-    virtual int32_t set_port(uint16_t port) const;
-    virtual int32_t set_address_port(const char* addr, uint16_t port) const;
-    virtual const char *get_address(void) const;
-    virtual uint16_t get_port(void) const;
-    virtual int32_t bind(uint16_t port) const;
-    virtual int32_t listen(void) const;
-    virtual int32_t accept(const Endpoint &endpoint) const;
-    virtual int32_t open(const Endpoint &endpoint) const;
-    virtual int32_t send(const void *data, uint32_t amount, uint32_t timeout_ms = 15000) const;
-    virtual uint32_t recv(const void *data, uint32_t amount, uint32_t timeout_ms = 15000) const;
-    virtual int32_t close(const Endpoint &endpoint) const;
-    
-    Endpoint *endpoint;
+private:
+    RawSerial serial;
+    ATParser atParser;
 };
 
 #endif