cc

Dependencies:   SPWF01SA

Revision:
1:fd7b3df18dd7
Parent:
0:907910bfb0b5
Child:
2:610672ed2e9f
--- a/SpwfInterface.cpp	Tue Jul 05 09:36:47 2016 +0000
+++ b/SpwfInterface.cpp	Tue Jul 05 11:03:15 2016 +0000
@@ -88,7 +88,11 @@
 int SpwfSAInterface::init(void) 
 {
     _spwf.setTimeout(SPWF_MISC_TIMEOUT);
-    return (_spwf.startup(0));
+    if(_spwf.startup(0)) {
+        isInitialized=true;
+        return true;
+    }
+    else return NSAPI_ERROR_DEVICE_ERROR;
 }
 
 /**
@@ -108,9 +112,8 @@
     //initialize the device before connecting
     if(!isInitialized)
     {
-        if(init()==0)
-            isInitialized=true;
-        else return NSAPI_ERROR_DEVICE_ERROR;
+        if(!init())
+            return NSAPI_ERROR_DEVICE_ERROR;
     }
     
     _spwf.setTimeout(SPWF_CONNECT_TIMEOUT);   
@@ -204,7 +207,9 @@
     
     const char *proto = (socket->proto == NSAPI_UDP) ? "u" : "t";//"s" for secure socket?
 
-    _spwf.open(proto, &sock_id, addr.get_ip_address(), addr.get_port());//sock ID is allocated NOW
+    if (!_spwf.open(proto, &sock_id, addr.get_ip_address(), addr.get_port())) {;//sock ID is allocated NOW
+        return NSAPI_ERROR_DEVICE_ERROR;
+    }
     
     //TODO: Maintain a socket table to map socket ID to host & port
     //TODO: lookup on client table to see if already socket is allocated to same host/port
@@ -270,20 +275,13 @@
     
     if(socket->id!=-1)
     {
-        if(socket->id==SERVER_SOCKET_NO)
-        {
-            //if (_spwf.socket_server_close()==-1) {
-                //err = NSAPI_ERROR_DEVICE_ERROR;
-            //}
-            isListening = false;
+        if (_spwf.close(socket->id)) {
+            if(socket->id==SERVER_SOCKET_NO)      
+                isListening = false;
+            else
+                _ids[socket->id] = false;            
         }
-        else
-        {
-            //if (_spwf.socket_client_close(socket->id)==-1) {
-                //err = NSAPI_ERROR_DEVICE_ERROR;
-            //}
-            _ids[socket->id] = false;
-        }
+        else err = NSAPI_ERROR_DEVICE_ERROR;
     }
 
     delete socket;
@@ -302,17 +300,17 @@
     struct spwf_socket *socket = (struct spwf_socket *)handle;
     int err;
     
-    if(socket->id==SERVER_SOCKET_NO)
+    /*if(socket->id==SERVER_SOCKET_NO)
         {
             if(socket->server_port==-1 || !isListening) 
                 return NSAPI_ERROR_NO_SOCKET; //server socket not bound or not listening        
 
-            //err = _spwf.socket_server_write((uint16_t)size, (char*)data);
+            err = _spwf.socket_server_write((uint16_t)size, (char*)data);
         }
     else
-        {
-            //err = _spwf.socket_client_write((uint8_t)socket->id, (uint16_t)size, (char*)data);
-        }
+        {*/
+            err = _spwf.send(socket->id, (char*)data, (uint32_t)size);
+        //}
     
     return err;
 }
@@ -332,10 +330,10 @@
     _spwf.setTimeout(SPWF_RECV_TIMEOUT);
     
     //CHECK:Receive for both Client and Server Sockets same?
-    //recv = _spwf.socket_client_recv((uint8_t)socket->id, (uint16_t)size, (char*)data);    
-    //if (recv < 0) {
-        //return NSAPI_ERROR_WOULD_BLOCK;
-    //}
+    recv = _spwf.recv(socket->id, (char*)data, (uint32_t)size);    
+    if (recv < 0) {
+        return NSAPI_ERROR_WOULD_BLOCK;
+    }
     return recv;
     
 }