Subversion Repositories FlightCtrl

Rev

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 ();