Rev 459 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 459 | Rev 501 | ||
---|---|---|---|
Line 48... | Line 48... | ||
48 | 48 | ||
49 | #define SYNC_CHAR1 0xb5 |
49 | #define SYNC_CHAR1 0xb5 |
Line 50... | Line 50... | ||
50 | #define SYNC_CHAR2 0x62 |
50 | #define SYNC_CHAR2 0x62 |
51 | - | ||
52 | #define CLASS_NAV 0x01 |
51 | |
53 | #define MSGID_POSECEF 0x01 |
52 | #define CLASS_NAV 0x01 |
54 | #define MSGID_STATUS 0x03 |
53 | #define MSGID_STATUS 0x03 |
55 | #define MSGID_VELECEF 0x11 |
54 | //#define MSGID_POSLLH 0x02 //(231107Kr) |
Line 67... | Line 66... | ||
67 | unsigned long TTFF; // Time to first fix (millisecond time tag) |
66 | unsigned long TTFF; // Time to first fix (millisecond time tag) |
68 | unsigned long MSSS; // Milliseconds since Startup / Reset |
67 | unsigned long MSSS; // Milliseconds since Startup / Reset |
69 | uint8_t packetStatus; |
68 | uint8_t packetStatus; |
70 | } NAV_STATUS_t; |
69 | } NAV_STATUS_t; |
Line -... | Line 70... | ||
- | 70 | ||
- | 71 | /* |
|
- | 72 | typedef struct { //(231107Kr) |
|
- | 73 | unsigned long ITOW; // time of week |
|
- | 74 | long LON; // longitude in 1e-07 deg |
|
- | 75 | long LAT; // lattitude |
|
- | 76 | long HEIGHT; // height in mm |
|
- | 77 | long HMSL; // height above mean sea level im mm |
|
- | 78 | unsigned long Hacc; // horizontal accuracy in mm |
|
- | 79 | unsigned long Vacc; // vertical accuracy in mm |
|
- | 80 | uint8_t packetStatus; |
|
- | 81 | } NAV_POSLLH_t; |
|
Line 71... | Line 82... | ||
71 | 82 | */ |
|
72 | 83 | ||
73 | typedef struct { |
84 | typedef struct { |
74 | unsigned long ITOW; // time of week |
85 | unsigned long ITOW; // time of week |
Line 93... | Line 104... | ||
93 | unsigned long CAcc; // deg Course / Heading Accuracy Estimate |
104 | unsigned long CAcc; // deg Course / Heading Accuracy Estimate |
94 | uint8_t packetStatus; |
105 | uint8_t packetStatus; |
95 | } NAV_VELNED_t; |
106 | } NAV_VELNED_t; |
Line 96... | Line -... | ||
96 | - | ||
97 | - | ||
98 | typedef struct { |
- | |
99 | unsigned long ITOW; // ms GPS Millisecond Time of Week |
- | |
100 | long ECEF_X; // ecef x / cm |
- | |
101 | long ECEF_Y; // ecef y / cm |
- | |
102 | long ECEF_Z; // ecef z / cm |
- | |
103 | unsigned long Pacc; // Abweichung |
- | |
104 | uint8_t packetStatus; |
- | |
105 | } NAV_POSECEF_t ; |
- | |
106 | - | ||
107 | typedef struct { |
- | |
108 | unsigned long ITOW; // ms GPS Millisecond Time of Week |
- | |
109 | long ECEFVX; // ecef x velocity cm/s |
- | |
110 | long ECEFVY; // ecef y velocity cm/s |
- | |
111 | long ECEFVZ; // ecef z velocity cm/s |
- | |
112 | unsigned long SAcc; // Abweichung |
- | |
113 | uint8_t packetStatus; |
- | |
Line 114... | Line 107... | ||
114 | } NAV_VELECEF_t; |
107 | |
115 | 108 | ||
116 | - | ||
117 | NAV_STATUS_t navStatus; |
109 | |
118 | NAV_POSECEF_t navPosECEF; |
110 | NAV_STATUS_t navStatus; |
Line 119... | Line 111... | ||
119 | NAV_VELECEF_t navVelECEF; |
111 | //NAV_POSLLH_t navPosLlh; //(231107Kr) |
120 | NAV_POSUTM_t navPosUtm; |
112 | NAV_POSUTM_t navPosUtm; |
Line 157... | Line 149... | ||
157 | 149 | ||
158 | void GPSscanData (void) |
150 | void GPSscanData (void) |
Line 159... | Line -... | ||
159 | { |
- | |
160 | - | ||
161 | - | ||
162 | if (navPosECEF.packetStatus == 1) // valid packet |
- | |
163 | { |
- | |
164 | actualPos.x = navPosECEF.ECEF_X; //ECEF X in cm |
- | |
165 | actualPos.y = navPosECEF.ECEF_Y; //ECEF Y in cm |
- | |
Line 166... | Line 151... | ||
166 | actualPos.z = navPosECEF.ECEF_Z; //ECEF Z in cm |
151 | { |
167 | navPosECEF.packetStatus = 0; |
152 | |
168 | } |
153 | |
169 | 154 | ||
170 | 155 | ||
171 | if (navStatus.packetStatus == 1) // valid packet |
156 | if (navStatus.packetStatus == 1) // valid packet |
Line -... | Line 157... | ||
- | 157 | { |
|
172 | { |
158 | actualPos.GPSFix = navStatus.GPSfix; |
173 | actualPos.GPSFix = navStatus.GPSfix; |
159 | actualPos.newData = navStatus.packetStatus; |
174 | actualPos.newData = navStatus.packetStatus; |
160 | navStatus.packetStatus = 0; |
175 | navStatus.packetStatus = 0; |
161 | } |
176 | } |
162 | |
177 | 163 | /* |
|
178 | if (navVelECEF.packetStatus == 1) // valid packet |
164 | if (navPosLlh.packetStatus == 1) // valid packet |
- | 165 | { |
|
Line 179... | Line 166... | ||
179 | { |
166 | actualPos.longi = navPosLlh.LON; //(231107Kr) |
180 | actualPos.vx = navVelECEF.ECEFVX; //ECEF VEL X in cm/s |
167 | actualPos.lati = navPosLlh.LAT; //(231107Kr) |
181 | actualPos.vy = navVelECEF.ECEFVY; //ECEF VEL Y in cm/s |
168 | actualPos.height = navPosLlh.HEIGHT; //(231107Kr) |
182 | actualPos.vz = navVelECEF.ECEFVZ; //ECEF VEL Z in cm/s |
169 | navPosLlh.packetStatus = 0; |
183 | navVelECEF.packetStatus = 0; |
170 | } |
184 | } |
171 | */ |
185 | 172 | ||
- | 173 | if (navPosUtm.packetStatus == 1) // valid packet |
|
186 | if (navPosUtm.packetStatus == 1) // valid packet |
174 | { |
Line 187... | Line 175... | ||
187 | { |
175 | actualPos.northing = navPosUtm.NORTH; |
188 | actualPos.northing = navPosUtm.NORTH; |
176 | actualPos.easting = navPosUtm.EAST; |
189 | actualPos.easting = navPosUtm.EAST; |
177 | actualPos.altitude = navPosUtm.ALT; |
190 | actualPos.altitude = navPosUtm.ALT; |
178 | navPosUtm.packetStatus = 0; |
191 | navPosUtm.packetStatus = 0; |
179 | newData_navPosUtm = 1; // (211007Kr) |
- | 180 | ROT_ON; // Rot blinkt in der Frequenz mit der neue UTM-Daten des GPS Empfänger ankommen und brauchbar sind //(211107Kr) |
|
192 | newData_navPosUtm = 1; // (211007Kr) |
181 | } |
193 | } |
182 | |
194 | 183 | ||
Line 195... | Line -... | ||
195 | - | ||
196 | if (navVelNed.packetStatus == 1) |
- | |
197 | { |
- | |
198 | actualPos.velNorth = navVelNed.VEL_N; |
- | |
199 | actualPos.velEast = navVelNed.VEL_E; |
184 | if (navVelNed.packetStatus == 1) // valid packet |
Line 200... | Line 185... | ||
200 | actualPos.GSpeed = navVelNed.GSpeed; //Geschwindigkeit [cm/s] über Grund (151007Kr) |
185 | { |
201 | navVelNed.packetStatus = 0; |
186 | actualPos.velNorth = navVelNed.VEL_N; |
202 | } |
187 | actualPos.velEast = navVelNed.VEL_E; |
Line 270... | Line 255... | ||
270 | ubxP = (char*)&navStatus; |
255 | ubxP = (char*)&navStatus; |
271 | ubxEp = (char*)(&navStatus + sizeof(NAV_STATUS_t)); |
256 | ubxEp = (char*)(&navStatus + sizeof(NAV_STATUS_t)); |
272 | ubxSp = (char*)&navStatus.packetStatus; |
257 | ubxSp = (char*)&navStatus.packetStatus; |
273 | ignorePacket = navStatus.packetStatus; |
258 | ignorePacket = navStatus.packetStatus; |
274 | break; |
259 | break; |
275 | case MSGID_POSECEF: |
- | |
276 | ubxP = (char*)&navPosECEF; |
- | |
277 | ubxEp = (char*)(&navPosECEF + sizeof(NAV_POSECEF_t)); |
- | |
278 | ubxSp = (char*)&navPosECEF.packetStatus; |
- | |
279 | ignorePacket = navPosECEF.packetStatus; |
- | |
280 | break; |
260 | /* |
281 | case MSGID_VELECEF: |
261 | case MSGID_POSLLH: //(231107Kr) |
282 | ubxP = (char*)&navVelECEF; |
262 | ubxP = (char*)&navPosLlh; |
283 | ubxEp = (char*)(&navVelECEF + sizeof(NAV_VELECEF_t)); |
263 | ubxEp = (char*)(&navPosLlh + sizeof(NAV_POSLLH_t)); |
284 | ubxSp = (char*)&navVelECEF.packetStatus; |
264 | ubxSp = (char*)&navPosLlh.packetStatus; |
285 | ignorePacket = navVelECEF.packetStatus; |
265 | ignorePacket = navPosLlh.packetStatus; |
286 | break; |
266 | break; |
- | 267 | */ |
|
287 | case MSGID_POSUTM: |
268 | case MSGID_POSUTM: |
288 | ubxP = (char*)&navPosUtm; |
269 | ubxP = (char*)&navPosUtm; |
289 | ubxEp = (char*)(&navPosUtm + sizeof(NAV_POSUTM_t)); |
270 | ubxEp = (char*)(&navPosUtm + sizeof(NAV_POSUTM_t)); |
290 | ubxSp = (char*)&navPosUtm.packetStatus; |
271 | ubxSp = (char*)&navPosUtm.packetStatus; |
291 | ignorePacket = navPosUtm.packetStatus; |
272 | ignorePacket = navPosUtm.packetStatus; |
Line 342... | Line 323... | ||
342 | } |
323 | } |
343 | } |
324 | } |
344 | else // discard any data if error occured |
325 | else // discard any data if error occured |
345 | { |
326 | { |
346 | gpsState = GPS_EMPTY; |
327 | gpsState = GPS_EMPTY; |
347 | GPSscanData (); //Test kann ggf. wieder gelöscht werden! |
- | |
348 | } |
328 | } |
349 | GPSscanData (); |
329 | GPSscanData (); |