AVR Урок 51. LAN. ENC28J60. TCP WEB Server. Передаём страницу побольше. Часть 2



 

Урок 51

Часть 2

 

LAN. ENC28J60. TCP WEB Server. Передаём страницу побольше

 

В предыдущей части нашего занятия мы провели определённую оптимизацию проекта и написали код, который будет отличать запрос клинетном главной страницы от остальных запросов, а также передали ответ на запрос клиентом несуществущего документа. Также мы передали клиенту страницу, состоящую из двух пакетов TCP.

 

Дальнейшая работа предстоит над передачей документа в три и более пакета. Для этого создадим функцию для передачи одного из средних пакетов документа. Добавим её между функциями передачи первого и последнего пакетов

 

//--------------------------------------------------

/*Отправка среднего пакета многопакетного ответа HTTP*/

uint8_t tcp_send_http_middle(enc28j60_frame_ptr *frame, uint32_t ip_addr, uint16_t port)

{

  uint8_t res=0;

  uint16_t len_tcp=0, len=0;

  ip_pkt_ptr *ip_pkt = (void*)(frame->data);

  tcp_pkt_ptr *tcp_pkt = (void*)(ip_pkt->data);

  return res;

}

//--------------------------------------------------

 

Вызовем данную функцию в последнем условии функции tcp_read

 

else if (tcp_pkt->fl == TCP_ACK)

{

  if (tcpprop.data_stat==DATA_END)

  {

    tcp_send_http_dataend(frame, ip_pkt->ipaddr_src, tcpprop.port_dst);

  }

  else if (tcpprop.data_stat==DATA_MIDDLE)

  {

    tcp_send_http_middle(frame, tcpprop.ipaddr_dst, tcpprop.port_dst);

  }

  else if (tcpprop.data_stat==DATA_LAST)

 

Продолжим писать нашу функцию.

Как всегда, вычислим номер сегмента и сохраним его в структуре в соответствующем поле, а также занесём длину заголовка TCP в соответствующую переменную

 

tcp_pkt_ptr *tcp_pkt = (void*)(ip_pkt->data);

//Отправляем одну из средних частей страницы

//Заполним заголовок пакета TCP

tcpprop.seq_num = be32todword(be32todword(tcpprop.seq_num)+tcp_mss);

len_tcp = sizeof(tcp_pkt_ptr);

 

 

Затем заполним поле данных, применяя операции копирования из FLASH-памяти, а также применяя хитрый расчёт смещения по массиву с документом, зависящий от общего количества частей и оставшегося количества частей (для чего мы в начале заниятия и придумывали новое поле в структуре). Также представим, что страница с ошибкой у нас тоже очень большая. Хоть это и не так, но возможно в будущем нам это пригодится для отправки больших документов, не являющихся главной страницей

 

len_tcp = sizeof(tcp_pkt_ptr);

if (tcpprop.http_doc==INDEX_HTML)

{

  memcpy_P((void*)tcp_pkt->data,(void*)index_htm+(tcp_mss*(tcpprop.cnt_data_part-tcpprop.cnt_rem_data_part))-strlen_P(http_header),tcp_mss);

}

else

{

  memcpy_P((void*)tcp_pkt->data,(void*)e404_htm+(tcp_mss*(tcpprop.cnt_data_part-tcpprop.cnt_rem_data_part))-strlen_P(error_header),tcp_mss);

}

 

Далее подсчитываем длину для расчёта контрольной суммы и вызываем функцию подготовки пакета TCP

 

  memcpy_P((void*)tcp_pkt->data,(void*)e404_htm+(tcp_mss*(tcpprop.cnt_data_part-tcpprop.cnt_rem_data_part))-strlen_P(error_header),tcp_mss);

}

len=len_tcp + tcp_mss;

tcp_header_prepare(tcp_pkt, port, TCP_ACK, len_tcp, len);

 

Затем готовим пакет IP, затем пакет Ethernet, последний передаём клиенту

 

tcp_header_prepare(tcp_pkt, port, TCP_ACK, len_tcp, len);

len+=sizeof(ip_pkt_ptr);

ip_header_prepare(ip_pkt, ip_addr, IP_TCP, len);

//Заполним заголовок Ethernet

memcpy(frame->addr_dest,tcpprop.macaddr_dst,6);

eth_send(frame,ETH_IP,len);

 

 

Уменьшим оставшееся количество пакетов для передачи клиенту

 

eth_send(frame,ETH_IP,len);

//будем считать, что ещё одну часть отправили, поэтому количество оставшихся частей декрементируем

tcpprop.cnt_rem_data_part--;

 

А по окончанию функции определимся в том, последний ли будет у нас следующий пакет или нет, в соответствии с этим примем нужное решение

 

  tcpprop.cnt_rem_data_part--;

  if(tcpprop.cnt_rem_data_part>1)

  {

    //tcpprop.ack_num = be32todword(be32todword(tcpprop.ack_num)+tcp_mss);

    tcpprop.data_stat=DATA_MIDDLE;

  }

  else

  {

    tcpprop.data_stat=DATA_LAST;

  }

  return res;

}

 

Подготовим теперь страничку, которая вместе с заголовком влезет в три пакета, и изменим наш массив с главной страницей

 

index_htm 3 пакета

