<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FWeb_Parms</id>
	<title>Arduino:Примеры/Web Parms - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FWeb_Parms"/>
	<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/Web_Parms&amp;action=history"/>
	<updated>2026-10-20T01:50:18Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/Web_Parms&amp;diff=8496052&amp;oldid=prev</id>
		<title>EducationBot в 08:39, 8 июля 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/Web_Parms&amp;diff=8496052&amp;oldid=prev"/>
		<updated>2023-07-08T08:39:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:39, 8 июля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l293&quot;&gt;Строка 293:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 293:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Навигационная таблица/Портал/Arduino}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikihandbkcom:diff::1.12:old-7735793:rev-8496052 --&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/Web_Parms&amp;diff=7735793&amp;oldid=prev</id>
		<title>EducationBot в 08:34, 20 мая 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/Web_Parms&amp;diff=7735793&amp;oldid=prev"/>
		<updated>2023-05-20T08:34:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:34, 20 мая 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot;&gt;Строка 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Код==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Код==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; enclose=&quot;div&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/* Передача и анализ параметров (Webduino) */&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/* Передача и анализ параметров (Webduino) */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/Web_Parms&amp;diff=21258&amp;oldid=prev</id>
		<title>Myagkij: Замена текста — «&lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&gt;» на «&lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot; enclose=&quot;div&quot;&gt;»</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/Web_Parms&amp;diff=21258&amp;oldid=prev"/>
		<updated>2016-12-14T03:17:05Z</updated>

		<summary type="html">&lt;p&gt;Замена текста — «&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot;&amp;gt;» на «&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Arduino панель перехода}}&lt;br /&gt;
{{Перевод от Сubewriter}}&lt;br /&gt;
{{Myagkij-редактор}}&lt;br /&gt;
&lt;br /&gt;
=Передача и анализ параметров&amp;lt;ref&amp;gt;[https://github.com/sirleech/Webduino/blob/master/examples/Web_Parms/Web_Parms.ino github.com - Web_Parms.ino]&amp;lt;/ref&amp;gt;=&lt;br /&gt;
&lt;br /&gt;
Этот пример демонстрирует, как при помощи [[Arduino:Библиотеки/Webduino|библиотеки Webduino]] сделать осуществить передачу и анализ данных, вводимых пользователем через браузерный интерфейс.&lt;br /&gt;
&lt;br /&gt;
==Код==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/* Передача и анализ параметров (Webduino) */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Этот скетч служит для тестирования и отладки библиотеки, &lt;br /&gt;
 * но может быть и своеобразным шаблоном для нового скетча.&lt;br /&gt;
 *&lt;br /&gt;
 * Чтобы использовать его, введите в браузер один из URL’ов ниже.&lt;br /&gt;
 * Замените «host» на IP-адрес, присвоенный вашей Arduino.&lt;br /&gt;
 *&lt;br /&gt;
 * http://host/&lt;br /&gt;
 * http://host/index.html&lt;br /&gt;
 *&lt;br /&gt;
 * Эти URL возвращают HTTP-заголовок, сообщающий об успешном &lt;br /&gt;
 * подключении, а также показывают параметры (если они есть), &lt;br /&gt;
 * передавая их в виде одной строки. При этом анализ параметров не &lt;br /&gt;
 * выполняется. Все это осуществляется вызовом команды defaultCmd.&lt;br /&gt;
 *  &lt;br /&gt;
 * http://host/raw.html&lt;br /&gt;
 *&lt;br /&gt;
 * Делает примерно то же самое, что и index.html, но выполняется командой rawCmd.&lt;br /&gt;
 * &lt;br /&gt;
 * http://host/parsed.html&lt;br /&gt;
 *&lt;br /&gt;
 * Вызывает команду parsedCmd, которая показывает «сырую» строку с параметрами. Также анализирует отдельные параметры при помощи функции nextURLparam(), а затем показывает их.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define WEBDUINO_FAIL_MESSAGE &amp;quot;&amp;lt;h1&amp;gt;Request Failed&amp;lt;/h1&amp;gt;&amp;quot;&lt;br /&gt;
#include &amp;quot;SPI.h&amp;quot;&lt;br /&gt;
#include &amp;quot;avr/pgmspace.h&amp;quot;&lt;br /&gt;
#include &amp;quot;Ethernet.h&amp;quot;&lt;br /&gt;
#include &amp;quot;WebServer.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#define VERSION_STRING &amp;quot;0.1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
/* ПОСТАВЬТЕ ЗДЕСЬ СОБСТВЕННОЕ ЗНАЧЕНИЕ. MAC-адрес должен отличаться &lt;br /&gt;
 * от других девайсов в сети. Если MAC-адрес Ethernet-модуля совпадет &lt;br /&gt;
 * с другим MAC-адресом, это повлечет проблемы с получением пакетов.&lt;br /&gt;
 */&lt;br /&gt;
static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };&lt;br /&gt;
&lt;br /&gt;
/* ВЫСТАВЬТЕ ТУТ ЗНАЧЕНИЕ, СООТВЕТСТВУЮЩЕЕ СЕТИ ВАШЕГО ХОСТА. &lt;br /&gt;
 * Большинство сетей находятся в диапазонах 192.168.0.XXX &lt;br /&gt;
 * или 192.168.1.XXX. Выберите адрес, который не используется &lt;br /&gt;
 * и не присваивается автоматически DHCP-сервисом, к которому &lt;br /&gt;
 * подключен ваш роутер. */&lt;br /&gt;
