Updates and additions required by mbed-os 5.2.2

Dependencies:   SPWF01SA-lapi-1

Dependents:   x-nucleo-iks01a1-test x-nucleo-iks01a1-test

Fork of X_NUCLEO_IDW01M1v2 by ST

Revision:
13:3d28a8c18182
Parent:
0:907910bfb0b5
--- a/SpwfInterface.h	Thu Nov 03 06:57:03 2016 +0000
+++ b/SpwfInterface.h	Sun Nov 20 20:31:30 2016 +0000
@@ -50,41 +50,61 @@
 public:
  
     SpwfSAInterface(PinName tx, PinName rx, bool debug = false);
-    virtual     ~SpwfSAInterface();
+    virtual ~SpwfSAInterface();
  
     // Implementation of WiFiInterface
-    virtual     int connect(const char *ssid,
+    virtual nsapi_error_t set_credentials(const char *ssid, const char *pass,
+                    nsapi_security_t security = NSAPI_SECURITY_NONE);
+    virtual nsapi_error_t connect(const char *ssid,
                             const char *pass,
-                            nsapi_security_t security = NSAPI_SECURITY_NONE);
- 
-    virtual     int disconnect();    
-    virtual     const char *get_mac_address();    
-    void        debug(const char * string);
+                            nsapi_security_t security = NSAPI_SECURITY_NONE,
+                            uint8_t channel = 0);
+    virtual nsapi_error_t connect() {
+        if (_ssid == 0 || _pass == 0) return NSAPI_ERROR_PARAMETER;
+        return connect(_ssid, _pass, _security, _channel);
+    }
+    virtual nsapi_error_t set_channel(uint8_t channel) {
+        _channel = channel;
+        return NSAPI_ERROR_OK;
+    }
+    virtual int8_t get_rssi();
+    virtual int disconnect();
+    virtual nsapi_size_or_error_t scan(WiFiAccessPoint *res, nsapi_size_t count) {
+        return NSAPI_ERROR_UNSUPPORTED; // TODO! Add scan support
+    }
+     
+    virtual const char *get_mac_address();    
+    void debug(const char * string);
     
     //Implementation of NetworkStack
-    virtual     const char *get_ip_address();
+    virtual const char *get_ip_address();
     
 protected:
     //Implementation of NetworkStack
-    virtual     int socket_open(void **handle, nsapi_protocol_t proto);    
-    virtual     int socket_close(void *handle);    
-    virtual     int socket_bind(void *handle, const SocketAddress &address);  //not supported  
-    virtual     int socket_listen(void *handle, int backlog);
-    virtual     int socket_connect(void *handle, const SocketAddress &address);
-    virtual     int socket_accept(void **handle, void *server);
-    virtual     int socket_send(void *handle, const void *data, unsigned size);  
-    virtual     int socket_recv(void *handle, void *data, unsigned size);    
-    virtual     int socket_sendto(void *handle, const SocketAddress &address, const void *data, unsigned size);    
-    virtual     int socket_recvfrom(void *handle, SocketAddress *address, void *buffer, unsigned size);    
-    virtual     void socket_attach(void *handle, void (*callback)(void *), void *data);
-           
+    virtual int socket_open(void **handle, nsapi_protocol_t proto);    
+    virtual int socket_close(void *handle);    
+    virtual int socket_bind(void *handle, const SocketAddress &address);  //not supported  
+    virtual int socket_listen(void *handle, int backlog);
+    virtual int socket_connect(void *handle, const SocketAddress &address);
+    virtual nsapi_error_t socket_accept(nsapi_socket_t server,
+                    nsapi_socket_t *handle, SocketAddress *address=0);
+    virtual int socket_send(void *handle, const void *data, unsigned size);  
+    virtual int socket_recv(void *handle, void *data, unsigned size);    
+    virtual int socket_sendto(void *handle, const SocketAddress &address, const void *data, unsigned size);    
+    virtual int socket_recvfrom(void *handle, SocketAddress *address, void *buffer, unsigned size);    
+    virtual void socket_attach(void *handle, void (*callback)(void *), void *data);
+    virtual NetworkStack* get_stack() {return this;}       
 private:
-    int         init(void);
+    int init(void);
         
     SPWFSA01 _spwf;
     bool _ids[SPWFSA_SOCKET_COUNT];
     bool isListening;
-    bool isInitialized;    
+    bool isInitialized;
+    const char *_ssid;
+    const char *_pass;
+    nsapi_security_t _security;
+    uint8_t _channel;
 };