6#if !defined(ARDUINO_ARCH_AVR)
7#define strncpy_P strncpy
10#define OUTPUT_BUFFER_SIZE MAX_PAYLOAD_SIZE
24static const PROGMEM
char begin_html[] =
"HTTP/1.1 200 OK\r\n"
25 "Content-Type: text/html\r\n"
26 "Connection: close\r\n\n"
30 "body{background-color:linen; text-align: center}"
31 "table.center{margin-left:auto;margin-right:auto;}"
43 "<img src='http://arduino.cc/en/uploads/Trademark/ArduinoCommunityLogo.png'"
44 "style='width:383px;height:162px'>"
45 "<br><b>Hello From Arduino!</b><br>\n"
46 "<br><br> LED/Digital Pin Control:"
47 "<br><br>\n<table class = 'center'>";
53 "<tr><td><a href='/ON'>Turn LED On</a>"
55 "<br></td><td><a href='/OF'>Turn LED Off</a>"
57 "<br></td></tr></table><br><a href='/ST'>"
59 "Stats</a> <a href='/CR'>Credits</a>"
67 "<img src='http://arduino.cc/en/uploads/Trademark/ArduinoCommunityLogo.png'"
68 "style='width:383px;height:162px'>"
69 "<br><b>Credits:</b><br><table class='center'><tr>"
70 "<td>RF24Ethernet by </td>"
71 "<td><a href='https://github.com/tmrh20'> TMRh20</a></td>"
74 "<td><a href='https://github.com/adamdunkels/uip'> Adam Dunkels</a></td>"
77 "<td><a href='https://github.com/ntruchsess/arduino_uip'> UIPEthernet</a></td>"
79 "<td>Documentation:</td><td> <a href='http://nRF24.github.io/RF24Ethernet/'>github.io</a></td>"
82 "<td>RF24toTUN creator:</td><td> <a href='https://github.com/reixd/'>Reixd</a></td>"
85 "<br>And everybody who contributed to RF24 and RF24Network"
86 "<br><br><a href='/'>Home</a>"
98 for (uint16_t i = 0; i < size; i++) {
99 _client.print((
char)pgm_read_byte(_pointer++));
117 const char* lState =
led_state ?
"ON" :
"OFF";
118 const char* lColor =
led_state ?
"darkseagreen 1" :
"lightpink";
123 sprintf_P(bf, PSTR(
"<tr><td bgcolor=%s>\n"), lColor);
125 sprintf_P(bf, PSTR(
"LED is %s</td></tr>\n"), lState);
127 sprintf_P(bf, PSTR(
"<tr><td> </td><td bgcolor=%s>\n"), lColor);
129 sprintf_P(bf, PSTR(
"LED is %s</td></tr>\n"), lState);
155 uint32_t seconds = millis() / 1000UL;
156 uint32_t minutes = seconds / 60UL;
157 uint32_t hours = minutes / 60UL;
158 uint8_t days = hours / 24UL;
165 strncpy_P(buffer, PSTR(
"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n"), 45);
166 _client.print(buffer);
167 strncpy_P(buffer, PSTR(
"Connection: close\r\n\n<!DOCTYPE HTML>\n<html>\n"), 45);
168 _client.print(buffer);
169 strncpy_P(buffer, PSTR(
"<head><style>body{background-color:linen;}\n"), 45);
170 _client.print(buffer);
171 strncpy_P(buffer, PSTR(
"td{border: 1px solid black;}</style></head>\n"), 45);
172 _client.print(buffer);
173 strncpy_P(buffer, PSTR(
"<body><table><tr><td> Uptime</td><td>\n"), 45);
174 _client.print(buffer);
175 sprintf_P(buffer, PSTR(
"%u days, %lu hours %lu minutes %lu"), days, hours, minutes, seconds);
176 _client.print(buffer);
177 strncpy_P(buffer, PSTR(
"seconds</td></tr><tr><td>UIP Buffer Size"), 45);
178 _client.print(buffer);
180 sprintf_P(buffer, PSTR(
"</td><td>%u bytes</td></tr><tr><td>User "), UIP_BUFSIZE);
182 sprintf_P(buffer, PSTR(
"</td><td>%u bytes</td></tr><tr><td>User "),
Ethernet.MAX_FRAME_SIZE);
184 _client.print(buffer);
185 sprintf_P(buffer, PSTR(
"Output<br>Buffer Size</td><td>%u bytes"),
OUTPUT_BUFFER_SIZE);
186 _client.print(buffer);
187 strncpy_P(buffer, PSTR(
"</td></tr></table><br><br>"), 45);
188 _client.print(buffer);
189 strncpy_P(buffer, PSTR(
"<a href='/'>Home</a></body></html>"), 45);
190 _client.print(buffer);
198static const PROGMEM
char html_page[] =
"HTTP/1.1 200 OK\r\n"
199 "Content-Type: text/html\r\n"
200 "Connection: close\r\n\n"
204 "<b>Hello From Arduino!</b>"
static const PROGMEM char html_page[]
static const PROGMEM char credits_html[]
void main_page(EthernetClient &_client)
void stats_page(EthernetClient &_client)
static const PROGMEM char main_html_p2[]
void sendPage(EthernetClient &_client, const char *_pointer, size_t size)
static const PROGMEM char main_html_p1[]
void credits_page(EthernetClient &_client)
static const PROGMEM char begin_html[]
#define OUTPUT_BUFFER_SIZE