SimpleSocket 1.0 examples
Dependencies: EthernetNetIf SimpleSocket 1.0 mbed
webcontroller.cpp@39:108499af2b53, 2012-06-06 (annotated)
- Committer:
- yamaguch
- Date:
- Wed Jun 06 03:34:16 2012 +0000
- Revision:
- 39:108499af2b53
updated link to the library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yamaguch | 39:108499af2b53 | 1 | #include "EthernetNetIf.h" |
yamaguch | 39:108499af2b53 | 2 | #include "SimpleSocket.h" |
yamaguch | 39:108499af2b53 | 3 | |
yamaguch | 39:108499af2b53 | 4 | void webcontroller() { |
yamaguch | 39:108499af2b53 | 5 | const char *response0 = |
yamaguch | 39:108499af2b53 | 6 | "HTTP/1.1 200 OK\r\n" |
yamaguch | 39:108499af2b53 | 7 | "Content-Type: text/html\r\n" |
yamaguch | 39:108499af2b53 | 8 | "\r\n" |
yamaguch | 39:108499af2b53 | 9 | "<html>\n" |
yamaguch | 39:108499af2b53 | 10 | "<head><title>mbed LED1 Controller</title></head>\n" |
yamaguch | 39:108499af2b53 | 11 | "<body>\n" |
yamaguch | 39:108499af2b53 | 12 | "<h4>LED1 Status & Change</h4>\n"; |
yamaguch | 39:108499af2b53 | 13 | |
yamaguch | 39:108499af2b53 | 14 | const char *response1 = |
yamaguch | 39:108499af2b53 | 15 | "<form method=\"GET\" action=\"/\">\n" |
yamaguch | 39:108499af2b53 | 16 | "<input type=\"radio\" name=\"LED\" value=\"1\" %s onclick=\"submit();\"/>ON\n" |
yamaguch | 39:108499af2b53 | 17 | "<input type=\"radio\" name=\"LED\" value=\"0\" %s onclick=\"submit();\"/>OFF\n" |
yamaguch | 39:108499af2b53 | 18 | "</form>\n"; |
yamaguch | 39:108499af2b53 | 19 | const char *response2 = |
yamaguch | 39:108499af2b53 | 20 | "</body>\n" |
yamaguch | 39:108499af2b53 | 21 | "</html>\n"; |
yamaguch | 39:108499af2b53 | 22 | |
yamaguch | 39:108499af2b53 | 23 | DigitalOut led1(LED1); |
yamaguch | 39:108499af2b53 | 24 | EthernetNetIf eth; |
yamaguch | 39:108499af2b53 | 25 | eth.setup(); |
yamaguch | 39:108499af2b53 | 26 | |
yamaguch | 39:108499af2b53 | 27 | ServerSocket server(80); |
yamaguch | 39:108499af2b53 | 28 | |
yamaguch | 39:108499af2b53 | 29 | while (true) { |
yamaguch | 39:108499af2b53 | 30 | ClientSocket socket = server.accept(); |
yamaguch | 39:108499af2b53 | 31 | while (socket) { |
yamaguch | 39:108499af2b53 | 32 | if (socket.available()) { |
yamaguch | 39:108499af2b53 | 33 | char buf[512] = {}; |
yamaguch | 39:108499af2b53 | 34 | socket.read(buf, sizeof(buf) - 1); |
yamaguch | 39:108499af2b53 | 35 | printf("\n%s\n", buf); |
yamaguch | 39:108499af2b53 | 36 | led1 = strncmp("GET /?LED=1", buf, 11) == 0; |
yamaguch | 39:108499af2b53 | 37 | |
yamaguch | 39:108499af2b53 | 38 | printf("LED1 = %d\n\n", led1.read()); |
yamaguch | 39:108499af2b53 | 39 | printf(response0); |
yamaguch | 39:108499af2b53 | 40 | printf(response1, led1 ? "checked" : "", led1 ? "" : "checked"); |
yamaguch | 39:108499af2b53 | 41 | printf(response2); |
yamaguch | 39:108499af2b53 | 42 | |
yamaguch | 39:108499af2b53 | 43 | socket.printf(response0); |
yamaguch | 39:108499af2b53 | 44 | socket.printf(response1, led1 ? "checked" : "", led1 ? "" : "checked"); |
yamaguch | 39:108499af2b53 | 45 | socket.printf(response2); |
yamaguch | 39:108499af2b53 | 46 | socket.close(); |
yamaguch | 39:108499af2b53 | 47 | } |
yamaguch | 39:108499af2b53 | 48 | } |
yamaguch | 39:108499af2b53 | 49 | } |
yamaguch | 39:108499af2b53 | 50 | } |