Get basic debug info from the WNC M14A21.

Dependencies:   JSON M2XStreamClient-JMF WNCInterface mbed-rtos mbed

Fork of WNCInterface_HTTP_example by Avnet

Revision:
0:50979ffa39b6
Child:
1:7634d07c4310
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Sep 21 15:33:53 2016 +0000
@@ -0,0 +1,201 @@
+/* =====================================================================
+   Copyright © 2016, Avnet (R)
+
+   Contributors:
+     * James M Flynn, www.em.avnet.com 
+ 
+   Licensed under the Apache License, Version 2.0 (the "License"); 
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, 
+   software distributed under the License is distributed on an 
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
+   either express or implied. See the License for the specific 
+   language governing permissions and limitations under the License.
+
+    @file          WNCInterface.cpp
+    @version       1.0
+    @date          Sept 2016
+
+======================================================================== */
+
+#include "mbed.h"
+#include "WNCInterface.h"
+
+#include "Socket/Socket.h"
+#include "Socket/TCPSocketConnection.h"
+#include "Socket/UDPSocket.h"
+
+#define DEBUG
+#define MBED_PLATFORM
+#include "HTTPClient.h"
+
+#define CRLF    "\n\r"
+
+#define ntohl(n)    ((n & 0xff) << 24) |\
+                    ((n & 0xff00) << 8) |\
+                    ((n & 0xff0000UL) >> 8) |\
+                    ((n & 0xff000000UL) >> 24)
+    
+int main() {
+    int ret;
+    WNCInterface wnc;
+    printf("STARTING WNCInterface & Socket Test" CRLF);
+    
+    ret = wnc.init();                     
+    printf("WNC Module %s initialized (%02X)." CRLF, ret?"IS":"IS NOT", ret);
+    if( !ret ) {
+        printf(" - - - - - - - ALL DONE - - - - - - - " CRLF);
+        while(1);
+    }
+        
+    ret = wnc.connect();                 
+    printf("IP Address: %s " CRLF CRLF, wnc.getIPAddress());
+//
+//demonstrate a TCP connection
+//
+    TCPSocketConnection tsock;
+    printf("\n\n\n\n------------------------------------" CRLF "starting TCP Socket Test..." CRLF);
+
+    tsock.connect("mbed.org", 80);
+    printf("Connected!" CRLF );
+    char http_cmd[] = "GET /media/uploads/mbed_official/hello.txt HTTP/1.0\n\n";
+    ret=tsock.send_all(http_cmd, sizeof(http_cmd)-1);
+    printf("TCP Socket sent %d bytes.\r\n",ret);    
+    char buffer[1500];
+
+    tsock.set_blocking (false, 1000);    
+    while (ret>0) {
+        ret = tsock.receive(buffer, sizeof(buffer)-1);
+        buffer[ret] = '\0';
+        if( ret > 0 )
+            printf("Received %d chars from server:" CRLF "<----->" CRLF "%s" CRLF 
+                   "<----->" CRLF, ret, buffer);
+    }
+    tsock.close();      
+
+//
+//demonstrate a UDP connection
+//
+    printf("\n\n\n\n-------------------------------------" CRLF);
+    printf(        "starting UDP Socket Test..." CRLF);
+
+//#define UDP_URL "utcnist.colorado.edu"
+//#define UDP_PORT 37
+#define UDP_URL "pool.ntp.org"
+#define UDP_PORT 123
+
+    UDPSocket usock;
+    usock.init();
+    Endpoint nist;
+
+    nist.set_address(UDP_URL, UDP_PORT);
+    printf("Endpoing set to '%s'/%s/%d, try sending data." CRLF,
+        UDP_URL, nist.get_address(), nist.get_port());
+    
+//    char out_buffer[] = "plop"; // Does not matter
+
+  char out_buffer[48];
+    out_buffer[0] = 0xE3;         // LI, Version, Mode
+    out_buffer[1] = 0;            // Stratum, or type of clock
+    out_buffer[2] = 6;            // Polling Interval
+    out_buffer[3] = 0xEC;         // Peer Clock Precision
+    // 8 bytes of zero for Root Delay & Root Dispersion
+    out_buffer[12]  = 49;
+    out_buffer[13]  = 0x4E;
+    out_buffer[14]  = 49;
+    out_buffer[15]  = 52;
+
+    ret = usock.sendTo(nist, out_buffer, sizeof(out_buffer));
+    printf("sent buffer to UDP IP/Port (ret=%d)" CRLF "Now try receiving." CRLF,ret);
+
+
+    usock.set_blocking (true, 1000);    
+    char in_buffer[50];
+    int n = usock.receiveFrom(nist, in_buffer, sizeof(in_buffer));
+    
+    printf("Received %d bytes via UDP IP address %s on port %d." CRLF, 
+            n, nist.get_address(), nist.get_port());
+    
+    usock.close();
+
+//
+//demonstrate HTTPClient operations
+//
+    HTTPClient http;
+    char str[512];
+
+    printf("\n\n\n\n-------------------------------------" CRLF);
+    printf(        "starting HTTPClient Socket Test..." CRLF);
+
+    //GET data
+    printf(">>>>Fetch a page..." CRLF);
+
+    ret = http.get("http://developer.mbed.org/media/uploads/mbed_official/hello.txt", str, strlen(str));
+    if (!ret)
+    {
+      printf("Page fetched successfully - read %d characters" CRLF, strlen(str));
+      printf("<----->" CRLF "Result: %s" CRLF "<----->" CRLF, str); 
+    }
+    else
+    {
+      printf("Error - ret = %d - HTTP return code = %d" CRLF, ret, http.getHTTPResponseCode());
+    }
+
+    //POST data
+    HTTPMap map;
+    HTTPText inText(str, 512);
+    map.put("Hello", "World");
+    map.put("test", "1234");
+
+    printf(CRLF CRLF ">>>>Post data..." CRLF);
+    ret = http.post("http://httpbin.org/post", map, &inText);
+    if (!ret)
+    {
+      printf("Executed POST successfully - read %d characters" CRLF, strlen(str));
+      printf("<----->" CRLF );
+      printf("Result: %s" CRLF "<----->" CRLF, str);
+    }
+    else
+    {
+      printf("Error - ret = %d - HTTP return code = %d" CRLF, ret, http.getHTTPResponseCode());
+    }
+    
+    //PUT data
+    strcpy(str, "This is a PUT test!");
+    HTTPText outText(str);
+    printf(CRLF CRLF ">>>>Put data..." CRLF);
+    ret = http.put("http://httpbin.org/put", outText, &inText);
+    if (!ret)
+    {
+      printf("Executed PUT successfully - read %d characters" CRLF, strlen(str));
+      printf("<----->" CRLF );
+      printf("Result: %s" CRLF "<----->" CRLF, str); 
+    }
+    else
+    {
+      printf("Error - ret = %d - HTTP return code = %d" CRLF, ret, http.getHTTPResponseCode());
+    }
+    
+    //DELETE data
+    printf(CRLF CRLF ">>>>Delete data..." CRLF);
+    ret = http.del("http://httpbin.org/delete", &inText);
+    if (!ret)
+    {
+      printf("Executed DELETE successfully - read %d characters" CRLF, strlen(str));
+      printf("<----->" CRLF );
+      printf("Result: %s" CRLF "<----->" CRLF, str);
+    }
+    else
+    {
+      printf("Error - ret = %d - HTTP return code = %d" CRLF, ret, http.getHTTPResponseCode());
+    }
+
+    wnc.disconnect();
+    printf(" - - - - - - - ALL DONE - - - - - - - " CRLF);
+    while(1) {}
+}
+