pecanpico9/tracker/software/drivers/ublox.h

43 wiersze
1.0 KiB
C

/**
* @see https://github.com/thasti/utrak
*/
#ifndef __MAX_H__
#define __MAX_H__
#include "ch.h"
#include "hal.h"
#include "ptime.h"
#define UBLOX_MAX_ADDRESS 0x42
// You can either use I2C or UART
//#define UBLOX_USE_UART
#define UBLOX_USE_I2C
#define isGPSLocked(pos) ((pos)->type == 3 && (pos)->num_svs >= 5)
typedef struct {
ptime_t time; // Time
uint8_t type; // type of fix (validity)
uint8_t num_svs; // number of satellites used for solution, range 0 .. 19
int32_t lat; // latitude in deg * 10^7, range -90 .. +90 * 10^7
int32_t lon; // longitude in deg * 10^7, range -180 .. +180 * 10^7
int32_t alt; // altitude in m, range 0m, up to ~40000m, clamped
} gpsFix_t;
uint8_t gps_set_gps_only(void);
uint8_t gps_disable_nmea_output(void);
uint8_t gps_set_airborne_model(void);
uint8_t gps_set_power_save(void);
uint8_t gps_power_save(int on);
//uint8_t gps_save_settings(void);
bool gps_get_fix(gpsFix_t *fix);
bool GPS_Init(void);
void GPS_Deinit(void);
uint32_t GPS_get_mcu_frequency(void);
#endif