static uint8_t ip[] = { 192, 168, 1, 210 };&lt;br /&gt;
&lt;br /&gt;
// ROM-сообщения, используемые скетчем. Они нужны, чтобы сэкономить&lt;br /&gt;
// место на RAM-памяти.&lt;br /&gt;
&lt;br /&gt;
P(Page_start) = &amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Web_Parms_1 Version &amp;quot;&lt;br /&gt;
VERSION_STRING &amp;quot;&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;\n&amp;quot;;&lt;br /&gt;
P(Page_end) = &amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;&lt;br /&gt;
P(Get_head) = &amp;quot;&amp;lt;h1&amp;gt;GET from &amp;quot;;  //  &amp;quot;запрос GET от &amp;quot;&lt;br /&gt;
P(Post_head) = &amp;quot;&amp;lt;h1&amp;gt;POST to &amp;quot;;  //  &amp;quot;запрос POST на &amp;quot;&lt;br /&gt;
P(Unknown_head) = &amp;quot;&amp;lt;h1&amp;gt;UNKNOWN request for &amp;quot;;  //  &amp;quot;запрос UNKNOWN для &amp;quot;&lt;br /&gt;
P(Default_head) = &amp;quot;unidentified URL requested.&amp;lt;/h1&amp;gt;&amp;lt;br&amp;gt;\n&amp;quot;;  //  &amp;quot;запрошен неопределенный URL.&amp;quot;&lt;br /&gt;
P(Raw_head) = &amp;quot;raw.html requested.&amp;lt;/h1&amp;gt;&amp;lt;br&amp;gt;\n&amp;quot;;  //  &amp;quot;запрошен raw.html&amp;quot;&lt;br /&gt;
P(Parsed_head) = &amp;quot;parsed.html requested.&amp;lt;/h1&amp;gt;&amp;lt;br&amp;gt;\n&amp;quot;;  //  &amp;quot;запрошен parsed.html&amp;quot;&lt;br /&gt;
P(Good_tail_begin) = &amp;quot;URL tail = '&amp;quot;;  //  &amp;quot;хвостик URL = &amp;quot;&lt;br /&gt;
P(Bad_tail_begin) = &amp;quot;INCOMPLETE URL tail = '&amp;quot;;  //  &amp;quot;НЕЗАКОНЧЕННЫЙ хвостик URL = &amp;quot;&lt;br /&gt;
P(Tail_end) = &amp;quot;'&amp;lt;br&amp;gt;\n&amp;quot;;&lt;br /&gt;
P(Parsed_tail_begin) = &amp;quot;URL parameters:&amp;lt;br&amp;gt;\n&amp;quot;;  //  &amp;quot;параметры URL:&amp;quot;&lt;br /&gt;
P(Parsed_item_separator) = &amp;quot; = '&amp;quot;;&lt;br /&gt;
P(Params_end) = &amp;quot;End of parameters&amp;lt;br&amp;gt;\n&amp;quot;;  //  &amp;quot;конец параметров:&amp;quot;&lt;br /&gt;
P(Post_params_begin) = &amp;quot;Parameters sent by POST:&amp;lt;br&amp;gt;\n&amp;quot;;  //  &amp;quot;параметры, отправленные POST&amp;quot;&lt;br /&gt;
P(Line_break) = &amp;quot;&amp;lt;br&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
/* Это создает экземпляр веб-сервера. Как PREFIX указываем &amp;quot;&amp;quot;,&lt;br /&gt;
 * благодаря чему все страницы будут в корне сервера. */&lt;br /&gt;
#define PREFIX &amp;quot;&amp;quot;&lt;br /&gt;
WebServer webserver(PREFIX, 80);&lt;br /&gt;
&lt;br /&gt;
/* Команды – это функции, вызываемые веб-сервером. Они могут считывать &lt;br /&gt;
// любые данные, опубликованные клиентом, и передавать их обратно от &lt;br /&gt;
// сервера к браузеру. &lt;br /&gt;
void helloCmd(WebServer &amp;amp;server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)&lt;br /&gt;
{&lt;br /&gt;
  /* отправляем стандартное сообщение, что запрос был успешным. */  server.httpSuccess();&lt;br /&gt;
