examples for SimpleSocket/EthernetInterface
Dependencies: EthernetInterface SimpleSocket mbed-rtos mbed
webserver.cpp
00001 #include "SimpleSocket.h" 00002 00003 void webserver() 00004 { 00005 const char *response0 = 00006 "HTTP/1.1 200 OK\r\n" 00007 "Content-Type: text/html\r\n" 00008 "\r\n" 00009 "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"5\">\r\n" 00010 "<html>\r\n" 00011 "<head>\r\n" 00012 "<title>mbed web server</title>\r\n" 00013 "</head>\r\n" 00014 "<body>\r\n" 00015 "<h2>Analog Input</h2>\r\n" 00016 "<table cellpadding=\"5\">\r\n"; 00017 00018 const char *response1 = 00019 "<tr style=\"background:#ccccff\">" 00020 "<th>pin</th><th>value</th>" 00021 "</tr>\r\n"; 00022 00023 const char *response2 = 00024 "<tr style=\"background:#cccccc\">" 00025 "<td>p%d</td><td align=\"center\">%f</td>" 00026 "</tr>\r\n"; 00027 00028 const char *response3 = 00029 "</table>\r\n" 00030 "</body>\r\n" 00031 "</html>\r\n"; 00032 00033 ServerSocket server(80); 00034 00035 printf("webserver: %s\n", EthernetInterface::getIPAddress()); 00036 00037 while (true) { 00038 ClientSocket socket = server.accept(); 00039 while (socket) { 00040 if (socket.available()) { 00041 while (socket.available()) 00042 socket.read(); 00043 int ret1 = socket.printf(response0); 00044 //wait(0.1); 00045 int ret2 = socket.printf(response1); 00046 //wait(0.1); 00047 AnalogIn analogPin[] = {p15, p16, p17, p18, p19, p20}; 00048 int ret = 0; 00049 for (int i = 0; i < 6; i++) { 00050 ret += socket.printf(response2, 15 + i, analogPin[i].read()); 00051 // wait(0.1); 00052 } 00053 int ret3 = socket.printf(response3); 00054 //wait(0.1); 00055 socket.close(); 00056 ::printf("len = %d, ret = %d, %d, %d, %d\n", strlen(response1), ret1, ret2, ret, ret3); 00057 } 00058 } 00059 } 00060 }
Generated on Mon Jul 18 2022 00:17:10 by 1.7.2