6#if !defined(ARDUINO_ARCH_AVR)
7#define strncpy_P strncpy
22static const PROGMEM
char begin_html[] =
"HTTP/1.1 200 OK\r\n"
23 "Content-Type: text/html\r\n"
24 "Connection: close\r\n\n"
28 "body{background-color:linen; text-align: center}"
29 "table.center{margin-left:auto;margin-right:auto;}"
38static const PROGMEM
char main_html_p1[] =
41 "<img src='http://arduino.cc/en/uploads/Trademark/ArduinoCommunityLogo.png'"
42 "style='width:383px;height:162px'>"
43 "<br><b>Hello From Arduino!</b><br>\n"
44 "<br><br> LED/Digital Pin Control:"
45 "<br><br>\n<table class = 'center'>";
49static const PROGMEM
char main_html_p2[] =
51 "<tr><td><a href='/ON'>Turn LED On</a>"
53 "<br></td><td><a href='/OF'>Turn LED Off</a>"
55 "<br></td></tr></table><br><a href='/ST'>"
57 "Stats</a> <a href='/CR'>Credits</a>"
64static const PROGMEM
char credits_html[] =
"<body>"
65 "<img src='http://arduino.cc/en/uploads/Trademark/ArduinoCommunityLogo.png'"
66 "style='width:383px;height:162px'>"
67 "<br><b>Credits:</b><br><table class='center'><tr>"
68 "<td>RF24Ethernet by </td>"
69 "<td><a href='https://github.com/tmrh20'> TMRh20</a></td>"
72 "<td><a href='https://github.com/adamdunkels/uip'> Adam Dunkels</a></td>"
75 "<td><a href='https://github.com/ntruchsess/arduino_uip'> UIPEthernet</a></td>"
77 "<td>Documentation:</td><td> <a href='http://nRF24.github.io/RF24Ethernet/'>github.io</a></td>"
80 "<td>RF24toTUN creator:</td><td> <a href='https://github.com/reixd/'>Reixd</a></td>"
83 "<br>And everybody who contributed to RF24 and RF24Network"
84 "<br><br><a href='/'>Home</a>"
96 for (uint16_t i = 0; i < size; i++) {
97 _client.print((
char)pgm_read_byte(_pointer++));
107 const char* html_pointer = begin_html;
108 sendPage(_client, html_pointer,
sizeof(begin_html));
111 html_pointer = main_html_p1;
112 sendPage(_client, html_pointer,
sizeof(main_html_p1));
115 const char* lState =
led_state ?
"ON" :
"OFF";
116 const char* lColor =
led_state ?
"darkseagreen 1" :
"lightpink";
121 sprintf_P(bf, PSTR(
"<tr><td bgcolor=%s>\n"), lColor);
123 sprintf_P(bf, PSTR(
"LED is %s</td></tr>\n"), lState);
125 sprintf_P(bf, PSTR(
"<tr><td> </td><td bgcolor=%s>\n"), lColor);
127 sprintf_P(bf, PSTR(
"LED is %s</td></tr>\n"), lState);
132 static const char* html_pointer2 = main_html_p2;
133 sendPage(_client, html_pointer2,
sizeof(main_html_p2));
140 const char* html_pointer = begin_html;
141 sendPage(_client, html_pointer,
sizeof(begin_html));
144 html_pointer = credits_html;
145 sendPage(_client, html_pointer,
sizeof(credits_html));
153 uint32_t seconds = millis() / 1000UL;
154 uint32_t minutes = seconds / 60UL;
155 uint32_t hours = minutes / 60UL;
156 uint8_t days = hours / 24UL;
163 strncpy_P(buffer, PSTR(
"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n"), 45);
164 _client.print(buffer);
165 strncpy_P(buffer, PSTR(
"Connection: close\r\n\n<!DOCTYPE HTML>\n<html>\n"), 45);
166 _client.print(buffer);
167 strncpy_P(buffer, PSTR(
"<head><style>body{background-color:linen;}\n"), 45);
168 _client.print(buffer);
169 strncpy_P(buffer, PSTR(
"td{border: 1px solid black;}</style></head>\n"), 45);
170 _client.print(buffer);
171 strncpy_P(buffer, PSTR(
"<body><table><tr><td> Uptime</td><td>\n"), 45);
172 _client.print(buffer);
173 sprintf_P(buffer, PSTR(
"%u days, %lu hours %lu minutes %lu"), days, hours, minutes, seconds);
174 _client.print(buffer);
175 strncpy_P(buffer, PSTR(
"seconds</td></tr><tr><td>UIP Buffer Size"), 45);
176 _client.print(buffer);
177 sprintf_P(buffer, PSTR(
"</td><td>%u bytes</td></tr><tr><td>User "), UIP_BUFSIZE);
178 _client.print(buffer);
179 sprintf_P(buffer, PSTR(
"Output<br>Buffer Size</td><td>%u bytes"),
OUTPUT_BUFFER_SIZE);
180 _client.print(buffer);
181 strncpy_P(buffer, PSTR(
"</td></tr></table><br><br>"), 45);
182 _client.print(buffer);
183 strncpy_P(buffer, PSTR(
"<a href='/'>Home</a></body></html>"), 45);
184 _client.print(buffer);
192static const PROGMEM
char html_page[] =
"HTTP/1.1 200 OK\r\n"
193 "Content-Type: text/html\r\n"
194 "Connection: close\r\n\n"
198 "<b>Hello From Arduino!</b>"
void main_page(EthernetClient &_client)
void stats_page(EthernetClient &_client)
void sendPage(EthernetClient &_client, const char *_pointer, size_t size)
void credits_page(EthernetClient &_client)
#define OUTPUT_BUFFER_SIZE