Simple code for comunication via TCP between the mbed and PC.

Dependencies:   EthernetInterface SimpleSocket mbed-rtos mbed

Fork of SimpleSocketExamples by Hiroshi Yamaguchi

Revision:
0:6dc3cfd058c6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/webserver.cpp	Mon Feb 04 09:29:18 2013 +0000
@@ -0,0 +1,60 @@
+#include "SimpleSocket.h"
+
+void webserver()
+{
+    const char *response0 =
+        "HTTP/1.1 200 OK\r\n"
+        "Content-Type: text/html\r\n"
+        "\r\n"
+        "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"5\">\r\n"
+        "<html>\r\n"
+        "<head>\r\n"
+        "<title>mbed web server</title>\r\n"
+        "</head>\r\n"
+        "<body>\r\n"
+        "<h2>Analog Input</h2>\r\n"
+        "<table cellpadding=\"5\">\r\n";
+
+    const char *response1 =
+        "<tr style=\"background:#ccccff\">"
+        "<th>pin</th><th>value</th>"
+        "</tr>\r\n";
+
+    const char *response2 =
+        "<tr style=\"background:#cccccc\">"
+        "<td>p%d</td><td align=\"center\">%f</td>"
+        "</tr>\r\n";
+
+    const char *response3 =
+        "</table>\r\n"
+        "</body>\r\n"
+        "</html>\r\n";
+
+    ServerSocket server(80);
+
+    printf("webserver: %s\n", EthernetInterface::getIPAddress());
+
+    while (true) {
+        ClientSocket socket = server.accept();
+        while (socket) {
+            if (socket.available()) {
+                while (socket.available())
+                    socket.read();
+                int ret1 = socket.printf(response0);
+                //wait(0.1);
+                int ret2 = socket.printf(response1);
+                //wait(0.1);
+                AnalogIn analogPin[] = {p15, p16, p17, p18, p19, p20};
+                int ret = 0;
+                for (int i = 0; i < 6; i++) {
+                    ret += socket.printf(response2, 15 + i, analogPin[i].read());
+                   // wait(0.1);
+                }
+                int ret3 = socket.printf(response3);
+                //wait(0.1);
+                socket.close();
+                ::printf("len = %d, ret = %d, %d, %d, %d\n", strlen(response1), ret1, ret2, ret, ret3);
+            }
+        }
+    }
+}
\ No newline at end of file