&lt;br /&gt;
  /* Если получили GET или POST, то показываем данные.&lt;br /&gt;
     Если получили HEAD request, останавливаемся после &lt;br /&gt;
     показа заголовков */&lt;br /&gt;
  if (type == WebServer::HEAD)&lt;br /&gt;
    return;&lt;br /&gt;
&lt;br /&gt;
  server.printP(Page_start);&lt;br /&gt;
  switch (type)&lt;br /&gt;
    {&lt;br /&gt;
    case WebServer::GET:&lt;br /&gt;
        server.printP(Get_head);&lt;br /&gt;
        break;&lt;br /&gt;
    case WebServer::POST:&lt;br /&gt;
        server.printP(Post_head);&lt;br /&gt;
        break;&lt;br /&gt;
    default:&lt;br /&gt;
        server.printP(Unknown_head);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    server.printP(Default_head);&lt;br /&gt;
    server.printP(tail_complete ? Good_tail_begin : Bad_tail_begin);&lt;br /&gt;
    server.print(url_tail);&lt;br /&gt;
    server.printP(Tail_end);&lt;br /&gt;
    server.printP(Page_end);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void rawCmd(WebServer &amp;amp;server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)&lt;br /&gt;
{&lt;br /&gt;
  /* эта строчка отправляет браузеру стандартное сообщение, что запрос был успешным.*/&lt;br /&gt;
  server.httpSuccess();&lt;br /&gt;
&lt;br /&gt;
  /* эта строчка отправляет браузеру стандартное сообщение, что запрос был успешным.*/&lt;br /&gt;
  if (type == WebServer::HEAD)&lt;br /&gt;
    return;&lt;br /&gt;
&lt;br /&gt;
  server.printP(Page_start);&lt;br /&gt;
  switch (type)&lt;br /&gt;
    {&lt;br /&gt;
    case WebServer::GET:&lt;br /&gt;
        server.printP(Get_head);&lt;br /&gt;
        break;&lt;br /&gt;
    case WebServer::POST:&lt;br /&gt;
        server.printP(Post_head);&lt;br /&gt;
        break;&lt;br /&gt;
    default:&lt;br /&gt;
        server.printP(Unknown_head);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    server.printP(Raw_head);&lt;br /&gt;
    server.printP(tail_complete ? Good_tail_begin : Bad_tail_begin);&lt;br /&gt;
    server.print(url_tail);&lt;br /&gt;
    server.printP(Tail_end);&lt;br /&gt;
    server.printP(Page_end);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#define NAMELEN 32&lt;br /&gt;
#define VALUELEN 32&lt;br /&gt;
&lt;br /&gt;
void parsedCmd(WebServer &amp;amp;server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)&lt;br /&gt;
{&lt;br /&gt;
  URLPARAM_RESULT rc;&lt;br /&gt;
  char name[NAMELEN];&lt;br /&gt;
  char value[VALUELEN];&lt;br /&gt;
&lt;br /&gt;
  /* эта строчка отправляет браузеру стандартное сообщение, что запрос был успешным.*/&lt;br /&gt;
  server.httpSuccess();&lt;br /&gt;
&lt;br /&gt;
  /* Если получили GET или POST, то показываем данные.&lt;br /&gt;
     Если получили HEAD request, останавливаемся после &lt;br /&gt;
     показа заголовков */&lt;br /&gt;
  if (type == WebServer::HEAD)&lt;br /&gt;
    return;&lt;br /&gt;
&lt;br /&gt;
  server.printP(Page_start);&lt;br /&gt;
  switch (type)&lt;br /&gt;
    {&lt;br /&gt;
    case WebServer::GET:&lt;br /&gt;
        server.printP(Get_head);&lt;br /&gt;
        break;&lt;br /&gt;
    case WebServer::POST:&lt;br /&gt;
        server.printP(Post_head);&lt;br /&gt;
        break;&lt;br /&gt;
    default:&lt;br /&gt;
        server.printP(Unknown_head);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    server.printP(Parsed_head);&lt;br /&gt;
    server.printP(tail_complete ? Good_tail_begin : Bad_tail_begin);&lt;br /&gt;
    server.print(url_tail);&lt;br /&gt;
    server.printP(Tail_end);&lt;br /&gt;
&lt;br /&gt;
  if (strlen(url_tail))&lt;br /&gt;
    {&lt;br /&gt;
    server.printP(Parsed_tail_begin);&lt;br /&gt;
    while (strlen(url_tail))&lt;br /&gt;
      {&lt;br /&gt;
      rc = server.nextURLparam(&amp;amp;url_tail, name, NAMELEN, value, VALUELEN);&lt;br /&gt;
      if (rc == URLPARAM_EOS)&lt;br /&gt;
        server.printP(Params_end);&lt;br /&gt;
       else&lt;br /&gt;
        {&lt;br /&gt;
        server.print(name);&lt;br /&gt;
        server.printP(Parsed_item_separator);&lt;br /&gt;
        server.print(value);&lt;br /&gt;
        server.printP(Tail_end);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  if (type == WebServer::POST)&lt;br /&gt;
  {&lt;br /&gt;
    server.printP(Post_params_begin);&lt;br /&gt;
    while (server.readPOSTparam(name, NAMELEN, value, VALUELEN))&lt;br /&gt;
    {&lt;br /&gt;
      server.print(name);&lt;br /&gt;
      server.printP(Parsed_item_separator);&lt;br /&gt;
      server.print(value);&lt;br /&gt;
      server.printP(Tail_end);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  server.printP(Page_end);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void my_failCmd(WebServer &amp;amp;server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)&lt;br /&gt;
{&lt;br /&gt;
  /* Эта строчка отправляет браузеру стандартный HTTP-заголовок «HTTP 400 Bad Request» */&lt;br /&gt;
  server.httpFail();&lt;br /&gt;
&lt;br /&gt;
  /* Если получили GET или POST, то показываем данные.&lt;br /&gt;
     Если получили запрос HEAD, останавливаемся после &lt;br /&gt;
     показа заголовков */ &lt;br /&gt;
  if (type == WebServer::HEAD)&lt;br /&gt;
    return;&lt;br /&gt;
&lt;br /&gt;
  server.printP(Page_start);&lt;br /&gt;
  switch (type)&lt;br /&gt;
    {&lt;br /&gt;
    case WebServer::GET:&lt;br /&gt;
        server.printP(Get_head);&lt;br /&gt;
        break;&lt;br /&gt;
    case WebServer::POST:&lt;br /&gt;
        server.printP(Post_head);&lt;br /&gt;
        break;&lt;br /&gt;
    default:&lt;br /&gt;
        server.printP(Unknown_head);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    server.printP(Default_head);&lt;br /&gt;
    server.printP(tail_complete ? Good_tail_begin : Bad_tail_begin);&lt;br /&gt;
    server.print(url_tail);&lt;br /&gt;
    server.printP(Tail_end);&lt;br /&gt;
    server.printP(Page_end);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  /* Инициализируем Ethernet-модуль */&lt;br /&gt;
  Ethernet.begin(mac, ip);&lt;br /&gt;
&lt;br /&gt;
  /* задаем команду, которая будет вызываться по умолчанию, &lt;br /&gt;
  /* когда пользователь будет запрашивать доступ к корню сервера &lt;br /&gt;
  */ &lt;br /&gt;
  webserver.setDefaultCommand(&amp;amp;helloCmd);&lt;br /&gt;
&lt;br /&gt;
  /* задаем команду, которая будет вызываться по умолчанию, &lt;br /&gt;
  /* когда пользователь запросит доступ к несуществующей странице &lt;br /&gt;
  */ &lt;br /&gt;
  webserver.setFailureCommand(&amp;amp;my_failCmd);&lt;br /&gt;
&lt;br /&gt;
  /* запускаем команду indexHTML, если пользователь пытается загрузить страницу /index.html */&lt;br /&gt;
  webserver.addCommand(&amp;quot;index.html&amp;quot;, &amp;amp;helloCmd);&lt;br /&gt;
&lt;br /&gt;
  /* эта команда вызывается, когда пользователь пытается загрузить /raw.html */&lt;br /&gt;
  webserver.addCommand(&amp;quot;raw.html&amp;quot;, &amp;amp;rawCmd);&lt;br /&gt;
  webserver.addCommand(&amp;quot;parsed.html&amp;quot;, &amp;amp;parsedCmd);&lt;br /&gt;
&lt;br /&gt;
  /* Запускаем веб-сервер */&lt;br /&gt;
  webserver.begin();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  char buff[64];&lt;br /&gt;
  int len = 64;&lt;br /&gt;
&lt;br /&gt;
  /* Вечно обрабатываем входящие соединения (одновременно может обрабатываться только одно соединение) */  &lt;br /&gt;
  webserver.processConnection(buff, &amp;amp;len);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=См.также=&lt;br /&gt;
&lt;br /&gt;
=Внешние ссылки=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Категория:Пример]]&lt;br /&gt;
[[Категория:Примеры]]&lt;br /&gt;
[[Категория:Пример программирования Arduino]]&lt;br /&gt;
[[Категория:Примеры программирования Arduino]]&lt;/div&gt;</summary>
		<author><name>Myagkij</name></author>
	</entry>
</feed>