получил ответ от сервера OpenWeatherMap
- Войдите на сайт для отправки комментариев
Чт, 13/08/2020 - 10:29
получил ответ от сервера OpenWeatherMap +IPD,792:HTTP/1.1
Я так понимаю что 792 это размер буфера данных. А как получить эти данные?
Кто в курсе?
Следующую строку (две строки на самом деле) читать не пробовали? По идее данные идут через два перевода строки после заголовка. А у Вас в коде после чтения этой строки больше ничего не читается.
Вот я и хочу прочесть вторую строку, а как это сделать? Пожалуйста подскажите!
Вот код который у меня:
Вот я и хочу прочесть вторую строку, а как это сделать?
А как Вы первую читаете?
Вот здесь где у Вас чтение первой строки?
Вот также и читайте следующие строки.
Я не очень знаком с механизмом чтения строк.
Первую строку я прочитал а дальше?
Так не получается прочесть!
Я спрашиваю у Вас, как прочесть вторую строку?
Ну, я не знаю, что Вам отвечать. То, что у Вас написано, ....
В общем, возьмите для начала какую-нибудь книжку (хоть Блума) и как следует изучите вопрос. Я думал, что Вы этот код сами писали, но теперь понял, что это не так и что Вы ни строчки в нём не понимаете. Пока не начнёте понимать, Вы ничего не напишете - разве что кто-то напишет за Вас, но для этого есть раздел "Ищу исполнителя".
Подскажите как?
Использование кода
тоже выводит сообщение +IPD,792:HTTP/1.1
куда девается вторая строка - вообще не пойму. Если она там есть, то должна вывести 2 строки.
Я прошу помочь мне, если вам не трудно.
Слишком много надо подсказывать, я не зря Вам посоветовал изучить материал по книге.
Ну, для начала, например, Ваш цикл
while
(dbgSerial.available())
предполагает, что ответ пришёл сразу весь целиком.
Если же часть ответа задержится хоть на микросекунду, то Ваша проверка dbgSerial.available() выдаст, что больше ничего нет, а о том, что остаток ответа придёт через микросекунду Вы никогда не узнаете потому, что больше не проверяете.
И тут много таких тонкостей.
Я читал книгу Блума. О таких тонкостях там не говориться. О проверке полного сообщения тоже, особенно когда не знаешь какое оно.
В интернете все перекопал - не могу никак найти похожую ситуацию.
Все варианты перепробовал, ну никак не могу получить 2 -ую строку.
Попробуйте читать в буфер Serial.readBytes() и увеличить ожидание Serial.setTimeout()
Вдруг поможет))
В http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/poluchil-otvet-ot-servera-openweathermap#comment-552724 дали ответ.
Перефразирую - нужна задержка в цикл.