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