Subversion Repositories FlightCtrl

Rev

Rev 935 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 935 Rev 936
1
#ifndef _UBX_H
1
#ifndef _UBX_H
2
#define _UBX_H
2
#define _UBX_H
3
 
3
 
4
#include <inttypes.h>
4
#include <inttypes.h>
5
 
-
 
6
#define INVALID    0x00
-
 
7
#define VALID      0x01
-
 
-
 
5
 
-
 
6
 
-
 
7
typedef enum
-
 
8
{
-
 
9
        INVALID,
-
 
10
        NEWDATA,
-
 
11
        PROCESSED
8
#define PROCESSED  0x02
12
} Status_t;
9
 
13
 
10
 
14
// Satfix types for GPSData.satfix
11
#define SATFIX_NONE                      0x00
15
#define SATFIX_NONE                      0x00
12
#define SATFIX_DEADRECKOING      0x01
16
#define SATFIX_DEADRECKOING      0x01
13
#define SATFIX_2D                                0x02
17
#define SATFIX_2D                                0x02
14
#define SATFIX_3D                                0x03
18
#define SATFIX_3D                                0x03
15
#define SATFIX_GPS_DEADRECKOING  0x04
19
#define SATFIX_GPS_DEADRECKOING  0x04
16
#define SATFIX_TIMEONLY                  0x05
20
#define SATFIX_TIMEONLY                  0x05
-
 
21
// Flags for interpretation of the GPSData.flags
-
 
22
#define FLAG_GPSFIXOK                   0x01 // (i.e. within DOP & ACC Masks)
-
 
23
#define FLAG_DIFFSOLN                   0x02 // (is DGPS used)
-
 
24
#define FLAG_WKNSET                             0x04 // (is Week Number valid)
-
 
25
#define FLAG_TOWSET                             0x08 // (is Time of Week valid)
17
 
26
 
18
 
27
 
19
/* enable the UBX protocol at the gps receiver with the following messages enabled
28
/* enable the UBX protocol at the gps receiver with the following messages enabled
20
  01-02 NAV - POSLLH
29
  01-02 NAV - POSLLH
21
  01-06 Nav - SOL
30
  01-06 Nav - SOL
22
  01-12 NAV - VELNED */
31
  01-12 NAV - VELNED */
23
 
32
 
24
typedef struct
33
typedef struct
25
{
34
{
26
        uint8_t         status;     // status of data: invalid | valid
35
        uint8_t         flags;          // flags
27
        uint8_t         satnum;         // number of satelites
36
        uint8_t         satnum;         // number of satelites
28
        uint8_t         satfix;         // type of satfix
37
        uint8_t         satfix;         // type of satfix
29
        int32_t         longitude;  // in 1e-07 deg
38
        int32_t         longitude;  // in 1e-07 deg
30
        int32_t         latitude;       // in 1e-07 deg
39
        int32_t         latitude;       // in 1e-07 deg
31
        int32_t         altitude;   // in mm
40
        int32_t         altitude;   // in mm
32
        uint32_t    PAcc;               // in cm 3d position accuracy
41
        uint32_t    PAcc;               // in cm 3d position accuracy
33
        int32_t         velnorth;       // in cm/s
42
        int32_t         velnorth;       // in cm/s
34
        int32_t         veleast;        // in cm/s
43
        int32_t         veleast;        // in cm/s
35
        int32_t         veltop;     // in cm/s
44
        int32_t         veltop;     // in cm/s
36
        uint32_t    velground;  // 2D ground speed in cm/s
45
        uint32_t    velground;  // 2D ground speed in cm/s
37
        uint32_t        VAcc;           // in cm/s 3d velocity accuracy
46
        uint32_t        VAcc;           // in cm/s 3d velocity accuracy
38
        uint32_t    updatetime;  // ms
47
        Status_t        status;     // status of data: invalid | valid
39
} GPS_INFO_t;
48
} GPS_INFO_t;
40
 
49
 
41
//here you will find the current gps info
50
//here you will find the current gps info
42
extern GPS_INFO_t GPSInfo;      // measured position (last gps record)
51
extern GPS_INFO_t GPSInfo;      // measured position (last gps record)
43
 
52
 
44
// this variable should be decremted by the application
53
// this variable should be decremted by the application
45
extern volatile uint8_t GPSTimeout; // is reset to 255 if a new UBX msg was received
54
extern volatile uint8_t GPSTimeout; // is reset to 255 if a new UBX msg was received
46
 
55
 
47
// this function should be called within the UART RX ISR
56
// this function should be called within the UART RX ISR
48
extern void ubx_parser(uint8_t c);
57
extern void ubx_parser(uint8_t c);
49
 
58
 
50
#endif //_UBX_H
59
#endif //_UBX_H
51
 
60