Internet Piano for WIZwiki-W7500

Dependencies:   SDFileSystem WIZnetInterface httpServer mbed

Fork of httpServer-WIZwiki-W7500 by WIZnet

This is HTTP server example program for WIZwiki-W7500.

In this example, only you can control Internet Piano.

Sample html pages and image are needed. So download samples.

•index.html

/media/uploads/justinkim/index.zip

This example use SD card. So copy html and image files to SD card. If not WIZwiki-W7500 platform, copy html and image files to local filesystem.

Revision:
14:9202a7785974
Parent:
13:a09c9ff30460
Child:
15:0091888ada99
--- a/main.cpp	Mon Jun 29 09:40:10 2015 +0000
+++ b/main.cpp	Mon Jun 29 09:43:07 2015 +0000
@@ -1,56 +1,67 @@
-
 #include "mbed.h"
 #include "EthernetInterface.h"
+#include "FsHandler.h"
+#include "HTTPServer.h"
+#include "SDFileSystem.h"
 
-#define ECHO_SERVER_PORT   7
+#ifdef TARGET_WIZWIKI_W7500
+    SDFileSystem local(SD_MOSI, SD_MISO, SD_CLK, SD_SEL, "local");//PB_3, PB_2, PB_1, PB_0
+#else
+    LocalFileSystem local("local");
+    //or TODO:
+#endif
 
-int main (void) 
+#ifdef TARGET_WIZWIKI_W7500
+    uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02};
+#endif
+
+EthernetInterface eth;
+HTTPServer  svr;
+char ip_addr[] = "192.168.1.111";
+char subnet_mask[] = "255.255.255.0";
+char gateway_addr[] = "192.168.1.1";
+
+//#define DHCP
+
+int main()
 {
     printf("Wait a second...\r\n");
-    uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; 
-    EthernetInterface eth;
-    eth.init(mac_addr); //Use DHCP
+    HTTPFsRequestHandler::mount("/local/", "/");
+    svr.addHandler<HTTPFsRequestHandler>("/");
+
+#ifdef TARGET_WIZWIKI_W7500
+    
+    #ifdef DHCP
+        eth.init(mac_addr); //Use DHCP
+    #else
+        eth.init(mac_addr, ip_addr, subnet_mask, gateway_addr); //Not Use DHCP
+    #endif
+
+#else
+
+    #ifdef DHCP
+        eth.init(); //Use DHCP
+    #else
+        eth.init(ip_addr, subnet_mask, gateway_addr); //Not Use DHCP
+    #endif
+
+#endif
+
+
+
     eth.connect();
     printf("Server IP Address is %s\r\n", eth.getIPAddress());
-    
-    TCPSocketServer server;
-    server.bind(ECHO_SERVER_PORT);
-    server.listen();
+
+    if (!svr.start(80, &eth)) {
+
+        error("Server not starting !");
+        exit(0);
+    }
+
+    while(1) {
+        svr.poll();
+        wait(0.2);
+    }
     
-    while (true) 
-    {
-        printf("Wait for new connection...\r\n");
-        TCPSocketConnection client;
-        server.accept(client);
-        client.set_blocking(false, 15000); // Timeout after (1.5)s
-        
-        printf("Connection from: %s\r\n", client.get_address());
-        char buffer[256];
-        while (true) {
-            int n = client.receive(buffer, sizeof(buffer));
-            if (n <= 0) break;
-            
-            // print received message to terminal
-            buffer[n] = '\0';
-            printf("Received message from Client :'%s'\r\n",buffer);
-            
-            // reverse the message
-            char temp;
-            for(int f = 0, l = n-1; f<l; f++,l--){
-                temp = buffer[f];
-                buffer[f] = buffer[l];
-                buffer[l] = temp;
-                }
-            
-            // print reversed message to terminal
-            printf("Sending message to Client: '%s'\r\n",buffer);
-            
-            // Echo received message back to client
-            client.send_all(buffer, n);
-            if (n <= 0) break;
-        }
-        
-        client.close();
-    }
 }