const PROGMEM uint8_t index_htm[] = {

0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x3c,0x68,0x31,0x20,

0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,

0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x22,0x3e,0x41,0x74,0x4d,0x65,

0x67,0x61,0x20,0x33,0x32,0x38,0x50,0x3c,0x62,0x72,0x3e,0x3c,0x62,0x72,0x3e,0x57,

0x45,0x42,0x20,0x53,0x65,0x72,0x77,0x65,0x72,0x3c,0x2f,0x68,0x31,0x3e,0x0a,0x3c,

0x70,0x3e,0x41,0x64,0x76,0x61,0x6e,0x63,0x65,0x64,0x20,0x52,0x49,0x53,0x43,0x20,

0x41,0x72,0x63,0x68,0x69,0x74,0x65,0x63,0x74,0x75,0x72,0x65,0x3c,0x2f,0x70,0x3e,

0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x31,0x33,

0x31,0x20,0x50,0x6f,0x77,0x65,0x72,0x66,0x75,0x6c,0x20,0x49,0x6e,0x73,0x74,0x72,

0x75,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0xe2,0x80,0x93,0x20,0x4d,0x6f,0x73,0x74,

0x20,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x43,0x6c,0x6f,0x63,0x6b,0x20,0x43,0x79,

0x63,0x6c,0x65,0x20,0x45,0x78,0x65,0x63,0x75,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x6c,

0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x33,0x32,0x20,0x78,0x20,0x38,0x20,0x47,

0x65,0x6e,0x65,0x72,0x61,0x6c,0x20,0x50,0x75,0x72,0x70,0x6f,0x73,0x65,0x20,0x57,

0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x52,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x73,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x46,0x75,0x6c,0x6c,0x79,

0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,

0x6e,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x55,0x70,0x20,0x74,

0x6f,0x20,0x32,0x30,0x20,0x4d,0x49,0x50,0x53,0x20,0x54,0x68,0x72,0x6f,0x75,0x67,

0x68,0x70,0x75,0x74,0x20,0x61,0x74,0x20,0x32,0x30,0x20,0x4d,0x48,0x7a,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x6e,0x2d,0x63,0x68,0x69,0x70,

0x20,0x32,0x2d,0x63,0x79,0x63,0x6c,0x65,0x20,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,

0x69,0x65,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,

0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x48,0x69,0x67,0x68,0x20,0x45,0x6e,0x64,0x75,0x72,

0x61,0x6e,0x63,0x65,0x20,0x4e,0x6f,0x6e,0x2d,0x76,0x6f,0x6c,0x61,0x74,0x69,0x6c,

0x65,0x20,0x4d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x53,0x65,0x67,0x6d,0x65,0x6e,0x74,

0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,

0x6c,0x69,0x3e,0x34,0x2f,0x38,0x2f,0x31,0x36,0x2f,0x33,0x32,0x4b,0x20,0x42,0x79,

0x74,0x65,0x73,0x20,0x6f,0x66,0x20,0x49,0x6e,0x2d,0x53,0x79,0x73,0x74,0x65,0x6d,

0x20,0x53,0x65,0x6c,0x66,0x2d,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x6d,0x61,0x62,

0x6c,0x65,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x70,0x72,0x6f,0x67,0x61,0x6d,0x20,

0x6d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x28,0x41,0x54,0x6d,0x65,0x67,0x61,0x34,0x38,

0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,0x33,0x32,0x38,0x50,0x29,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x32,0x35,0x36,0x2f,0x35,

0x31,0x32,0x2f,0x35,0x31,0x32,0x2f,0x31,0x4b,0x20,0x42,0x79,0x74,0x65,0x73,0x20,

0x45,0x45,0x50,0x52,0x4f,0x4d,0x20,0x28,0x41,0x54,0x6d,0x65,0x67,0x61,0x34,0x38,

0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,0x33,0x32,0x38,0x50,0x29,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x35,0x31,0x32,0x2f,0x31,

0x4b,0x2f,0x31,0x4b,0x2f,0x32,0x4b,0x20,0x42,0x79,0x74,0x65,0x73,0x20,0x49,0x6e,

0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x53,0x52,0x41,0x4d,0x20,0x28,0x41,0x54,0x6d,

0x65,0x67,0x61,0x34,0x38,0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,

0x33,0x32,0x38,0x50,0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,

0x57,0x72,0x69,0x74,0x65,0x2f,0x45,0x72,0x61,0x73,0x65,0x20,0x43,0x79,0x63,0x6c,

0x65,0x73,0x3a,0x20,0x31,0x30,0x2c,0x30,0x30,0x30,0x20,0x46,0x6c,0x61,0x73,0x68,

0x2f,0x31,0x30,0x30,0x2c,0x30,0x30,0x30,0x20,0x45,0x45,0x50,0x52,0x4f,0x4d,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x44,0x61,0x74,0x61,0x20,0x72,

0x65,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x32,0x30,0x20,0x79,0x65,0x61,

0x72,0x73,0x20,0x61,0x74,0x20,0x38,0x35,0x20,0x43,0x20,0x2f,0x20,0x31,0x30,0x30,

0x20,0x79,0x65,0x61,0x72,0x73,0x20,0x61,0x74,0x20,0x32,0x35,0x43,0x20,0x28,0x31,

0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x70,0x74,0x69,

0x6f,0x6e,0x61,0x6c,0x20,0x42,0x6f,0x6f,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,

0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x49,0x6e,0x64,0x65,

0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x20,0x4c,0x6f,0x63,0x6b,0x20,0x42,0x69,0x74,

0x73,0x20,0x49,0x6e,0x2d,0x53,0x79,0x73,0x74,0x65,0x6d,0x20,0x50,0x72,0x6f,0x67,

0x72,0x61,0x6d,0x6d,0x69,0x6e,0x67,0x20,0x62,0x79,0x20,0x4f,0x6e,0x2d,0x63,0x68,

0x69,0x70,0x20,0x42,0x6f,0x6f,0x74,0x20,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x20,

0x54,0x72,0x75,0x65,0x20,0x52,0x65,0x61,0x64,0x2d,0x57,0x68,0x69,0x6c,0x65,0x2d,

0x57,0x72,0x69,0x74,0x65,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x50,0x72,0x6f,0x67,0x72,0x61,

0x6d,0x6d,0x69,0x6e,0x67,0x20,0x4c,0x6f,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x53,

0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x53,0x65,0x63,0x75,0x72,0x69,0x74,0x79,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,

0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e};

 

Соберём код, прошьём контроллер и проверим, что наша страница отображается в браузере на запрос клиента. Показывать я это здесь уже не буду, думаю, вы поверите мне на слово.

Теперь проделаем те же действия со страницами в 4, 5 и 6 частей (пакетов).

Приведу составы их массивов

 

index_htm 4 пакета

