Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 500 → Rev 501

/branches/Flight-Ctrl_V0_64_3_GPS_work_Jochen/uart.c
50,9 → 50,8
#define SYNC_CHAR2 0x62
 
#define CLASS_NAV 0x01
#define MSGID_POSECEF 0x01
#define MSGID_STATUS 0x03
#define MSGID_VELECEF 0x11
//#define MSGID_POSLLH 0x02 //(231107Kr)
#define MSGID_POSUTM 0x08
#define MSGID_VELNED 0x12
 
69,6 → 68,18
uint8_t packetStatus;
} NAV_STATUS_t;
 
/*
typedef struct { //(231107Kr)
unsigned long ITOW; // time of week
long LON; // longitude in 1e-07 deg
long LAT; // lattitude
long HEIGHT; // height in mm
long HMSL; // height above mean sea level im mm
unsigned long Hacc; // horizontal accuracy in mm
unsigned long Vacc; // vertical accuracy in mm
uint8_t packetStatus;
} NAV_POSLLH_t;
*/
 
typedef struct {
unsigned long ITOW; // time of week
95,28 → 106,9
} NAV_VELNED_t;
 
 
typedef struct {
unsigned long ITOW; // ms GPS Millisecond Time of Week
long ECEF_X; // ecef x / cm
long ECEF_Y; // ecef y / cm
long ECEF_Z; // ecef z / cm
unsigned long Pacc; // Abweichung
uint8_t packetStatus;
} NAV_POSECEF_t ;
 
typedef struct {
unsigned long ITOW; // ms GPS Millisecond Time of Week
long ECEFVX; // ecef x velocity cm/s
long ECEFVY; // ecef y velocity cm/s
long ECEFVZ; // ecef z velocity cm/s
unsigned long SAcc; // Abweichung
uint8_t packetStatus;
} NAV_VELECEF_t;
 
 
NAV_STATUS_t navStatus;
NAV_POSECEF_t navPosECEF;
NAV_VELECEF_t navVelECEF;
//NAV_POSLLH_t navPosLlh; //(231107Kr)
NAV_POSUTM_t navPosUtm;
NAV_VELNED_t navVelNed;
 
159,13 → 151,6
{
 
 
if (navPosECEF.packetStatus == 1) // valid packet
{
actualPos.x = navPosECEF.ECEF_X; //ECEF X in cm
actualPos.y = navPosECEF.ECEF_Y; //ECEF Y in cm
actualPos.z = navPosECEF.ECEF_Z; //ECEF Z in cm
navPosECEF.packetStatus = 0;
}
 
if (navStatus.packetStatus == 1) // valid packet
175,13 → 160,15
navStatus.packetStatus = 0;
}
if (navVelECEF.packetStatus == 1) // valid packet
/*
if (navPosLlh.packetStatus == 1) // valid packet
{
actualPos.vx = navVelECEF.ECEFVX; //ECEF VEL X in cm/s
actualPos.vy = navVelECEF.ECEFVY; //ECEF VEL Y in cm/s
actualPos.vz = navVelECEF.ECEFVZ; //ECEF VEL Z in cm/s
navVelECEF.packetStatus = 0;
actualPos.longi = navPosLlh.LON; //(231107Kr)
actualPos.lati = navPosLlh.LAT; //(231107Kr)
actualPos.height = navPosLlh.HEIGHT; //(231107Kr)
navPosLlh.packetStatus = 0;
}
*/
 
if (navPosUtm.packetStatus == 1) // valid packet
{
190,21 → 177,19
actualPos.altitude = navPosUtm.ALT;
navPosUtm.packetStatus = 0;
newData_navPosUtm = 1; // (211007Kr)
ROT_ON; // Rot blinkt in der Frequenz mit der neue UTM-Daten des GPS Empfänger ankommen und brauchbar sind //(211107Kr)
}
 
if (navVelNed.packetStatus == 1)
 
if (navVelNed.packetStatus == 1) // valid packet
{
actualPos.velNorth = navVelNed.VEL_N;
actualPos.velEast = navVelNed.VEL_E;
actualPos.velDown = navVelNed.VEL_D;
actualPos.GSpeed = navVelNed.GSpeed; //Geschwindigkeit [cm/s] über Grund (151007Kr)
navVelNed.packetStatus = 0;
}
 
 
if (actualPos.newData != 0){ROT_ON;} //-> Rot blinkt mit 4Hz wenn Daten vom GPS Empfänger ankommen und brauchbar sind
 
}
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
272,18 → 257,14
ubxSp = (char*)&navStatus.packetStatus;
ignorePacket = navStatus.packetStatus;
break;
case MSGID_POSECEF:
ubxP = (char*)&navPosECEF;
ubxEp = (char*)(&navPosECEF + sizeof(NAV_POSECEF_t));
ubxSp = (char*)&navPosECEF.packetStatus;
ignorePacket = navPosECEF.packetStatus;
/*
case MSGID_POSLLH: //(231107Kr)
ubxP = (char*)&navPosLlh;
ubxEp = (char*)(&navPosLlh + sizeof(NAV_POSLLH_t));
ubxSp = (char*)&navPosLlh.packetStatus;
ignorePacket = navPosLlh.packetStatus;
break;
case MSGID_VELECEF:
ubxP = (char*)&navVelECEF;
ubxEp = (char*)(&navVelECEF + sizeof(NAV_VELECEF_t));
ubxSp = (char*)&navVelECEF.packetStatus;
ignorePacket = navVelECEF.packetStatus;
break;
*/
case MSGID_POSUTM:
ubxP = (char*)&navPosUtm;
ubxEp = (char*)(&navPosUtm + sizeof(NAV_POSUTM_t));
344,7 → 325,6
else // discard any data if error occured
{
gpsState = GPS_EMPTY;
GPSscanData (); //Test kann ggf. wieder gelöscht werden!
}
GPSscanData ();