123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /*
- * gps.h
- *
- * Created on: Nov 15, 2019
- * Author: Bulanov Konstantin
- */
- #ifndef GPS_H_
- #define GPS_H_
- #include "string.h"
- #include "stdio.h"
- #include "stdbool.h"
- #include "stm32f1xx_hal.h"
- #define GPS_DEBUG 0
- #define GPSBUFSIZE 128 // GPS buffer size
- typedef struct{
- // calculated values
- float dec_longitude;
- float dec_latitude;
- float altitude_ft;
- // GGA - Global Positioning System Fixed Data
- float nmea_longitude;
- float nmea_latitude;
- float utc_time;
- char ns, ew;
- int lock;
- int satelites;
- float hdop;
- float msl_altitude;
- char msl_units;
- // RMC - Recommended Minimmum Specific GNS Data
- char rmc_status;
- float speed_k;
- float course_d;
- int date;
- // GLL
- char gll_status;
- // VTG - Course over ground, ground speed
- float course_t; // ground speed true
- char course_t_unit;
- float course_m; // magnetic
- char course_m_unit;
- char speed_k_unit;
- float speed_km; // speek km/hr
- char speed_km_unit;
- } GPS_t;
- __packed struct gps_data_s{
- // GGA - Global Positioning System Fixed Data
- float longitude;
- float latitude;
- float speed_km; // speek km/hr
- uint8_t satelites;
- };
- typedef __packed struct gps_data_s gps_data_t;
- #if (GPS_DEBUG == 1)
- void GPS_print(char *data);
- #endif
- void GPS_Init(UART_HandleTypeDef *_huart,void (*p_data_ready_func)(gps_data_t*));
- void gps_start(void);
- void GSP_USBPrint(char *data);
- void GPS_print_val(char *data, int value);
- void GPS_UART_CallBack(void);
- void GPS_UART_ErrorCallback(void);
- void GPS_AbortReceiveCpltCallback(void);
- int GPS_validate(char *nmeastr);
- void GPS_parse(char *GPSstrParse);
- void GPS_parse_ad0x0(char *GPSstrParse);
- float GPS_nmea_to_dec(float deg_coord, char nsew);
- GPS_t *ad0x0_get_gps_buf(void);//threads!!!!!!!!!!!!!!!!
- #endif
|