-
Notifications
You must be signed in to change notification settings - Fork 0
/
ublox.h
196 lines (170 loc) · 5.04 KB
/
ublox.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
/*
Copyright (c) 2011, Ascending Technologies GmbH
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
*/
#ifndef UBLOX_H_
#define UBLOX_H_
#define UR_MAX_RAWDATA_LENGTH 384
extern void uBloxReceiveHandler(unsigned char recByte);
extern void uBloxReceiveEngine(void); //call with 200ms
extern unsigned char gpsLEDTrigger;
struct __attribute__((packed)) UBX_NAV_SOL
{
unsigned int iTow;
unsigned int fTow;
short week;
unsigned char gpsFix;
unsigned char flags;
int ecefX;
int ecefY;
int ecefZ;
unsigned int pAcc;
int ecefVX;
int ecefVY;
int ecefVZ;
unsigned int sAcc;
unsigned short pDOP;
unsigned char reserved1;
unsigned char numSV;
unsigned int reserved2;
};
struct __attribute__((packed)) UBX_NAV_POSLLH
{
unsigned int iTow;
int lon;
int lat;
int height;
int hMSL;
int hAcc;
int vAcc;
};
struct __attribute__((packed)) UBX_NAV_VELNED
{
unsigned int iTow;
int velN;
int velE;
int velD;
unsigned int speed;
unsigned int gSpeed;
int heading;
unsigned int sAcc;
unsigned int cAcc;
};
struct __attribute__((packed)) UBX_NAV_STATUS
{
unsigned int iTow;
unsigned char gpsFix;
unsigned char flags;
unsigned char fixStat;
unsigned char flags2;
unsigned int ttff;
unsigned int msss;
};
struct __attribute__((packed)) UBX_MON_VER_HEADER
{
char swVersion[30];
char hwVersion[10];
char romVersion[30];
};
struct __attribute__((packed)) UBX_MON_SCHED
{
unsigned char reserved[16];
unsigned short stackUsed;
unsigned short stackAv;
unsigned short cpuLoad;
unsigned char fullSlots;
unsigned char partSlots;
};
struct __attribute__((packed)) UBX_MON_HW
{
unsigned int pinSel;
unsigned int pinBank;
unsigned int pinDir;
unsigned int pinVal;
unsigned short noisePerMs;
unsigned short agcCnt;
unsigned char aStatus;
unsigned char aPower;
unsigned char flags;
unsigned char reserved1;
unsigned int usedMast;
unsigned char vp[25];
unsigned char jamInd;
unsigned short reserved3;
unsigned int pinIrq;
unsigned int pullH;
unsigned int pullL;
};
struct __attribute__((packed)) UBX_NAV_SVINFO_HEADER
{
unsigned int iTow;
unsigned char numCh;
unsigned char globalFlags;
unsigned short reserved2;
};
struct __attribute__((packed)) UBX_NAV_SVINFO_SAT
{
unsigned char channel;
unsigned char svId;
unsigned char flags;
unsigned char quality;
unsigned char cNo;
char elev; //in deg
short azim; // in deg
int prRes; //pseudo range residual
};
struct __attribute__((packed)) UBX_CFG_CFG
{
unsigned int clearMask;
unsigned int saveMask;
unsigned int loadMask;
unsigned char deviceMask;
};
struct __attribute__((packed)) SVINFO_HEADER
{
unsigned char numCh;
unsigned char globalFlags;
};
struct __attribute__((packed)) SVINFO
{
unsigned char channel;
unsigned char svId;
unsigned char flags;
unsigned char quality;
unsigned char cNo;
char elev; //in deg
short azim; // in deg
int prRes; //pseudo range residual
};
struct __attribute__((packed)) GPS_HW_STATUS
{
unsigned char antennaStatus;
unsigned char antennaPower;
unsigned short agcMonitor;
unsigned short noiseLevel;
unsigned short stackUsed;
unsigned short stackAv;
unsigned short cpuLoad;
unsigned char fullSlots;
unsigned char partSlots;
};
extern struct GPS_HW_STATUS gpsHardwareStatus;
#endif /* UBLOX_H_ */