Это и есть заголовок ответа. Его нужно распарсить, чтобы получить строку "20", затем перевести эту строку в INT.
Для этого вам нужно найти начало этой строки (подстрока tmin + 1 символ, или символ "="), в вашем случае - этого достаточно, но правильно будет найти еще и символ "!".
Вот я получаю данные. получаю и переприсваиваю переменной полученное число. tt. Но не работает условие. Что если я передал 25, то светодиод должен загореться. Что не так?
Я с 65 по 68 строк считываю значение нормально.ю вывожу там 25. а как вот раньше в цикл обратиться не могу. потому что если эти строки перенесу выше, выведет совсем другое
Alex-human, через три дня сами-же и свихнетесь пытаясь понять смысл переменных tt, b и смысл чисел 11 и 13.
Не ленитесь - именуйте переменные правильно.
Применив код в посте 99, вот что получаю
Вы не понимаете чем отличается массив от объекта.
Так с помощью чего мне надо вытащить строку запроса?
Применив код в посте 99, вот что получаю
...
Опять угадайка...
Вот та последняя строка, что вы получили
Это и есть заголовок ответа. Его нужно распарсить, чтобы получить строку "20", затем перевести эту строку в INT.
Для этого вам нужно найти начало этой строки (подстрока tmin + 1 символ, или символ "="), в вашем случае - этого достаточно, но правильно будет найти еще и символ "!".
так он так и будет играть в угадайку пока ты будешь писать за него код...
#include <SPI.h> #include <Ethernet.h> boolean incoming = 0; int tt=45; String b; byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, x x, x); byte gateway[] = { 192, x, x, x }; byte subnet[] = { 255, 255, 255, 0 }; EthernetServer server(80); void setup() { pinMode(2, OUTPUT); Ethernet.begin(mac, ip); server.begin(); Serial.begin(9600); } void loop() { EthernetClient client = server.available(); if (client) { boolean currentLineIsBlank = true; String requestString=""; char c; while (client.connected()) { if (client.available()) { c = client.read(); requestString = requestString + c; if (c == '\n') { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println("<meta http-equiv=\"refresh\" content=\"5\">"); client.println("XXX"); //client.println(str); client.println("<br />"); client.println("</html>"); break; } } if(tt==25) { digitalWrite(2, HIGH); } else { digitalWrite(2, LOW); } } b=requestString.substring(11,13); tt=b.toInt(); Serial.print(tt); delay(1); client.stop(); } }Вот я получаю данные. получаю и переприсваиваю переменной полученное число. tt. Но не работает условие. Что если я передал 25, то светодиод должен загореться. Что не так?
Все не так. Почитайте как работают циклы и условия.
Я с 65 по 68 строк считываю значение нормально.ю вывожу там 25. а как вот раньше в цикл обратиться не могу. потому что если эти строки перенесу выше, выведет совсем другое
Строки 55-62 должны находиться ПОСЛЕ присвоения значения переменной tt.
Спасибо большое
Такой вопрос. В запросе я передаю tmin=20. Вывожу сейчас только значение, т.е. 20. Как проверить, что написано tmin или tmax?
Считать сначала после $ несколько символов и проверить? Или как? Поскажите как логичнее сделать.
Логичнее взять всю строку, разбить ее на составляющие, а потом из них вычленять название переменных и их значение.
Alex-human, через три дня сами-же и свихнетесь пытаясь понять смысл переменных tt, b и смысл чисел 11 и 13.
Не ленитесь - именуйте переменные правильно.
Такой вопрос. В запросе я передаю tmin=20. Вывожу сейчас только значение, т.е. 20. Как проверить, что написано tmin или tmax?
Считать сначала после $ несколько символов и проверить? Или как? Поскажите как логичнее сделать.
На предыдущей странице я вам написал, как сделать.
//?bed=22door=26bathroom=24 int bedRangeValue, doorRangeValue, bathroomRangeValue; void parseGetRequest(String str){ Serial.print("Parsing this string: "); Serial.println(str); int bedIndex = str.indexOf("bed"); int doorIndex = str.indexOf("door"); int bathroomIndex = str.indexOf("bathroom"); String bedString = str.substring(bedIndex+4); String doorString = str.substring(doorIndex+5); String bathroomString = str.substring(bathroomIndex+9); bedRangeValue = bedString.toInt(); doorRangeValue = doorString.toInt(); bathroomRangeValue = bathroomString.toInt(); }подыму старую тему, как быть если нудно в переменную сохранить отрицательное значение или типа флоат (с точкой)