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

Dependencies:   EthernetInterface SimpleSocket mbed-rtos mbed

Fork of SimpleSocketExamples by Hiroshi Yamaguchi

Committer:
numeral369
Date:
Wed Dec 17 16:06:00 2014 +0000
Revision:
1:016774025718
Parent:
0:6dc3cfd058c6
A simple code for comunication via TCP between the Mbed and a PC

Who changed what in which revision?

UserRevisionLine numberNew 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 }