Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 725 → Rev 726

/branches/V0.68d Code Redesign killagreg/ubx.c
71,12 → 71,13
} GPS_VELNED_t;
 
 
GPS_STATUS_t GpsStatus;
GPS_POSLLH_t GpsPosLlh;
GPS_POSUTM_t GpsPosUtm;
GPS_VELNED_t GpsVelNed;
GPS_STATUS_t GpsStatus = {0,0,0,0,0,0,0, INVALID};
GPS_POSLLH_t GpsPosLlh = {0,0,0,0,0,0,0, INVALID};
GPS_POSUTM_t GpsPosUtm = {0,0,0,0,0,0, INVALID};
GPS_VELNED_t GpsVelNed = {0,0,0,0,0,0,0,0,0, INVALID};
GPS_INFO_t GPSInfo = {0,0,0,0,0,0,0,0,0,0, INVALID};
 
GPS_INFO_t GPSInfo;
volatile uint8_t GPSTimeout = 0;
 
void UpdateGPSInfo (void)
{
83,7 → 84,7
if (GpsStatus.Status == VALID) // valid packet
{
GPSInfo.satfix = GpsStatus.GPSfix;
GpsStatus.Status = PROCESSED; // never update old data
GpsStatus.Status = PROCESSED; // never update old data
}
if (GpsPosLlh.Status == VALID) // valid packet
{
90,7 → 91,7
GPSInfo.longitude = GpsPosLlh.LON;
GPSInfo.latitude = GpsPosLlh.LAT;
GPSInfo.altitude = GpsPosLlh.HEIGHT;
GpsPosLlh.Status = PROCESSED; // never update old data
GpsPosLlh.Status = PROCESSED; // never update old data
}
if (GpsPosUtm.Status == VALID) // valid packet
{
97,7 → 98,7
GPSInfo.utmeast = GpsPosUtm.EAST;
GPSInfo.utmnorth = GpsPosUtm.NORTH;
GPSInfo.utmalt = GpsPosUtm.ALT;
GpsPosUtm.Status = PROCESSED; // never update old data
GpsPosUtm.Status = PROCESSED; // never update old data
}
if (GpsVelNed.Status == VALID) // valid packet
{
104,22 → 105,14
GPSInfo.veleast = GpsVelNed.VEL_E;
GPSInfo.velnorth = GpsVelNed.VEL_N;
GPSInfo.veltop = -GpsVelNed.VEL_D;
GpsVelNed.Status = PROCESSED; // never update old data
GpsVelNed.Status = PROCESSED; // never update old data
}
if (GpsStatus.Status != INVALID)
{
GPSInfo.status = VALID; // set valid if data are updated
GPSInfo.status = VALID; // set valid if data are updated
}
}
 
void ubx_init(void)
{
GpsStatus.Status = INVALID;
GpsPosLlh.Status = INVALID;
GpsPosUtm.Status = INVALID;
GpsVelNed.Status = INVALID;
GPSInfo.status = INVALID;
}
 
// this function should be called within the UART RX ISR
void ubx_parser(uint8_t c)
228,6 → 221,7
*ubxSp = VALID; // new data are valid
ROT_FLASH;
UpdateGPSInfo(); //update GPS info respectively
GPSTimeout = 255;
}
else
{ // if checksum not fit then set data invalid