const PROGMEM uint8_t index_htm[] = {

0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x3c,0x68,0x31,0x20,

0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,

0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x22,0x3e,0x41,0x74,0x4d,0x65,

0x67,0x61,0x20,0x33,0x32,0x38,0x50,0x3c,0x62,0x72,0x3e,0x3c,0x62,0x72,0x3e,0x57,

0x45,0x42,0x20,0x53,0x65,0x72,0x77,0x65,0x72,0x3c,0x2f,0x68,0x31,0x3e,0x0a,0x3c,

0x70,0x3e,0x41,0x64,0x76,0x61,0x6e,0x63,0x65,0x64,0x20,0x52,0x49,0x53,0x43,0x20,

0x41,0x72,0x63,0x68,0x69,0x74,0x65,0x63,0x74,0x75,0x72,0x65,0x3c,0x2f,0x70,0x3e,

0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x31,0x33,

0x31,0x20,0x50,0x6f,0x77,0x65,0x72,0x66,0x75,0x6c,0x20,0x49,0x6e,0x73,0x74,0x72,

0x75,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0xe2,0x80,0x93,0x20,0x4d,0x6f,0x73,0x74,

0x20,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x43,0x6c,0x6f,0x63,0x6b,0x20,0x43,0x79,

0x63,0x6c,0x65,0x20,0x45,0x78,0x65,0x63,0x75,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x6c,

0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x33,0x32,0x20,0x78,0x20,0x38,0x20,0x47,

0x65,0x6e,0x65,0x72,0x61,0x6c,0x20,0x50,0x75,0x72,0x70,0x6f,0x73,0x65,0x20,0x57,

0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x52,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x73,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x46,0x75,0x6c,0x6c,0x79,

0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,

0x6e,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x55,0x70,0x20,0x74,

0x6f,0x20,0x32,0x30,0x20,0x4d,0x49,0x50,0x53,0x20,0x54,0x68,0x72,0x6f,0x75,0x67,

0x68,0x70,0x75,0x74,0x20,0x61,0x74,0x20,0x32,0x30,0x20,0x4d,0x48,0x7a,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x6e,0x2d,0x63,0x68,0x69,0x70,

0x20,0x32,0x2d,0x63,0x79,0x63,0x6c,0x65,0x20,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,

0x69,0x65,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,

0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x48,0x69,0x67,0x68,0x20,0x45,0x6e,0x64,0x75,0x72,

0x61,0x6e,0x63,0x65,0x20,0x4e,0x6f,0x6e,0x2d,0x76,0x6f,0x6c,0x61,0x74,0x69,0x6c,

0x65,0x20,0x4d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x53,0x65,0x67,0x6d,0x65,0x6e,0x74,

0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,

0x6c,0x69,0x3e,0x34,0x2f,0x38,0x2f,0x31,0x36,0x2f,0x33,0x32,0x4b,0x20,0x42,0x79,

0x74,0x65,0x73,0x20,0x6f,0x66,0x20,0x49,0x6e,0x2d,0x53,0x79,0x73,0x74,0x65,0x6d,

0x20,0x53,0x65,0x6c,0x66,0x2d,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x6d,0x61,0x62,

0x6c,0x65,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x70,0x72,0x6f,0x67,0x61,0x6d,0x20,

0x6d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x28,0x41,0x54,0x6d,0x65,0x67,0x61,0x34,0x38,

0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,0x33,0x32,0x38,0x50,0x29,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x32,0x35,0x36,0x2f,0x35,

0x31,0x32,0x2f,0x35,0x31,0x32,0x2f,0x31,0x4b,0x20,0x42,0x79,0x74,0x65,0x73,0x20,

0x45,0x45,0x50,0x52,0x4f,0x4d,0x20,0x28,0x41,0x54,0x6d,0x65,0x67,0x61,0x34,0x38,

0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,0x33,0x32,0x38,0x50,0x29,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x35,0x31,0x32,0x2f,0x31,

0x4b,0x2f,0x31,0x4b,0x2f,0x32,0x4b,0x20,0x42,0x79,0x74,0x65,0x73,0x20,0x49,0x6e,

0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x53,0x52,0x41,0x4d,0x20,0x28,0x41,0x54,0x6d,

0x65,0x67,0x61,0x34,0x38,0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,

0x33,0x32,0x38,0x50,0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,

0x57,0x72,0x69,0x74,0x65,0x2f,0x45,0x72,0x61,0x73,0x65,0x20,0x43,0x79,0x63,0x6c,

0x65,0x73,0x3a,0x20,0x31,0x30,0x2c,0x30,0x30,0x30,0x20,0x46,0x6c,0x61,0x73,0x68,

0x2f,0x31,0x30,0x30,0x2c,0x30,0x30,0x30,0x20,0x45,0x45,0x50,0x52,0x4f,0x4d,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x44,0x61,0x74,0x61,0x20,0x72,

0x65,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x32,0x30,0x20,0x79,0x65,0x61,

0x72,0x73,0x20,0x61,0x74,0x20,0x38,0x35,0x20,0x43,0x20,0x2f,0x20,0x31,0x30,0x30,

0x20,0x79,0x65,0x61,0x72,0x73,0x20,0x61,0x74,0x20,0x32,0x35,0x43,0x20,0x28,0x31,

0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x70,0x74,0x69,

0x6f,0x6e,0x61,0x6c,0x20,0x42,0x6f,0x6f,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,

0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x49,0x6e,0x64,0x65,

0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x20,0x4c,0x6f,0x63,0x6b,0x20,0x42,0x69,0x74,

0x73,0x20,0x49,0x6e,0x2d,0x53,0x79,0x73,0x74,0x65,0x6d,0x20,0x50,0x72,0x6f,0x67,

0x72,0x61,0x6d,0x6d,0x69,0x6e,0x67,0x20,0x62,0x79,0x20,0x4f,0x6e,0x2d,0x63,0x68,

0x69,0x70,0x20,0x42,0x6f,0x6f,0x74,0x20,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x20,

0x54,0x72,0x75,0x65,0x20,0x52,0x65,0x61,0x64,0x2d,0x57,0x68,0x69,0x6c,0x65,0x2d,

0x57,0x72,0x69,0x74,0x65,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x50,0x72,0x6f,0x67,0x72,0x61,

0x6d,0x6d,0x69,0x6e,0x67,0x20,0x4c,0x6f,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x53,

0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x53,0x65,0x63,0x75,0x72,0x69,0x74,0x79,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,

0x3c,0x70,0x3e,0x41,0x74,0x6d,0x65,0x6c,0xc2,0xae,0x20,0x51,0x54,0x6f,0x75,0x63,

0x68,0xc2,0xae,0x20,0x4c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x53,0x75,0x70,0x70,

0x6f,0x72,0x74,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,

0x09,0x3c,0x6c,0x69,0x3e,0x43,0x61,0x70,0x61,0x63,0x69,0x74,0x69,0x76,0x65,0x20,

0x54,0x6f,0x75,0x63,0x68,0x20,0x42,0x75,0x74,0x74,0x6f,0x6e,0x73,0x2c,0x20,0x53,

0x6c,0x69,0x64,0x65,0x72,0x73,0x20,0x61,0x6e,0x64,0x20,0x57,0x68,0x65,0x65,0x6c,

0x73,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x51,0x54,0x6f,0x75,

0x63,0x68,0x20,0x61,0x6e,0x64,0x20,0x51,0x4d,0x61,0x74,0x72,0x69,0x78,0xc2,0xae,

0x20,0x41,0x63,0x71,0x75,0x69,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x6c,0x69,

0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x55,0x70,0x20,0x74,0x6f,0x20,0x36,0x34,0x20,

0x73,0x65,0x6e,0x73,0x65,0x20,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x73,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,

0x3e,0x50,0x65,0x72,0x69,0x70,0x68,0x65,0x72,0x61,0x6c,0x20,0x46,0x65,0x61,0x74,

0x75,0x72,0x65,0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,

0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x54,0x77,0x6f,0x20,0x38,0x2d,0x62,0x69,0x74,0x20,

0x54,0x69,0x6d,0x65,0x72,0x2f,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x73,0x20,0x77,

0x69,0x74,0x68,0x20,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x50,0x72,0x65,

0x73,0x63,0x61,0x6c,0x65,0x72,0x20,0x61,0x6e,0x64,0x20,0x43,0x6f,0x6d,0x70,0x61,

0x72,0x65,0x20,0x4d,0x6f,0x64,0x65,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,

0x69,0x3e,0x4f,0x6e,0x65,0x20,0x31,0x36,0x2d,0x62,0x69,0x74,0x20,0x54,0x69,0x6d,

0x65,0x72,0x2f,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,

0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x50,0x72,0x65,0x73,0x63,0x61,0x6c,

0x65,0x72,0x2c,0x20,0x43,0x6f,0x6d,0x70,0x61,0x72,0x65,0x20,0x4d,0x6f,0x64,0x65,

0x2c,0x20,0x61,0x6e,0x64,0x20,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x4d,0x6f,

0x64,0x65,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x52,0x65,0x61,

0x6c,0x20,0x54,0x69,0x6d,0x65,0x20,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x77,

0x69,0x74,0x68,0x20,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x4f,0x73,0x63,

0x69,0x6c,0x6c,0x61,0x74,0x6f,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,

0x69,0x3e,0x53,0x69,0x78,0x20,0x50,0x57,0x4d,0x20,0x43,0x68,0x61,0x6e,0x6e,0x65,

0x6c,0x73,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x38,0x2d,0x63,

0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x31,0x30,0x2d,0x62,0x69,0x74,0x20,0x41,0x44,

0x43,0x20,0x69,0x6e,0x20,0x54,0x51,0x46,0x50,0x20,0x61,0x6e,0x64,0x20,0x51,0x46,

0x4e,0x2f,0x4d,0x4c,0x46,0x20,0x70,0x61,0x63,0x6b,0x61,0x67,0x65,0x20,0x54,0x65,

0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x20,0x4d,0x65,0x61,0x73,0x75,0x72,

0x65,0x6d,0x65,0x6e,0x74,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,

0x36,0x2d,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x31,0x30,0x2d,0x62,0x69,0x74,

0x20,0x41,0x44,0x43,0x20,0x69,0x6e,0x20,0x50,0x44,0x49,0x50,0x20,0x50,0x61,0x63,

0x6b,0x61,0x67,0x65,0x20,0x54,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,

0x20,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x6d,0x65,0x6e,0x74,0x3c,0x2f,0x6c,0x69,

0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x2f,0x62,0x6f,

0x64,0x79,0x3e,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e};

