cc
Diff: SpwfInterface.cpp
- 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; }