Вообще чума! Обязательно напиши как пользоваться!!
Нет это не сериал, это кеширование страниц в действии, призвано сделать работу более уверенной, смысл в том что мы отдаем браузеру команду кешировать содержимое сайта, в результате чесная загрузка происходит только при первом обращении, потом браузер загружает локальные копии
строки
void sendHtmlAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnnection: close\r\nCache-Control: private, max-age=86400*365,must-revalidate\r\n\r\n"),cl);}
void sendCssAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: text/css\r\nConnnection: close\r\nCache-Control: private, max-age=86400*365,must-revalidate\r\n\r\n"),cl);}
void sendJsAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: application/javascript\r\nConnnection: close\r\n\r\n"),cl);}
void sendImgAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: image/png\r\nConnnection: close\r\nCache-Control: private, max-age=86400*365,must-revalidate\r\n\r\n"),cl);}
void sendXmlAnswer(EthernetClient cl)
{write_p(PSTR("HTTP/1.1 200 OK\r\nContent-Type: text/xml\r\nConnnection: close\r\n\r\n"),cl);}
управляют процессом кеширования, число после max-age время в секундах в течении которого будет валиден кеш.
еще одна полезная функция это
void write_p(const char *progmem_s,EthernetClient cl){
char c;
char Buf[512];
uint8_t Count=0;
while ((c = pgm_read_byte_near(progmem_s++))) {
Buf[Count]=c;
Count++;
}
cl.write(Buf,Count);
}
позволяет читать константы из памяти программ, существенно экономя оперативку(строка
PSTR("HTTP/1.1 200 OK\r\nContent-Type: text/xml\r\nConnnection: close\r\n\r\n находится в памяти программ) также можно хранить в памяти небольшую веб страницу, write_p позволяет зараз прочитать 512 байт, поместив ее в цикл можно прочитать любое количество байт.
попробуй эти файлы, при отсутствии SD карты будет выплевывать
File ne nayden,proverte SD karty
после внесения изменений не забудь сбрасывать кеш