index_htm 5 пакетов

const PROGMEM uint8_t index_htm[] = {

0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x3c,0x68,0x31,0x20,

0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,

0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x22,0x3e,0x41,0x74,0x4d,0x65,

0x67,0x61,0x20,0x33,0x32,0x38,0x50,0x3c,0x62,0x72,0x3e,0x3c,0x62,0x72,0x3e,0x57,

0x45,0x42,0x20,0x53,0x65,0x72,0x77,0x65,0x72,0x3c,0x2f,0x68,0x31,0x3e,0x0a,0x3c,

0x70,0x3e,0x41,0x64,0x76,0x61,0x6e,0x63,0x65,0x64,0x20,0x52,0x49,0x53,0x43,0x20,

0x41,0x72,0x63,0x68,0x69,0x74,0x65,0x63,0x74,0x75,0x72,0x65,0x3c,0x2f,0x70,0x3e,

0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x31,0x33,

0x31,0x20,0x50,0x6f,0x77,0x65,0x72,0x66,0x75,0x6c,0x20,0x49,0x6e,0x73,0x74,0x72,

0x75,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0xe2,0x80,0x93,0x20,0x4d,0x6f,0x73,0x74,

0x20,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x43,0x6c,0x6f,0x63,0x6b,0x20,0x43,0x79,

0x63,0x6c,0x65,0x20,0x45,0x78,0x65,0x63,0x75,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x6c,

0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x33,0x32,0x20,0x78,0x20,0x38,0x20,0x47,

0x65,0x6e,0x65,0x72,0x61,0x6c,0x20,0x50,0x75,0x72,0x70,0x6f,0x73,0x65,0x20,0x57,

0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x52,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x73,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x46,0x75,0x6c,0x6c,0x79,

0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,

0x6e,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x55,0x70,0x20,0x74,

0x6f,0x20,0x32,0x30,0x20,0x4d,0x49,0x50,0x53,0x20,0x54,0x68,0x72,0x6f,0x75,0x67,

0x68,0x70,0x75,0x74,0x20,0x61,0x74,0x20,0x32,0x30,0x20,0x4d,0x48,0x7a,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x6e,0x2d,0x63,0x68,0x69,0x70,

0x20,0x32,0x2d,0x63,0x79,0x63,0x6c,0x65,0x20,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,

0x69,0x65,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,

0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x48,0x69,0x67,0x68,0x20,0x45,0x6e,0x64,0x75,0x72,

0x61,0x6e,0x63,0x65,0x20,0x4e,0x6f,0x6e,0x2d,0x76,0x6f,0x6c,0x61,0x74,0x69,0x6c,

0x65,0x20,0x4d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x53,0x65,0x67,0x6d,0x65,0x6e,0x74,

0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,

0x6c,0x69,0x3e,0x34,0x2f,0x38,0x2f,0x31,0x36,0x2f,0x33,0x32,0x4b,0x20,0x42,0x79,

0x74,0x65,0x73,0x20,0x6f,0x66,0x20,0x49,0x6e,0x2d,0x53,0x79,0x73,0x74,0x65,0x6d,

0x20,0x53,0x65,0x6c,0x66,0x2d,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x6d,0x61,0x62,

0x6c,0x65,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x70,0x72,0x6f,0x67,0x61,0x6d,0x20,

0x6d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x28,0x41,0x54,0x6d,0x65,0x67,0x61,0x34,0x38,

0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,0x33,0x32,0x38,0x50,0x29,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x32,0x35,0x36,0x2f,0x35,

0x31,0x32,0x2f,0x35,0x31,0x32,0x2f,0x31,0x4b,0x20,0x42,0x79,0x74,0x65,0x73,0x20,

0x45,0x45,0x50,0x52,0x4f,0x4d,0x20,0x28,0x41,0x54,0x6d,0x65,0x67,0x61,0x34,0x38,

0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,0x33,0x32,0x38,0x50,0x29,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x35,0x31,0x32,0x2f,0x31,

0x4b,0x2f,0x31,0x4b,0x2f,0x32,0x4b,0x20,0x42,0x79,0x74,0x65,0x73,0x20,0x49,0x6e,

0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x53,0x52,0x41,0x4d,0x20,0x28,0x41,0x54,0x6d,

0x65,0x67,0x61,0x34,0x38,0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,

0x33,0x32,0x38,0x50,0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,

0x57,0x72,0x69,0x74,0x65,0x2f,0x45,0x72,0x61,0x73,0x65,0x20,0x43,0x79,0x63,0x6c,

0x65,0x73,0x3a,0x20,0x31,0x30,0x2c,0x30,0x30,0x30,0x20,0x46,0x6c,0x61,0x73,0x68,

0x2f,0x31,0x30,0x30,0x2c,0x30,0x30,0x30,0x20,0x45,0x45,0x50,0x52,0x4f,0x4d,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x44,0x61,0x74,0x61,0x20,0x72,

0x65,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x32,0x30,0x20,0x79,0x65,0x61,

0x72,0x73,0x20,0x61,0x74,0x20,0x38,0x35,0x20,0x43,0x20,0x2f,0x20,0x31,0x30,0x30,

0x20,0x79,0x65,0x61,0x72,0x73,0x20,0x61,0x74,0x20,0x32,0x35,0x43,0x20,0x28,0x31,

0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x70,0x74,0x69,

0x6f,0x6e,0x61,0x6c,0x20,0x42,0x6f,0x6f,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,

0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x49,0x6e,0x64,0x65,

0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x20,0x4c,0x6f,0x63,0x6b,0x20,0x42,0x69,0x74,

0x73,0x20,0x49,0x6e,0x2d,0x53,0x79,0x73,0x74,0x65,0x6d,0x20,0x50,0x72,0x6f,0x67,

0x72,0x61,0x6d,0x6d,0x69,0x6e,0x67,0x20,0x62,0x79,0x20,0x4f,0x6e,0x2d,0x63,0x68,

0x69,0x70,0x20,0x42,0x6f,0x6f,0x74,0x20,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x20,

0x54,0x72,0x75,0x65,0x20,0x52,0x65,0x61,0x64,0x2d,0x57,0x68,0x69,0x6c,0x65,0x2d,

0x57,0x72,0x69,0x74,0x65,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x50,0x72,0x6f,0x67,0x72,0x61,

0x6d,0x6d,0x69,0x6e,0x67,0x20,0x4c,0x6f,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x53,

0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x53,0x65,0x63,0x75,0x72,0x69,0x74,0x79,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,

0x3c,0x70,0x3e,0x41,0x74,0x6d,0x65,0x6c,0xc2,0xae,0x20,0x51,0x54,0x6f,0x75,0x63,

0x68,0xc2,0xae,0x20,0x4c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x53,0x75,0x70,0x70,

0x6f,0x72,0x74,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,

0x09,0x3c,0x6c,0x69,0x3e,0x43,0x61,0x70,0x61,0x63,0x69,0x74,0x69,0x76,0x65,0x20,

0x54,0x6f,0x75,0x63,0x68,0x20,0x42,0x75,0x74,0x74,0x6f,0x6e,0x73,0x2c,0x20,0x53,

0x6c,0x69,0x64,0x65,0x72,0x73,0x20,0x61,0x6e,0x64,0x20,0x57,0x68,0x65,0x65,0x6c,

0x73,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x51,0x54,0x6f,0x75,

0x63,0x68,0x20,0x61,0x6e,0x64,0x20,0x51,0x4d,0x61,0x74,0x72,0x69,0x78,0xc2,0xae,

0x20,0x41,0x63,0x71,0x75,0x69,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x6c,0x69,

0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x55,0x70,0x20,0x74,0x6f,0x20,0x36,0x34,0x20,

0x73,0x65,0x6e,0x73,0x65,0x20,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x73,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,

0x3e,0x50,0x65,0x72,0x69,0x70,0x68,0x65,0x72,0x61,0x6c,0x20,0x46,0x65,0x61,0x74,

0x75,0x72,0x65,0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,

0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x54,0x77,0x6f,0x20,0x38,0x2d,0x62,0x69,0x74,0x20,

0x54,0x69,0x6d,0x65,0x72,0x2f,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x73,0x20,0x77,

0x69,0x74,0x68,0x20,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x50,0x72,0x65,

0x73,0x63,0x61,0x6c,0x65,0x72,0x20,0x61,0x6e,0x64,0x20,0x43,0x6f,0x6d,0x70,0x61,

0x72,0x65,0x20,0x4d,0x6f,0x64,0x65,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,

0x69,0x3e,0x4f,0x6e,0x65,0x20,0x31,0x36,0x2d,0x62,0x69,0x74,0x20,0x54,0x69,0x6d,

0x65,0x72,0x2f,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,

0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x50,0x72,0x65,0x73,0x63,0x61,0x6c,

0x65,0x72,0x2c,0x20,0x43,0x6f,0x6d,0x70,0x61,0x72,0x65,0x20,0x4d,0x6f,0x64,0x65,

0x2c,0x20,0x61,0x6e,0x64,0x20,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x4d,0x6f,

0x64,0x65,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x52,0x65,0x61,

0x6c,0x20,0x54,0x69,0x6d,0x65,0x20,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x77,

0x69,0x74,0x68,0x20,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x4f,0x73,0x63,

0x69,0x6c,0x6c,0x61,0x74,0x6f,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,

0x69,0x3e,0x53,0x69,0x78,0x20,0x50,0x57,0x4d,0x20,0x43,0x68,0x61,0x6e,0x6e,0x65,

0x6c,0x73,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x38,0x2d,0x63,

0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x31,0x30,0x2d,0x62,0x69,0x74,0x20,0x41,0x44,

0x43,0x20,0x69,0x6e,0x20,0x54,0x51,0x46,0x50,0x20,0x61,0x6e,0x64,0x20,0x51,0x46,

0x4e,0x2f,0x4d,0x4c,0x46,0x20,0x70,0x61,0x63,0x6b,0x61,0x67,0x65,0x20,0x54,0x65,

0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x20,0x4d,0x65,0x61,0x73,0x75,0x72,

0x65,0x6d,0x65,0x6e,0x74,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,

0x36,0x2d,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x31,0x30,0x2d,0x62,0x69,0x74,

0x20,0x41,0x44,0x43,0x20,0x69,0x6e,0x20,0x50,0x44,0x49,0x50,0x20,0x50,0x61,0x63,

0x6b,0x61,0x67,0x65,0x20,0x54,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,

0x20,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x6d,0x65,0x6e,0x74,0x3c,0x2f,0x6c,0x69,

0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x54,0x77,0x6f,0x20,0x4d,0x61,0x73,0x74,0x65,

0x72,0x2f,0x53,0x6c,0x61,0x76,0x65,0x20,0x53,0x50,0x49,0x20,0x53,0x65,0x72,0x69,

0x61,0x6c,0x20,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x3c,0x2f,0x6c,0x69,

0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x6e,0x65,0x20,0x50,0x72,0x6f,0x67,0x72,

0x61,0x6d,0x6d,0x61,0x62,0x6c,0x65,0x20,0x53,0x65,0x72,0x69,0x61,0x6c,0x20,0x55,

0x53,0x41,0x52,0x54,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,

0x6e,0x65,0x20,0x42,0x79,0x74,0x65,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x65,0x64,

0x20,0x32,0x2d,0x77,0x69,0x72,0x65,0x20,0x53,0x65,0x72,0x69,0x61,0x6c,0x20,0x49,

0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x28,0x50,0x68,0x69,0x6c,0x69,0x70,

0x73,0x20,0x49,0x32,0x43,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x6c,0x65,

0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x50,0x72,0x6f,0x67,

0x72,0x61,0x6d,0x6d,0x61,0x62,0x6c,0x65,0x20,0x57,0x61,0x74,0x63,0x68,0x64,0x6f,

0x67,0x20,0x54,0x69,0x6d,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x53,0x65,0x70,

0x61,0x72,0x61,0x74,0x65,0x20,0x4f,0x6e,0x2d,0x63,0x68,0x69,0x70,0x20,0x4f,0x73,

0x63,0x69,0x6c,0x6c,0x61,0x74,0x6f,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,

0x6c,0x69,0x3e,0x4f,0x6e,0x65,0x20,0x4f,0x6e,0x2d,0x63,0x68,0x69,0x70,0x20,0x41,

0x6e,0x61,0x6c,0x6f,0x67,0x20,0x43,0x6f,0x6d,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x49,0x6e,0x74,0x65,0x72,

0x72,0x75,0x70,0x74,0x20,0x61,0x6e,0x64,0x20,0x57,0x61,0x6b,0x65,0x2d,0x75,0x70,

0x20,0x6f,0x6e,0x20,0x50,0x69,0x6e,0x20,0x43,0x68,0x61,0x6e,0x67,0x65,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x2f,

0x62,0x6f,0x64,0x79,0x3e,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e};

