Subversion Repositories NaviCtrl

Rev

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

Rev 41 Rev 52
1
#ifndef __UBX_H
1
#ifndef __UBX_H
2
#define __UBX_H
2
#define __UBX_H
3
 
3
 
4
// Satfix types for GPSData.SatFix
4
// Satfix types for GPSData.SatFix
5
#define SATFIX_NONE                             0x00
5
#define SATFIX_NONE                             0x00
6
#define SATFIX_DEADRECKOING             0x01
6
#define SATFIX_DEADRECKOING             0x01
7
#define SATFIX_2D                               0x02
7
#define SATFIX_2D                               0x02
8
#define SATFIX_3D                               0x03
8
#define SATFIX_3D                               0x03
9
#define SATFIX_GPS_DEADRECKOING 0x04
9
#define SATFIX_GPS_DEADRECKOING 0x04
10
#define SATFIX_TIMEONLY                 0x05
10
#define SATFIX_TIMEONLY                 0x05
11
// Flags for interpretation of the GPSData.Flags
11
// Flags for interpretation of the GPSData.Flags
12
#define FLAG_GPSFIXOK                   0x01 // (i.e. within DOP & ACC Masks)
12
#define FLAG_GPSFIXOK                   0x01 // (i.e. within DOP & ACC Masks)
13
#define FLAG_DIFFSOLN                   0x02 // (is DGPS used)
13
#define FLAG_DIFFSOLN                   0x02 // (is DGPS used)
14
#define FLAG_WKNSET                             0x04 // (is Week Number valid)
14
#define FLAG_WKNSET                             0x04 // (is Week Number valid)
15
#define FLAG_TOWSET                             0x08 // (is Time of Week valid)
15
#define FLAG_TOWSET                             0x08 // (is Time of Week valid)
16
 
-
 
17
typedef enum
-
 
18
{
16
 
19
        INVALID         = 0,
17
#define INVALID         0x00
20
        NEWDATA         = 1,
18
#define NEWDATA         0x01
21
        PROCESSED       = 2
-
 
22
} Status_t;
19
#define PROCESSED       0x02
23
 
20
 
24
typedef struct
21
typedef struct
25
{
22
{
26
        s32 Longitude;  // in 1E-7 deg
23
        s32 Longitude;  // in 1E-7 deg
27
        s32 Latitude;   // in 1E-7 deg
24
        s32 Latitude;   // in 1E-7 deg
28
        s32 Altitude;   // in mm
25
        s32 Altitude;   // in mm
29
        Status_t Status;// validity of data
26
        u8 Status;// validity of data
30
} __attribute__((packed)) GPS_Pos_t;
27
} __attribute__((packed)) GPS_Pos_t;
31
 
28
 
32
 
29
 
33
typedef struct
30
typedef struct
34
{
31
{
35
        GPS_Pos_t       Position;       // Lat/Lon/Alt
32
        GPS_Pos_t       Position;       // Lat/Lon/Alt
36
        u8                      Flags;                  // Status Flags
33
        u8                      Flags;                  // Status Flags
37
        u8                      NumOfSats;              // number of satelites
34
        u8                      NumOfSats;              // number of satelites
38
        u8                      SatFix;                 // type of satfix
35
        u8                      SatFix;                 // type of satfix
39
        u32             Position_Accuracy;      // in cm 3d position accuracy
36
        u32             Position_Accuracy;      // in cm 3d position accuracy
40
        s32                     Speed_North;    // in cm/s
37
        s32                     Speed_North;    // in cm/s
41
        s32                     Speed_East;             // in cm/s
38
        s32                     Speed_East;             // in cm/s
42
        s32                     Speed_Top;              // in cm/s
39
        s32                     Speed_Top;              // in cm/s
43
        u32                     Speed_Ground;   // 2D ground speed in cm/s
40
        u32                     Speed_Ground;   // 2D ground speed in cm/s
44
        s32                     Heading;                // 1e-05 deg  Heading 2-D (curent flight direction)
41
        s32                     Heading;                // 1e-05 deg  Heading 2-D (curent flight direction)
45
        u32                     Speed_Accuracy; // in cm/s 3d velocity accuracy
42
        u32                     Speed_Accuracy; // in cm/s 3d velocity accuracy
46
        Status_t    Status;                     // status of data
43
        u8                      Status;                 // status of data
47
} __attribute__((packed)) gps_data_t;
44
} __attribute__((packed)) gps_data_t;
48
 
45
 
49
// The data are valid if the GPSData.Status is NEWDATA or PROCESSED.
46
// The data are valid if the GPSData.Status is NEWDATA or PROCESSED.
50
// To achieve new data after reading the GPSData.Status should be set to PROCESSED.
47
// To achieve new data after reading the GPSData.Status should be set to PROCESSED.
51
extern gps_data_t  GPSData;
48
extern gps_data_t  GPSData;
52
extern u32 CheckGPSOkay;
49
extern u32 CheckGPSOkay;
53
 
50
 
54
void UBX_Init(void);
51
void UBX_Init(void);
55
void UBX_Parser(u8 c);
52
void UBX_Parser(u8 c);
56
 
53
 
57
 
54
 
58
#endif // __UBX_H
55
#endif // __UBX_H
59
 
56