Добрый день. Недавно заинтересовался ардуино, посмотрел уроки и научился самому простому, зажигать и гасить лампочки) Сейчас пытаюсь разобраться с подключением к интернету, управление ардуино с помошью браузера. Пытаюсь разобрать код : void loop() { // ожидание подключения клиентов EthernetClient client = server.available(); if (client) { // Запрос HTTP заканчивается пустой строкой boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); // Если будет получен символ переноса строки и // сама строка при этом пустая, значит // HTTP-запрос закончился, можно отвечать // считываем URL с символа "$" до первого пробела if(incoming && c == ' '){ incoming = 0; } if(c == '$'){ incoming = 1; } // Определяем что было в URL: $1 или $2 if(incoming == 1){ Serial.println(c); if(c == '1'){ Serial.println("ON"); digitalWrite(2, HIGH); } if(c == '2'){ Serial.println("OFF"); digitalWrite(2, LOW); } } if (c == '\n') { // началась новая строка currentLineIsBlank = true; } else if (c != '\r') { // в текущей строке ещё есть символы currentLineIsBlank = false; } } } // даём время браузеру для получения данных delay(1); // закрываем соединение client.stop(); } } Мне вот что не понятно - мы считываем данные и записываем их в переменную с(строка 10), в строке 18 мы задаем условие что если с равно $, то incoming = 1;. Потом в строке 24 проверяется условие если с == 1, то выполняется условие. Как с может быть равно единице когда выше в строке 18 мы проверили что оно равно $? Когда символ после $ успел туда записаться? Но на удивление все работает или я чего-то не понимаю. Помогите, пожалуйста. Оригинал поста, пункт №5: http://diy-blog.net/arduino-ethernet-shield-opisanie-shilda-i-primeryi-ispolzovaniya/#5 Спасибо.
Если при входе в loop() переменная incoming уже == 1, и при этом прочитается c == '1', то все отработает.