/*Z dane NMEA zpravy vypreparuje potrebne informace*//*Autor: Zbynek*/#include "GPS_dekoduj.h"#include <string.h>NMEA_GPGGA GPGGA_informace;/************************************************************************* Funkce: dekoduj_zpravu_GPS* Ucel: Z RX0_buffer vytahne informace o soucasne poloze, je tam ulozena cela veta RMC* Vstup: Zadny* Vystup: Zadny************************************************************************/void dekoduj_zpravu_GPS (uint8_t* NMEA_retezec, uint8_t NMEA_delka){uint8_t i = 0, j = 0, k = 0, l = 0;uint8_t pocet_carek = 0;for ( i = 0; i < NMEA_delka; i++){if (pocet_carek == 1){GPGGA_informace.UTC_time[l] = NMEA_retezec[i];l++;}if (pocet_carek == 2 || pocet_carek == 3){GPGGA_informace.Latitude[k] = NMEA_retezec[i];k++;l = 0;}if (pocet_carek == 4 || pocet_carek == 5){GPGGA_informace.Longitude[j] = NMEA_retezec[i];j++;}if (pocet_carek == 6){GPGGA_informace.UTC_time[l-1] = 0;GPGGA_informace.Latitude[k-1] = 0;GPGGA_informace.Longitude[j-1] = 0;GPGGA_informace.Status_GPS = NMEA_retezec[i-1];j = 0;}if (pocet_carek == 9){GPGGA_informace.Altitude[j] = NMEA_retezec[i];j++;}if (NMEA_retezec[i] == ','){pocet_carek++;}if (pocet_carek >9){GPGGA_informace.Altitude[j-1] = 0; // konec Stringubreak; // nema vyznam dal zapisovat, potrebne je ulozeno.}}}