index_htm 6 пакетов

const PROGMEM uint8_t index_htm[] = {

0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x3c,0x62,0x6f,0x64,0x79,0x3e,0x3c,0x68,0x31,0x20,

0x73,0x74,0x79,0x6c,0x65,0x3d,0x22,0x74,0x65,0x78,0x74,0x2d,0x61,0x6c,0x69,0x67,

0x6e,0x3a,0x20,0x63,0x65,0x6e,0x74,0x65,0x72,0x3b,0x22,0x3e,0x41,0x74,0x4d,0x65,

0x67,0x61,0x20,0x33,0x32,0x38,0x50,0x3c,0x62,0x72,0x3e,0x3c,0x62,0x72,0x3e,0x57,

0x45,0x42,0x20,0x53,0x65,0x72,0x77,0x65,0x72,0x3c,0x2f,0x68,0x31,0x3e,0x0a,0x3c,

0x70,0x3e,0x41,0x64,0x76,0x61,0x6e,0x63,0x65,0x64,0x20,0x52,0x49,0x53,0x43,0x20,

0x41,0x72,0x63,0x68,0x69,0x74,0x65,0x63,0x74,0x75,0x72,0x65,0x3c,0x2f,0x70,0x3e,

0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x31,0x33,

0x31,0x20,0x50,0x6f,0x77,0x65,0x72,0x66,0x75,0x6c,0x20,0x49,0x6e,0x73,0x74,0x72,

0x75,0x63,0x74,0x69,0x6f,0x6e,0x73,0x20,0xe2,0x80,0x93,0x20,0x4d,0x6f,0x73,0x74,

0x20,0x53,0x69,0x6e,0x67,0x6c,0x65,0x20,0x43,0x6c,0x6f,0x63,0x6b,0x20,0x43,0x79,

0x63,0x6c,0x65,0x20,0x45,0x78,0x65,0x63,0x75,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x6c,

0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x33,0x32,0x20,0x78,0x20,0x38,0x20,0x47,

0x65,0x6e,0x65,0x72,0x61,0x6c,0x20,0x50,0x75,0x72,0x70,0x6f,0x73,0x65,0x20,0x57,

0x6f,0x72,0x6b,0x69,0x6e,0x67,0x20,0x52,0x65,0x67,0x69,0x73,0x74,0x65,0x72,0x73,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x46,0x75,0x6c,0x6c,0x79,

0x20,0x53,0x74,0x61,0x74,0x69,0x63,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,

0x6e,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x55,0x70,0x20,0x74,

0x6f,0x20,0x32,0x30,0x20,0x4d,0x49,0x50,0x53,0x20,0x54,0x68,0x72,0x6f,0x75,0x67,

0x68,0x70,0x75,0x74,0x20,0x61,0x74,0x20,0x32,0x30,0x20,0x4d,0x48,0x7a,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x6e,0x2d,0x63,0x68,0x69,0x70,

0x20,0x32,0x2d,0x63,0x79,0x63,0x6c,0x65,0x20,0x4d,0x75,0x6c,0x74,0x69,0x70,0x6c,

0x69,0x65,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,

0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x48,0x69,0x67,0x68,0x20,0x45,0x6e,0x64,0x75,0x72,

0x61,0x6e,0x63,0x65,0x20,0x4e,0x6f,0x6e,0x2d,0x76,0x6f,0x6c,0x61,0x74,0x69,0x6c,

0x65,0x20,0x4d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x53,0x65,0x67,0x6d,0x65,0x6e,0x74,

0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,

0x6c,0x69,0x3e,0x34,0x2f,0x38,0x2f,0x31,0x36,0x2f,0x33,0x32,0x4b,0x20,0x42,0x79,

0x74,0x65,0x73,0x20,0x6f,0x66,0x20,0x49,0x6e,0x2d,0x53,0x79,0x73,0x74,0x65,0x6d,

0x20,0x53,0x65,0x6c,0x66,0x2d,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x6d,0x61,0x62,

0x6c,0x65,0x20,0x46,0x6c,0x61,0x73,0x68,0x20,0x70,0x72,0x6f,0x67,0x61,0x6d,0x20,

0x6d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x28,0x41,0x54,0x6d,0x65,0x67,0x61,0x34,0x38,

0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,0x33,0x32,0x38,0x50,0x29,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x32,0x35,0x36,0x2f,0x35,

0x31,0x32,0x2f,0x35,0x31,0x32,0x2f,0x31,0x4b,0x20,0x42,0x79,0x74,0x65,0x73,0x20,

0x45,0x45,0x50,0x52,0x4f,0x4d,0x20,0x28,0x41,0x54,0x6d,0x65,0x67,0x61,0x34,0x38,

0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,0x33,0x32,0x38,0x50,0x29,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x35,0x31,0x32,0x2f,0x31,

0x4b,0x2f,0x31,0x4b,0x2f,0x32,0x4b,0x20,0x42,0x79,0x74,0x65,0x73,0x20,0x49,0x6e,

0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x53,0x52,0x41,0x4d,0x20,0x28,0x41,0x54,0x6d,

0x65,0x67,0x61,0x34,0x38,0x50,0x2f,0x38,0x38,0x50,0x2f,0x31,0x36,0x38,0x50,0x2f,

0x33,0x32,0x38,0x50,0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,

0x57,0x72,0x69,0x74,0x65,0x2f,0x45,0x72,0x61,0x73,0x65,0x20,0x43,0x79,0x63,0x6c,

0x65,0x73,0x3a,0x20,0x31,0x30,0x2c,0x30,0x30,0x30,0x20,0x46,0x6c,0x61,0x73,0x68,

0x2f,0x31,0x30,0x30,0x2c,0x30,0x30,0x30,0x20,0x45,0x45,0x50,0x52,0x4f,0x4d,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x44,0x61,0x74,0x61,0x20,0x72,

0x65,0x74,0x65,0x6e,0x74,0x69,0x6f,0x6e,0x3a,0x20,0x32,0x30,0x20,0x79,0x65,0x61,

0x72,0x73,0x20,0x61,0x74,0x20,0x38,0x35,0x20,0x43,0x20,0x2f,0x20,0x31,0x30,0x30,

0x20,0x79,0x65,0x61,0x72,0x73,0x20,0x61,0x74,0x20,0x32,0x35,0x43,0x20,0x28,0x31,

0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x70,0x74,0x69,

0x6f,0x6e,0x61,0x6c,0x20,0x42,0x6f,0x6f,0x74,0x20,0x43,0x6f,0x64,0x65,0x20,0x53,

0x65,0x63,0x74,0x69,0x6f,0x6e,0x20,0x77,0x69,0x74,0x68,0x20,0x49,0x6e,0x64,0x65,

0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x20,0x4c,0x6f,0x63,0x6b,0x20,0x42,0x69,0x74,

0x73,0x20,0x49,0x6e,0x2d,0x53,0x79,0x73,0x74,0x65,0x6d,0x20,0x50,0x72,0x6f,0x67,

0x72,0x61,0x6d,0x6d,0x69,0x6e,0x67,0x20,0x62,0x79,0x20,0x4f,0x6e,0x2d,0x63,0x68,

0x69,0x70,0x20,0x42,0x6f,0x6f,0x74,0x20,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x20,

0x54,0x72,0x75,0x65,0x20,0x52,0x65,0x61,0x64,0x2d,0x57,0x68,0x69,0x6c,0x65,0x2d,

0x57,0x72,0x69,0x74,0x65,0x20,0x4f,0x70,0x65,0x72,0x61,0x74,0x69,0x6f,0x6e,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x50,0x72,0x6f,0x67,0x72,0x61,

0x6d,0x6d,0x69,0x6e,0x67,0x20,0x4c,0x6f,0x63,0x6b,0x20,0x66,0x6f,0x72,0x20,0x53,

0x6f,0x66,0x74,0x77,0x61,0x72,0x65,0x20,0x53,0x65,0x63,0x75,0x72,0x69,0x74,0x79,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,

0x3c,0x70,0x3e,0x41,0x74,0x6d,0x65,0x6c,0xc2,0xae,0x20,0x51,0x54,0x6f,0x75,0x63,

0x68,0xc2,0xae,0x20,0x4c,0x69,0x62,0x72,0x61,0x72,0x79,0x20,0x53,0x75,0x70,0x70,

0x6f,0x72,0x74,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,

0x09,0x3c,0x6c,0x69,0x3e,0x43,0x61,0x70,0x61,0x63,0x69,0x74,0x69,0x76,0x65,0x20,

0x54,0x6f,0x75,0x63,0x68,0x20,0x42,0x75,0x74,0x74,0x6f,0x6e,0x73,0x2c,0x20,0x53,

0x6c,0x69,0x64,0x65,0x72,0x73,0x20,0x61,0x6e,0x64,0x20,0x57,0x68,0x65,0x65,0x6c,

0x73,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x51,0x54,0x6f,0x75,

0x63,0x68,0x20,0x61,0x6e,0x64,0x20,0x51,0x4d,0x61,0x74,0x72,0x69,0x78,0xc2,0xae,

0x20,0x41,0x63,0x71,0x75,0x69,0x73,0x69,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x6c,0x69,

0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x55,0x70,0x20,0x74,0x6f,0x20,0x36,0x34,0x20,

0x73,0x65,0x6e,0x73,0x65,0x20,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x73,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,

0x3e,0x50,0x65,0x72,0x69,0x70,0x68,0x65,0x72,0x61,0x6c,0x20,0x46,0x65,0x61,0x74,

0x75,0x72,0x65,0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,

0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x54,0x77,0x6f,0x20,0x38,0x2d,0x62,0x69,0x74,0x20,

0x54,0x69,0x6d,0x65,0x72,0x2f,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x73,0x20,0x77,

0x69,0x74,0x68,0x20,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x50,0x72,0x65,

0x73,0x63,0x61,0x6c,0x65,0x72,0x20,0x61,0x6e,0x64,0x20,0x43,0x6f,0x6d,0x70,0x61,

0x72,0x65,0x20,0x4d,0x6f,0x64,0x65,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,

0x69,0x3e,0x4f,0x6e,0x65,0x20,0x31,0x36,0x2d,0x62,0x69,0x74,0x20,0x54,0x69,0x6d,

0x65,0x72,0x2f,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,

0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x50,0x72,0x65,0x73,0x63,0x61,0x6c,

0x65,0x72,0x2c,0x20,0x43,0x6f,0x6d,0x70,0x61,0x72,0x65,0x20,0x4d,0x6f,0x64,0x65,

0x2c,0x20,0x61,0x6e,0x64,0x20,0x43,0x61,0x70,0x74,0x75,0x72,0x65,0x20,0x4d,0x6f,

0x64,0x65,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x52,0x65,0x61,

0x6c,0x20,0x54,0x69,0x6d,0x65,0x20,0x43,0x6f,0x75,0x6e,0x74,0x65,0x72,0x20,0x77,

0x69,0x74,0x68,0x20,0x53,0x65,0x70,0x61,0x72,0x61,0x74,0x65,0x20,0x4f,0x73,0x63,

0x69,0x6c,0x6c,0x61,0x74,0x6f,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,

0x69,0x3e,0x53,0x69,0x78,0x20,0x50,0x57,0x4d,0x20,0x43,0x68,0x61,0x6e,0x6e,0x65,

0x6c,0x73,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x38,0x2d,0x63,

0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x31,0x30,0x2d,0x62,0x69,0x74,0x20,0x41,0x44,

0x43,0x20,0x69,0x6e,0x20,0x54,0x51,0x46,0x50,0x20,0x61,0x6e,0x64,0x20,0x51,0x46,

0x4e,0x2f,0x4d,0x4c,0x46,0x20,0x70,0x61,0x63,0x6b,0x61,0x67,0x65,0x20,0x54,0x65,

0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,0x20,0x4d,0x65,0x61,0x73,0x75,0x72,

0x65,0x6d,0x65,0x6e,0x74,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,

0x36,0x2d,0x63,0x68,0x61,0x6e,0x6e,0x65,0x6c,0x20,0x31,0x30,0x2d,0x62,0x69,0x74,

0x20,0x41,0x44,0x43,0x20,0x69,0x6e,0x20,0x50,0x44,0x49,0x50,0x20,0x50,0x61,0x63,

0x6b,0x61,0x67,0x65,0x20,0x54,0x65,0x6d,0x70,0x65,0x72,0x61,0x74,0x75,0x72,0x65,

0x20,0x4d,0x65,0x61,0x73,0x75,0x72,0x65,0x6d,0x65,0x6e,0x74,0x3c,0x2f,0x6c,0x69,

0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x54,0x77,0x6f,0x20,0x4d,0x61,0x73,0x74,0x65,

0x72,0x2f,0x53,0x6c,0x61,0x76,0x65,0x20,0x53,0x50,0x49,0x20,0x53,0x65,0x72,0x69,

0x61,0x6c,0x20,0x49,0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x3c,0x2f,0x6c,0x69,

0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,0x6e,0x65,0x20,0x50,0x72,0x6f,0x67,0x72,

0x61,0x6d,0x6d,0x61,0x62,0x6c,0x65,0x20,0x53,0x65,0x72,0x69,0x61,0x6c,0x20,0x55,

0x53,0x41,0x52,0x54,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x4f,

0x6e,0x65,0x20,0x42,0x79,0x74,0x65,0x2d,0x6f,0x72,0x69,0x65,0x6e,0x74,0x65,0x64,

0x20,0x32,0x2d,0x77,0x69,0x72,0x65,0x20,0x53,0x65,0x72,0x69,0x61,0x6c,0x20,0x49,

0x6e,0x74,0x65,0x72,0x66,0x61,0x63,0x65,0x20,0x28,0x50,0x68,0x69,0x6c,0x69,0x70,

0x73,0x20,0x49,0x32,0x43,0x20,0x63,0x6f,0x6d,0x70,0x61,0x74,0x69,0x62,0x6c,0x65,

0x29,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x50,0x72,0x6f,0x67,

0x72,0x61,0x6d,0x6d,0x61,0x62,0x6c,0x65,0x20,0x57,0x61,0x74,0x63,0x68,0x64,0x6f,

0x67,0x20,0x54,0x69,0x6d,0x65,0x72,0x20,0x77,0x69,0x74,0x68,0x20,0x53,0x65,0x70,

0x61,0x72,0x61,0x74,0x65,0x20,0x4f,0x6e,0x2d,0x63,0x68,0x69,0x70,0x20,0x4f,0x73,

0x63,0x69,0x6c,0x6c,0x61,0x74,0x6f,0x72,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,

0x6c,0x69,0x3e,0x4f,0x6e,0x65,0x20,0x4f,0x6e,0x2d,0x63,0x68,0x69,0x70,0x20,0x41,

0x6e,0x61,0x6c,0x6f,0x67,0x20,0x43,0x6f,0x6d,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,

0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x49,0x6e,0x74,0x65,0x72,

0x72,0x75,0x70,0x74,0x20,0x61,0x6e,0x64,0x20,0x57,0x61,0x6b,0x65,0x2d,0x75,0x70,

0x20,0x6f,0x6e,0x20,0x50,0x69,0x6e,0x20,0x43,0x68,0x61,0x6e,0x67,0x65,0x3c,0x2f,

0x6c,0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,

0x3e,0x53,0x70,0x65,0x63,0x69,0x61,0x6c,0x20,0x4d,0x69,0x63,0x72,0x6f,0x63,0x6f,

0x6e,0x74,0x72,0x6f,0x6c,0x6c,0x65,0x72,0x20,0x46,0x65,0x61,0x74,0x75,0x72,0x65,

0x73,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x70,0x3e,0x3c,0x75,0x6c,0x3e,0x0a,0x09,0x3c,

0x6c,0x69,0x3e,0x50,0x6f,0x77,0x65,0x72,0x2d,0x6f,0x6e,0x20,0x52,0x65,0x73,0x65,

0x74,0x20,0x61,0x6e,0x64,0x20,0x50,0x72,0x6f,0x67,0x72,0x61,0x6d,0x6d,0x61,0x62,

0x6c,0x65,0x20,0x42,0x72,0x6f,0x77,0x6e,0x2d,0x6f,0x75,0x74,0x20,0x44,0x65,0x74,

0x65,0x63,0x74,0x69,0x6f,0x6e,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,

0x3e,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,0x43,0x61,0x6c,0x69,0x62,0x72,

0x61,0x74,0x65,0x64,0x20,0x4f,0x73,0x63,0x69,0x6c,0x6c,0x61,0x74,0x6f,0x72,0x3c,

0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x45,0x78,0x74,0x65,0x72,0x6e,

0x61,0x6c,0x20,0x61,0x6e,0x64,0x20,0x49,0x6e,0x74,0x65,0x72,0x6e,0x61,0x6c,0x20,

0x49,0x6e,0x74,0x65,0x72,0x72,0x75,0x70,0x74,0x20,0x53,0x6f,0x75,0x72,0x63,0x65,

0x73,0x3c,0x2f,0x6c,0x69,0x3e,0x0a,0x09,0x3c,0x6c,0x69,0x3e,0x53,0x69,0x78,0x20,

0x53,0x6c,0x65,0x65,0x70,0x20,0x4d,0x6f,0x64,0x65,0x73,0x3a,0x20,0x49,0x64,0x6c,

0x65,0x2c,0x20,0x41,0x44,0x43,0x20,0x4e,0x6f,0x69,0x73,0x65,0x20,0x52,0x65,0x64,

0x75,0x63,0x74,0x69,0x6f,0x6e,0x2c,0x20,0x50,0x6f,0x77,0x65,0x72,0x2d,0x73,0x61,

0x76,0x65,0x2c,0x20,0x50,0x6f,0x77,0x65,0x72,0x2d,0x64,0x6f,0x77,0x6e,0x2c,0x20,

0x53,0x74,0x61,0x6e,0x64,0x62,0x79,0x2c,0x20,0x61,0x6e,0x64,0x20,0x45,0x78,0x74,

0x65,0x6e,0x64,0x65,0x64,0x20,0x53,0x74,0x61,0x6e,0x64,0x62,0x79,0x3c,0x2f,0x6c,

0x69,0x3e,0x0a,0x3c,0x2f,0x75,0x6c,0x3e,0x3c,0x2f,0x70,0x3e,0x0a,0x3c,0x2f,0x62,

0x6f,0x64,0x79,0x3e,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e};

 

