#ifndef GPS_H_INCLUDED #define GPS_H_INCLUDED /* -------------------- System Include Files / Librarys ------------ */ #include "stm32f10x_conf.h" #include "system_stm32f10x.h" /* -------------------- Standard Include Files --------------------- */ #include #include #include #include #include "main.h" #include "tools.h" #include "hardware.h" /* Deklarationen */ /* Extrahierte NMEA Infos als Strings */ typedef struct { uint8_t datavalid; /* 1 = Daten sind gültig */ struct tm time; /* Alle Zeitangaben */ int heading; /* Kompassrichtung bzgl. Norden */ double longtitude; /* Länge */ double latitude; /* Breite */ char longstr[12]; /* Länge als String */ char latstr[12]; /* Breite als String */ double speedkmh; /* Geschwindigkeit in kmh */ char nmeastring[100]; /* NMEA String Kopie */ } nmea_info_t; /* Makro Usart Pending IT löschen */ #define ClearPendingIT() { USART1->SR; \ USART1->DR; } /* --- Deklaration: Interface Variablen --- */ extern volatile _Bool fMoreSpeed; /* 1= Geschwindigkeit über Schwellwert */ extern volatile _Bool fGPSValidFix; /* 1= GPS Daten sind gültig */ extern volatile _Bool fGPSDataValid; /* 1= Gültiger Datensatz im Buffer */ extern volatile nmea_info_t GPS; /* Extrahierte Infos aus Datensatz */ extern volatile nmea_info_t GPSnapshot; /* Schnappschuss */ /* --- Deklaration: Interface Routinen --- */ /* Setze Daten gültig / ungültig */ void GPS_SetDataValid(_Bool stat); /* Lese Daten gültig ? */ uint8_t GPS_GetDataValid(); /* Liefert Zeiger auf aktuelle Geschwindigkeit */ double* GPS_GetSpeed(); /* Liefert Zeiger auf aktuelle Latitude zurück */ double* GPS_GetLatitude(); /* Liefert Zeiger auf aktuelle Longtitude zurück */ double* GPS_GetLongtitude(); /* Liefert Zeiger auf NMEA String */ char* GPS_GetNMEAStr(); /* Liefert Zeiger auf Latitude String */ char* GPS_GetLatStr(); /* Liefert Zeiger auf Longtitude String */ char* GPS_GetLongStr(); /* Liefert einen Zeiger auf die Uhrzeit mit Datum uint16_t test = GPS_GetDateTime()->tm_min; */ struct tm* GPS_GetStamp(); void Init_UART1(); /* UART einstellen */ void USART1_SendString(char*); /* Kommando an GPS senden */ void GPS_StopGNSS(); /* Stoppt das GPS Modul */ void GPS_StartGNSS(); /* Startet das GPS Modul */ void GPS_Power(FunctionalState); /* Stromzufuhr GPS ein oder aus */ #endif