Low Memory HTTP Server (LPC1114FN28 + WIZ820io)

Dependencies:   Tiny-HTTPD WIZ820ioInterface mbed-rpc mbed

Fork of HTTPD_sample by Suga koubou

Files at this revision

API Documentation at this revision

Comitter:
ban4jp
Date:
Tue Feb 04 03:26:08 2014 +0000
Parent:
1:2971dd3e5168
Commit message:
LPC1114FN28 + WIZ820io support.

Changed in this revision

EthernetInterface.lib Show diff for this revision Revisions of this file
HTTPD.lib Show diff for this revision Revisions of this file
Tiny-HTTPD.lib Show annotated file Show diff for this revision Revisions of this file
WIZ820ioInterface.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- a/EthernetInterface.lib	Wed Nov 13 06:59:58 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/mbed_official/code/EthernetInterface/#cba86db5ab96
--- a/HTTPD.lib	Wed Nov 13 06:59:58 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/okini3939/code/HTTPD/#d18dff347122
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Tiny-HTTPD.lib	Tue Feb 04 03:26:08 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/ban4jp/code/Tiny-HTTPD/#905fe8dfebd6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WIZ820ioInterface.lib	Tue Feb 04 03:26:08 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/ban4jp/code/WIZ820ioInterface/#6ff41cd782f5
--- a/main.cpp	Wed Nov 13 06:59:58 2013 +0000
+++ b/main.cpp	Tue Feb 04 03:26:08 2014 +0000
@@ -1,16 +1,46 @@
 #include "mbed.h"
-#include "rtos.h"
-#include "EthernetInterface.h"
+#include "WIZ820ioInterface.h"
 #include "mbed_rpc.h"
 #include "HTTPD.h"
 
-EthernetInterface *eth;
+SPI *spi;
+WIZ820ioInterface *eth;
 HTTPD *httpd;
 
+#if defined(TARGET_LPC1768)
 Serial pc(USBTX, USBRX);
 LocalFileSystem local("local");
 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
 
+#elif defined(TARGET_LPC1114)
+Serial pc(dp16,dp15);
+
+#endif
+
+const char* const index_page =
+    "<html>"
+    "<body>"
+    "<h1>Tiny HTTP Server</h1>"
+    "<h2>RPC</h2>"
+    "<a href=\"/rpc/DigitalOut/new%20LED1%20myled\">/rpc/DigitalOut/new LED1 myled</a><br><br>"
+    "<a href=\"/rpc/myled/write%200\">/rpc/myled/write 0</a><br><br>"
+    "<a href=\"/rpc/myled/write%201\">/rpc/myled/write 1</a><br><br>"
+    "</body>"
+    "</html>";
+
+void callback_static (int id) {
+    char buf[256];
+
+    strcpy(buf, httpd->getFilename(id));
+    printf("static %d %s\r\n", id, buf);
+
+    if (strcmp(buf, "") == 0 || strcmp(buf, "index.html") == 0) {
+        httpd->send(id, index_page, strlen(index_page), "Content-Type: text/html\r\n");
+    } else {
+        httpd->httpdError(id, 404);
+    }
+}
+
 void callback_cgi (int id) {
     int i, n;
     char buf[256];
@@ -54,14 +84,30 @@
 }
 
 int main () {
+    int ret;
 
-    pc.baud(115200);
+    //pc.baud(115200);
+    pc.baud(9600);
     printf("HTTP Server...\r\n");
 
-    eth = new EthernetInterface;
-//    eth->init(); //Use DHCP
-    eth->init("192.168.1.2", "255.255.255.0", "192.168.1.1");
-    if (eth->connect()) return -1;
+#if defined(TARGET_LPC1768)
+    spi = new SPI(p5, p6, p7); // mosi, miso, sclk
+    spi->frequency(4000000); // 4MHz
+    eth = new WIZ820ioInterface(spi, p21, p22); // spi, cs, reset
+#elif defined(TARGET_LPC1114)
+    spi = new SPI(dp2, dp1, dp6); // mosi, miso, sclk
+    spi->frequency(4000000); // 4MHz
+    eth = new WIZ820ioInterface(spi, dp25, dp26); // spi, cs, reset
+#endif
+
+    eth->init(); //Use DHCP
+//    eth->init("192.168.1.2", "255.255.255.0", "192.168.1.1");
+
+    ret = eth->connect();
+    if (ret) {
+        printf("connect error %d", ret);
+        return -1;
+    }
     printf("IP Address is %s\r\n", eth->getIPAddress());
 
 //    RPC::add_rpc_class<RpcAnalogIn>();
@@ -75,11 +121,19 @@
     httpd->attach("/cgi-bin/", &callback_cgi);
     httpd->attach("/ws/", &callback_ws);
     httpd->attach("/rpc/", &callback_rpc);
-    httpd->attach("/", "/local/");
+#if defined(TARGET_LPC1768)
+    httpd->attach("/local/", "/local/");
+#endif
+    httpd->attach("/", &callback_static);
     httpd->start(80);
     printf("httpd ready\r\n");
+#if defined(TARGET_LPC1768)
     led1 = 1;
+#endif
 
     for (;;) {
+        httpd->poll();
+        
+        //printf("poll-loop\r\n");
     }
 }
--- a/mbed-rtos.lib	Wed Nov 13 06:59:58 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/mbed_official/code/mbed-rtos/#ee87e782d34f
--- a/mbed.bld	Wed Nov 13 06:59:58 2013 +0000
+++ b/mbed.bld	Tue Feb 04 03:26:08 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/f37f3b9c9f0b
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/824293ae5e43
\ No newline at end of file