Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: WIZnetInterface SDFileSystem httpServer mbed-src
Fork of TCPEchoServer-WIZwiki-W7500 by
This is HTTP server example program for WIZwiki-W7500.
In this example, only you can control RGB LED on/off.
Sample html pages and image are needed. So download samples.
- index.html
- dio_page.html
- image
https://github.com/WIZnet-MbedEthernet/httpServer-WIZwiki-W7500
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.
There are Korean language in index.html
Diff: main.cpp
- Revision:
- 14:9202a7785974
- Parent:
- 13:a09c9ff30460
- Child:
- 15:0091888ada99
diff -r a09c9ff30460 -r 9202a7785974 main.cpp
--- 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, ð)) {
+
+ 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();
- }
}
