TinyGPS++ Вопрос о gps.encode(ss.read())

Я пытаюсь создать oled-дисплей gps, однако, просматривая несколько примеров и код других людей, я вижу, что люди используют разные методы. Я вижу некоторый код, который имеет gps.encode(ss.read()); и другие люди используют if gps.encode(ss.read()). Я в замешательстве от того, почему это так. Кроме того, люди либо используют .isUpdated, либо .isValidпри проверке местоположения / скорости и т.д. На странице TinyGPS ++ говорится об этом, но не говорится, что следует использовать для определенных приложений.

, 👍1

Обсуждение

на самом деле речь идет не о том, "что следует использовать для определенного приложения... речь идет о том, "что он делает? ... библиотека принимает последовательные входные данные и объединяет их в структуру данных GPS ... определенные "флаги" устанавливаются по мере сбора данных GPS, если данные изменились... если какая-то функция полезна в вашей программе, то используйте ее... ни одна из этих функций не имеет конкретного применения ... так что лучше всего для начала узнать, что делает ss.read(), затем что делает gps.encode() и так далее., @jsotola


1 ответ


1

От http://arduiniana.org/libraries/tinygpsplus /

Срок действия, статус обновления и Возраст Вы можете проверить значение объекта в любое время, но если TinyGPS ++ не был недавно передан из GPS, его не следует считать действительным и актуальным. Метод isValid() сообщит вам, содержит ли объект какие-либо действительные данные и является ли он безопасным для запроса.

Аналогично, isUpdated() указывает, было ли обновлено (не обязательно изменено) значение объекта с момента последнего запроса.

Наконец, если вы хотите узнать, насколько устарели данные объекта, вызовите его метод age(), который возвращает количество миллисекунд с момента его последнего обновления. Если это возвращает значение, превышающее 1500 или около того, это может быть признаком проблемы, например, потерянного исправления.

,