Socket interface for C027Interface. Implements the NetworkSocketAPI

Dependencies:   C027_Support

Dependents:   HelloC027Interface U_Blox_DeviceConnector U_Blox_DeviceConnector U-Blox_Client

Fork of LWIPInterface by NetworkSocketAPI

Revision:
17:3f1e33e638a4
Parent:
16:eaf31bd133f0
Child:
18:d2ad48926718
--- a/C027Interface.cpp	Thu Feb 02 16:17:35 2017 +0000
+++ b/C027Interface.cpp	Thu Feb 02 21:16:38 2017 +0000
@@ -25,7 +25,20 @@
     strcpy(_pin, simpin);
 }
 
-int C027Interface::connect(const char *apn, const char *username, const char *password)
+nsapi_error_t C027Interface::set_credentials(const char *apn, const char *username, const char *password)
+{
+    memset(_apn, 0, sizeof(_apn));
+    strncpy(_apn, apn, sizeof(apn));
+
+    memset(_username, 0, sizeof(_username));
+    strncpy(_username, username, sizeof(_username));
+    
+    memset(_password, 0, sizeof(_password));
+    strncpy(_password, password, sizeof(_password));
+    return 0;
+}
+
+nsapi_error_t C027Interface::connect()
 {
     // create the modem
     _mdm = new MDMSerial;
@@ -53,7 +66,7 @@
     
     if (mdmOk) {
         // join the internet connection 
-        MDMParser::IP ip = _mdm->join(apn, username, password);
+        MDMParser::IP ip = _mdm->join(_apn, _username, _password);
         _ip_address.set_ip_bytes(&ip, NSAPI_IPv4);
         mdmOk = (ip != NOIP);
     }
@@ -61,6 +74,13 @@
     return mdmOk ? 0 : NSAPI_ERROR_DEVICE_ERROR;
 }
 
+nsapi_error_t C027Interface::connect(const char *apn, const char *username, const char *password)
+{
+    
+    set_credentials(apn, username, password);
+    return connect();
+}
+
 int C027Interface::disconnect()
 {
     if (!_mdm->disconnect()) {
@@ -137,7 +157,7 @@
     return 0;
 }
 
-int C027Interface::socket_accept(void **handle, void *server)
+nsapi_error_t C027Interface::socket_accept(nsapi_socket_t server, nsapi_socket_t *handle, SocketAddress *address)
 {
     return NSAPI_ERROR_UNSUPPORTED;
 }