После каждого изменения проверяем результат в браузере и в Wireshark.

А вот и наша самая большая страница, которая состоит из 6 пакетов (нажмите на картинку для увеличения изображения)

 

image05_0500

 

Посмотрим также процесс передачи клиента нашего последнего документа в WireShark (нажмите на картинку для увеличения изображения)

 

image06_0500

 

Также убедимся, что наш документ состоит именно из 6 частей, заглянув в вывод данных в терминальной программе

 

image07

 

Таким образом, в нашем уроке нам удалось передать, пользуясь протоколом HTTP, документ, состоящий, можно сказать из неограниченного количества пакетов. Также, не нарушая традиций, мы ещё немного прооптимизировали наш проект, что сэкономило нам немного памяти, а также сделало наш проект более читабельным.

Спасибо за внимание!

 

 

Предыдущая часть Программирование МК AVR Следующий урок

 

Исходный код

 

 

Приобрести плату Arduino Nano V3.0 оригинальный FT232RL можно здесь.

Программатор (продавец надёжный) USBASP USBISP 2.0

Ethernet LAN Сетевой Модуль можно купить здесь (модуль SD SPI в подарок) ENC28J60 Ethernet LAN Сетевой Модуль.

 

 

Смотреть ВИДЕОУРОК (нажмите на картинку)

 

AVR LAN. ENC28J60. TCP WEB Server. Передаём страницу побольше

2 комментария на “AVR Урок 51. LAN. ENC28J60. TCP WEB Server. Передаём страницу побольше. Часть 2
  1. Андрей:

    Спасибо за интересные и доходчивые уроки!

    ЗЫ Ссылка на исходный код ведёт в никуда… Исправьте пожалуйста!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*