Библиотека iarduino_GPS_NMEA позволяет получать данные из текстовых сообщений NMEA отправляемых GPS-модулями по шине UART.
Данная библиотека может использовать как аппаратную, так и программную реализацию шины UART.
Подробное описание работы с библиотекой, находится в разделе Wiki - Парсер протокола NMEA.
#include <iarduino_GPS_NMEA.h> // Подключаем библиотеку iarduino_GPS_NMEA для расшифровки строк протокола NMEA получаемых по UART.
iarduino_GPS_NMEA ОБЪЕКТ; // Создаём объект для работы с функциями и методами библиотеки.
Функция begin( SERIAL [, ФЛАГ ] ); // Инициализация получения данных из строк NMEA по шине UART.
Функция read( [ МАССИВ [, ФЛАГ ]] ); // Чтение данных.
Функция timeZone( [ ЧАСЫ ] ); // Установка/получение часовой зоны.
Функция timeOut( МИЛЛИСЕКУНДЫ ); // Ограничение времени чтения данных.
Прочитанные функцией read() данные сохраняются в следующие переменные:
float latitude - Широта (± 90.0).
float longitude - Долгота (±180.0) E-восточная «+», W-западная «-».
uint16_t altitude - Высота над уровнем моря (±32767).
uint8_t speed - Скорость (0-255) км/ч.
float course - Курс (±180.0°).
uint8_t satellites[ GPS_ACTIVE ] - Количество спутников участвующих в позиционировании.
uint8_t satellites[ GPS_VISIBLE ] - Количество наблюдаемых спутников.
float PDOP - Пространственный геометрический фактор ухудшения точности.
float HDOP - Горизонтальный геометрический фактор ухудшения точности.
float VDOP - Вертикальный геометрический фактор ухудшения точности.
uint8_t seconds - Секунды (0-59).
uint8_t minutes - Минуты (0-59).
uint8_t hours - Часы (1-12).
uint8_t Hours - Часы (0-23).
uint8_t midday - Полдень (0-am, 1-pm).
uint8_t day - День месяца (1-31).
uint8_t weekday - День недели (0-воскресенье, 1-понедельник, ... , 6-суббота).
uint8_t month - Месяц (1-12).
uint8_t year - Год (0-99 без учёта века).
uint16_t Year - Год (0-65535 с учётом века).
uint32_t Unix - Unix время (секунды прошедшие с начала эпохи Unix 01.01.1970 00:00:00).
uint8_t errTim - Ошибка времени (0 - нет ошибок, 1 - нет ответа, 2 - время недостоверно).
uint8_t errDat - Ошибка даты (0 - нет ошибок, 1 - нет ответа, 2 - дата недостоверна).
uint8_t errPos - Ошибка координат (0 - нет ошибок, 1 - нет ответа, 2 - недостоверны).
uint8_t errCrs - Ошибка скорости и курса (0 - нет ошибок, 1 - нет ответа, 2 - недостоверны).
char* status - Строка содержащая статусные символы.
uint16_t available - Флаги обнаружения идентификаторов в последнем сообщении NMEA.