mbed official WiflyInterface (interface for Roving Networks Wifly modules)

Dependents:   Wifly_HelloWorld Websocket_Wifly_HelloWorld RPC_Wifly_HelloWorld HTTPClient_Wifly_HelloWorld ... more

Legacy Networking Libraries

This is an mbed 2 WiFI library. For mbed 5, the networking libraries have been revised to better support additional network stacks and thread safety. View information about WiFi interfaces in mbed OS 5 here.

Files at this revision

API Documentation at this revision

Comitter:
samux
Date:
Thu Dec 20 15:08:58 2012 +0000
Parent:
3:9aa05e19c62e
Child:
5:81e264dbbf03
Commit message:
proper join after reboot - increase size flush

Changed in this revision

Socket/TCPSocketServer.cpp Show annotated file Show diff for this revision Revisions of this file
Socket/UDPSocket.cpp Show annotated file Show diff for this revision Revisions of this file
Wifly/Wifly.cpp Show annotated file Show diff for this revision Revisions of this file
Wifly/Wifly.h Show annotated file Show diff for this revision Revisions of this file
--- a/Socket/TCPSocketServer.cpp	Thu Dec 20 10:37:52 2012 +0000
+++ b/Socket/TCPSocketServer.cpp	Thu Dec 20 15:08:58 2012 +0000
@@ -41,8 +41,13 @@
     wifi->reboot();
     
     // connect the network
-    if (!wifi->sendCommand("join\r", "Associated", NULL, 5000))
-        return -1;
+    if (wifi->isDHCP()) {
+        if (!wifi->sendCommand("join\r", "DHCP=ON", NULL, 10000))
+            return -1;
+    } else {
+        if (!wifi->sendCommand("join\r", "Associated", NULL, 10000))
+            return -1;
+    }
         
     // exit
     wifi->exit();
--- a/Socket/UDPSocket.cpp	Thu Dec 20 10:37:52 2012 +0000
+++ b/Socket/UDPSocket.cpp	Thu Dec 20 15:08:58 2012 +0000
@@ -39,14 +39,33 @@
 {
     char cmd[17];
     
-    // set udp protocol
-    wifi->setProtocol(UDP);
-    
     // set local port
     sprintf(cmd, "set i l %d\r", port);
     if (!wifi->sendCommand(cmd, "AOK"))
         return -1;
+        
+    // save
+    if (!wifi->sendCommand("save\r", "Stor"))
+        return -1;
+    
+    // reboot
+    wifi->reboot();
+    
+    // set udp protocol
+    wifi->setProtocol(UDP);
+    
+    // connect the network
+    if (wifi->isDHCP()) {
+        if (!wifi->sendCommand("join\r", "DHCP=ON", NULL, 10000))
+            return -1;
+    } else {
+        if (!wifi->sendCommand("join\r", "Associated", NULL, 10000))
+            return -1;
+    }
+        
+    // exit
     wifi->exit();
+    wifi->flush();
     return 0;
 }
 
--- a/Wifly/Wifly.cpp	Thu Dec 20 10:37:52 2012 +0000
+++ b/Wifly/Wifly.cpp	Thu Dec 20 15:08:58 2012 +0000
@@ -80,11 +80,11 @@
             continue;
 
         // set time
-        if (!sendCommand("set c t 20\r", "AOK"))
+        if (!sendCommand("set c t 30\r", "AOK"))
             continue;
 
         // set size
-        if (!sendCommand("set c s 128\r", "AOK"))
+        if (!sendCommand("set c s 1024\r", "AOK"))
             continue;
 
         // red led on when tcp connection active
@@ -188,11 +188,9 @@
             break;
         case UDP:
             // set ip flags: udp auto pairing enabled
-            if (!sendCommand("set i f 0x40\r", "AOK"))
-                return false;
             if (!sendCommand("set i h 0.0.0.0\r", "AOK"))
                 return false;
-            if (!sendCommand("set i r 0\r", "AOK"))
+            if (!sendCommand("set i f 0x40\r", "AOK"))
                 return false;
             break;
     }
--- a/Wifly/Wifly.h	Thu Dec 20 10:37:52 2012 +0000
+++ b/Wifly/Wifly.h	Thu Dec 20 15:08:58 2012 +0000
@@ -188,6 +188,15 @@
     * @returns true if successful
     */
     bool sendCommand(const char * cmd, const char * ack = NULL, char * res = NULL, int timeout = DEFAULT_WAIT_RESP_TIMEOUT);
+    
+    /*
+    * Return true if the module is using dhcp
+    *
+    * @returns true if the module is using dhcp
+    */
+    bool isDHCP() {
+        return state.dhcp;
+    }
 
     bool gethostbyname(const char * host, char * ip);