mirror of
https://github.com/markqvist/OpenModem.git
synced 2025-05-17 05:42:18 -04:00
GPS driver implemented
This commit is contained in:
parent
07b589fe3f
commit
4827565bc8
10 changed files with 634 additions and 113 deletions
67
hardware/GPS.h
Normal file
67
hardware/GPS.h
Normal file
|
@ -0,0 +1,67 @@
|
|||
#ifndef GPS_H
|
||||
#define GPS_H
|
||||
|
||||
#include <avr/io.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include "device.h"
|
||||
#include "util/time.h"
|
||||
#include "hardware/serial.h"
|
||||
|
||||
#define NMEA_MAX_LENGTH 128
|
||||
|
||||
#define PMTK_SET_BAUD_57600 PSTR("$PMTK251,57600*2C\r\n")
|
||||
#define PMTK_SET_BAUD_9600 PSTR("$PMTK251,9600*17\r\n")
|
||||
#define PMTK_SET_NMEA_OUTPUT_RMCONLY PSTR("$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29\r\n")
|
||||
#define PMTK_SET_NMEA_OUTPUT_RMCGGA PSTR("$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28\r\n")
|
||||
#define PMTK_SET_NMEA_OUTPUT_NONE PSTR("$PMTK314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28\r\n")
|
||||
#define PMTK_SET_NMEA_OUTPUT_ALL PSTR("$PMTK314,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0*28\r\n")
|
||||
#define PMTK_API_SET_FIX_CTL_200_mHZ PSTR("$PMTK300,5000,0,0,0,0*18\r\n")
|
||||
#define PMTK_API_SET_FIX_CTL_1HZ PSTR("$PMTK300,1000,0,0,0,0*1C\r\n")
|
||||
#define PGCMD_ANTENNA PSTR("$PGCMD,33,1*6C\r\n")
|
||||
#define PGCMD_NOANTENNA PSTR("$PGCMD,33,0*6D\r\n")
|
||||
|
||||
void gps_init(Serial *ser);
|
||||
bool gps_enabled(void);
|
||||
void gps_poll(void);
|
||||
void gps_jobs(void);
|
||||
void gps_send_command(const char *cmd);
|
||||
uint8_t gps_parse_nmea(char *nmea);
|
||||
uint8_t gps_nmea_parse_hex(char c);
|
||||
|
||||
uint8_t gps_t_year;
|
||||
uint8_t gps_t_month;
|
||||
uint8_t gps_t_day;
|
||||
uint8_t gps_t_hour;
|
||||
uint8_t gps_t_minute;
|
||||
uint8_t gps_t_second;
|
||||
|
||||
int gps_lat_degrees;
|
||||
int gps_lat_minutes;
|
||||
float gps_lat_seconds;
|
||||
float gps_lat;
|
||||
|
||||
int gps_lon_degrees;
|
||||
int gps_lon_minutes;
|
||||
float gps_lon_seconds;
|
||||
float gps_lon;
|
||||
|
||||
float gps_geoid_height;
|
||||
float gps_altitude;
|
||||
float gps_height_above_msl;
|
||||
float gps_speed_knots;
|
||||
float gps_speed_kmh;
|
||||
float gps_speed_mph;
|
||||
float gps_bearing;
|
||||
float gps_magvariation;
|
||||
float gps_hdop;
|
||||
char gps_lat_sign;
|
||||
char gps_lon_sign;
|
||||
char gps_mag_char;
|
||||
bool gps_fix;
|
||||
uint8_t gps_fix_quality;
|
||||
uint8_t gps_sats;
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue