mbed 5.4 with sleep mode

Dependencies:  

Revision:
16:43f6de7bc38b
Parent:
15:ea10b6cf8c85
Child:
17:c293780a40ac
--- a/main.cpp	Tue May 13 09:35:14 2014 +0000
+++ b/main.cpp	Wed May 14 05:56:27 2014 +0000
@@ -71,7 +71,7 @@
 int main(void)
 {
     int ret;
-    char buf[512] = "";
+    char buf[2048] = "";
 
     // only trace if the serial is different from our modem port
     if (DOTRACE) {
@@ -138,6 +138,7 @@
             if (socket >= 0)
             {
                 TRACE("Socket Connect\r\n");
+                mdm.socketSetBlocking(socket, 10000);
                 if (mdm.socketConnect(socket, "mbed.org", 80))
                 {
                     TRACE("Make a Http Post Request\r\n");
@@ -162,6 +163,74 @@
                 mdm.socketFree(socket);
             }
             
+            int port = 7;
+            const char* host = "echo.u-blox.com";
+            MDMParser::IP ip = mdm.gethostbyname(host);
+            char data[] = "\r\nxxx Socket Hello World\r\n"
+#if 1
+            "00  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "01  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "02  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "03  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "04  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            
+            "05  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "06  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "07  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "08  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "09  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+
+            "10  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "11  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "12  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "13  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "14  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            
+            "15  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "16  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "17  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "18  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+            "19  0123456789 0123456789 0123456789 0123456789 0123456789 \r\n"
+#endif            
+            "End\r\n";
+                
+            TRACE("Testing TCP sockets with ECHO server\r\n");
+            socket = mdm.socketSocket(MDMParser::IPPROTO_TCP);
+            if (socket >= 0)
+            {
+                mdm.socketSetBlocking(socket, 10000);
+                if (mdm.socketConnect(socket, host, port)) {
+                    memcpy(data, "\r\nTCP", 5); 
+                    ret = mdm.socketSend(socket, data, sizeof(data)-1);
+                    if (ret == sizeof(data)-1) {
+                        TRACE("Socket Send %d \"%s\"\r\n", ret, data);
+                    }
+                    ret = mdm.socketRecv(socket, buf, sizeof(buf)-1);
+                    if (ret >= 0) {
+                        TRACE("Socket Recv %d \"%.*s\"\r\n", ret, ret, buf);
+                    }
+                    mdm.socketClose(socket);
+                }
+                mdm.socketFree(socket);
+            }
+
+            TRACE("Testing UDP sockets with ECHO server\r\n");
+            socket = mdm.socketSocket(MDMParser::IPPROTO_UDP, port);
+            if (socket >= 0)
+            {
+                mdm.socketSetBlocking(socket, 10000);
+                memcpy(data, "\r\nUDP", 5); 
+                ret = mdm.socketSendTo(socket, ip, port, data, sizeof(data)-1);
+                if (ret == sizeof(data)-1) {
+                    TRACE("Socket SendTo %s:%d " IPSTR " %d \"%s\"\r\n", host, port, IPNUM(ip), ret, data);
+                }
+                ret = mdm.socketRecvFrom(socket, &ip, &port, buf, sizeof(buf)-1);
+                if (ret >= 0) {
+                    TRACE("Socket RecvFrom " IPSTR ":%d %d \"%.*s\" \r\n", IPNUM(ip),port, ret, ret,buf);
+                }
+                mdm.socketFree(socket);
+            }
+            
             // disconnect  
             TRACE("Network Disconnect\r\n");
             mdm.disconnect();