Subversion Repositories FlightCtrl

Rev

Rev 724 | Blame | Last modification | View Log | RSS feed

#ifndef _UBX_H
#define _UBX_H

#include <inttypes.h>

#define INVALID    0x00
#define VALID      0x01
#define PROCESSED  0x02


#define SATFIX_NONE                      0x00
#define SATFIX_DEADRECKOING      0x01
#define SATFIX_2D                                0x02
#define SATFIX_3D                                0x03
#define SATFIX_GPS_DEADRECKOING  0x04
#define SATFIX_TIMEONLY                  0x05


/* enable the UBX protocol at the gps receiver with the following messages enabled
  01-02 NAV - POSLLH
  01-03 NAV - STATUS
  01-08 NAV - POSUTM
  01-12 NAV - VELNED */



typedef struct
{
        uint8_t         satfix;         // type of satfix
        int32_t         utmnorth;       // in cm (+ = north)
        int32_t         utmeast;        // in cm (+ = east)
        int32_t         utmalt;     // in cm (+ = top)
        int32_t         velnorth;       // in cm/s
        int32_t         veleast;        // in cm/s
        int32_t         veltop;     // in cm/s
        int32_t         longitude;  // in 1e-07 deg
        int32_t         latitude;       // in 1e-07 deg
        int32_t         altitude;   // in mm
        uint8_t         status;     // status of data: invalid | valid
} GPS_INFO_t;

//here you will find the current gps info
extern GPS_INFO_t GPSInfo;      // measured position (last gps record)

// this variable should be decremted by the application
extern volatile uint8_t GPSTimeout; // is reset to 255 if a new UBX msg was received

// initialized the upx parser
extern void ubx_init(void);

// this function should be called within the UART RX ISR
extern void ubx_parser(uint8_t c);

#endif //_UBX_H