examples for SimpleSocket/EthernetInterface
Dependencies: EthernetInterface SimpleSocket mbed-rtos mbed
examples/webserver.cpp@0:6dc3cfd058c6, 2013-02-04 (annotated)
- Committer:
- yamaguch
- Date:
- Mon Feb 04 09:29:18 2013 +0000
- Revision:
- 0:6dc3cfd058c6
modified to use SimpleSocket/EthernetInterface
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yamaguch | 0:6dc3cfd058c6 | 1 | #include "SimpleSocket.h" |
yamaguch | 0:6dc3cfd058c6 | 2 | |
yamaguch | 0:6dc3cfd058c6 | 3 | void webserver() |
yamaguch | 0:6dc3cfd058c6 | 4 | { |
yamaguch | 0:6dc3cfd058c6 | 5 | const char *response0 = |
yamaguch | 0:6dc3cfd058c6 | 6 | "HTTP/1.1 200 OK\r\n" |
yamaguch | 0:6dc3cfd058c6 | 7 | "Content-Type: text/html\r\n" |
yamaguch | 0:6dc3cfd058c6 | 8 | "\r\n" |
yamaguch | 0:6dc3cfd058c6 | 9 | "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"5\">\r\n" |
yamaguch | 0:6dc3cfd058c6 | 10 | "<html>\r\n" |
yamaguch | 0:6dc3cfd058c6 | 11 | "<head>\r\n" |
yamaguch | 0:6dc3cfd058c6 | 12 | "<title>mbed web server</title>\r\n" |
yamaguch | 0:6dc3cfd058c6 | 13 | "</head>\r\n" |
yamaguch | 0:6dc3cfd058c6 | 14 | "<body>\r\n" |
yamaguch | 0:6dc3cfd058c6 | 15 | "<h2>Analog Input</h2>\r\n" |
yamaguch | 0:6dc3cfd058c6 | 16 | "<table cellpadding=\"5\">\r\n"; |
yamaguch | 0:6dc3cfd058c6 | 17 | |
yamaguch | 0:6dc3cfd058c6 | 18 | const char *response1 = |
yamaguch | 0:6dc3cfd058c6 | 19 | "<tr style=\"background:#ccccff\">" |
yamaguch | 0:6dc3cfd058c6 | 20 | "<th>pin</th><th>value</th>" |
yamaguch | 0:6dc3cfd058c6 | 21 | "</tr>\r\n"; |
yamaguch | 0:6dc3cfd058c6 | 22 | |
yamaguch | 0:6dc3cfd058c6 | 23 | const char *response2 = |
yamaguch | 0:6dc3cfd058c6 | 24 | "<tr style=\"background:#cccccc\">" |
yamaguch | 0:6dc3cfd058c6 | 25 | "<td>p%d</td><td align=\"center\">%f</td>" |
yamaguch | 0:6dc3cfd058c6 | 26 | "</tr>\r\n"; |
yamaguch | 0:6dc3cfd058c6 | 27 | |
yamaguch | 0:6dc3cfd058c6 | 28 | const char *response3 = |
yamaguch | 0:6dc3cfd058c6 | 29 | "</table>\r\n" |
yamaguch | 0:6dc3cfd058c6 | 30 | "</body>\r\n" |
yamaguch | 0:6dc3cfd058c6 | 31 | "</html>\r\n"; |
yamaguch | 0:6dc3cfd058c6 | 32 | |
yamaguch | 0:6dc3cfd058c6 | 33 | ServerSocket server(80); |
yamaguch | 0:6dc3cfd058c6 | 34 | |
yamaguch | 0:6dc3cfd058c6 | 35 | printf("webserver: %s\n", EthernetInterface::getIPAddress()); |
yamaguch | 0:6dc3cfd058c6 | 36 | |
yamaguch | 0:6dc3cfd058c6 | 37 | while (true) { |
yamaguch | 0:6dc3cfd058c6 | 38 | ClientSocket socket = server.accept(); |
yamaguch | 0:6dc3cfd058c6 | 39 | while (socket) { |
yamaguch | 0:6dc3cfd058c6 | 40 | if (socket.available()) { |
yamaguch | 0:6dc3cfd058c6 | 41 | while (socket.available()) |
yamaguch | 0:6dc3cfd058c6 | 42 | socket.read(); |
yamaguch | 0:6dc3cfd058c6 | 43 | int ret1 = socket.printf(response0); |
yamaguch | 0:6dc3cfd058c6 | 44 | //wait(0.1); |
yamaguch | 0:6dc3cfd058c6 | 45 | int ret2 = socket.printf(response1); |
yamaguch | 0:6dc3cfd058c6 | 46 | //wait(0.1); |
yamaguch | 0:6dc3cfd058c6 | 47 | AnalogIn analogPin[] = {p15, p16, p17, p18, p19, p20}; |
yamaguch | 0:6dc3cfd058c6 | 48 | int ret = 0; |
yamaguch | 0:6dc3cfd058c6 | 49 | for (int i = 0; i < 6; i++) { |
yamaguch | 0:6dc3cfd058c6 | 50 | ret += socket.printf(response2, 15 + i, analogPin[i].read()); |
yamaguch | 0:6dc3cfd058c6 | 51 | // wait(0.1); |
yamaguch | 0:6dc3cfd058c6 | 52 | } |
yamaguch | 0:6dc3cfd058c6 | 53 | int ret3 = socket.printf(response3); |
yamaguch | 0:6dc3cfd058c6 | 54 | //wait(0.1); |
yamaguch | 0:6dc3cfd058c6 | 55 | socket.close(); |
yamaguch | 0:6dc3cfd058c6 | 56 | ::printf("len = %d, ret = %d, %d, %d, %d\n", strlen(response1), ret1, ret2, ret, ret3); |
yamaguch | 0:6dc3cfd058c6 | 57 | } |
yamaguch | 0:6dc3cfd058c6 | 58 | } |
yamaguch | 0:6dc3cfd058c6 | 59 | } |
yamaguch | 0:6dc3cfd058c6 | 60 | } |