Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 721 → Rev 722

/branches/V0.68d Code Redesign killagreg/menu.c
48,7 → 48,7
// Display with 20 characters in 4 lines
void LCD_PrintMenu(void)
{
static uint8_t MaxMenuItem = 14, MenuItem=0;
static uint8_t MaxMenuItem = 16, MenuItem=0;
 
// if KEY1 is activated goto previous menu item
if(RemoteButtons & KEY1)
182,11 → 182,10
LCD_printfxy(0,2,"Y_Range: %4i",MM3_calib.Y_range);
LCD_printfxy(0,3,"Z_Range: %4i",MM3_calib.Z_range);
break;
case 14://GPS Status
LCD_printfxy(0,0,"GPS Status");
case 14://GPS Lat/Lon coords
if (GPSInfo.status == INVALID)
{
LCD_printfxy(0,1,"No data available!");
LCD_printfxy(0,0,"No data available!");
}
else
{
193,20 → 192,77
switch (GPSInfo.satfix)
{
case SATFIX_NONE:
LCD_printfxy(0,1,"Satfix: None");
LCD_printfxy(0,0,"Satfix: None ");
break;
case SATFIX_2D:
LCD_printfxy(0,1,"Satfix: 2D");
LCD_printfxy(0,0,"Satfix: 2D ");
break;
case SATFIX_3D:
LCD_printfxy(0,1,"Satfix: 3D");
LCD_printfxy(0,0,"Satfix: 3D ");
break;
default:
LCD_printfxy(0,1,"Satfix: Unknown");
LCD_printfxy(0,0,"Satfix: Unknown");
break;
}
LCD_printfxy(0,1,"Lon: %d.%d deg",GPSInfo.longitude/10000000L, (int16_t)(GPSInfo.longitude/100000L)%100);
LCD_printfxy(0,2,"Lat: %d.%d deg",GPSInfo.latitude/10000000L, GPSInfo.latitude%10000000L);
LCD_printfxy(0,3,"Alt: %d.%d m",GPSInfo.altitude/1000L,GPSInfo.altitude%1000L);
}
break;
case 15://GPS UTM coords
if (GPSInfo.status == INVALID)
{
LCD_printfxy(0,0,"No data available!");
}
else
{
switch (GPSInfo.satfix)
{
case SATFIX_NONE:
LCD_printfxy(0,0,"No Satfix ");
break;
case SATFIX_2D:
LCD_printfxy(0,0,"Satfix: 2D ");
break;
case SATFIX_3D:
LCD_printfxy(0,0,"Satfix: 3D ");
break;
default:
LCD_printfxy(0,0,"Unknown Satfix ");
break;
}
LCD_printfxy(0,1,"N: %d",(int16_t)(GPSInfo.utmnorth/100L));
LCD_printfxy(0,2,"E: %d",(int16_t)(GPSInfo.utmeast/100L));
LCD_printfxy(0,3,"A: %d",(int16_t)(GPSInfo.utmalt/100L));
}
break;
case 16://GPS UTM velocity
if (GPSInfo.status == INVALID)
{
LCD_printfxy(0,0,"No data available!");
}
else
{
switch (GPSInfo.satfix)
{
case SATFIX_NONE:
LCD_printfxy(0,0,"No Satfix ");
break;
case SATFIX_2D:
LCD_printfxy(0,0,"Satfix: 2D ");
break;
case SATFIX_3D:
LCD_printfxy(0,0,"Satfix: 3D ");
break;
default:
LCD_printfxy(0,0,"Unknown Satfix ");
break;
}
LCD_printfxy(0,1,"VN: %d",GPSInfo.velnorth);
LCD_printfxy(0,2,"VE: %d",GPSInfo.veleast);
LCD_printfxy(0,3,"VA: %d",GPSInfo.veltop);
}
break;
default: MaxMenuItem = MenuItem - 1;
MenuItem = 0;
break;
/branches/V0.68d Code Redesign killagreg/uart.h
42,8 → 42,8
extern unsigned char DubWiseKeys[4];
struct str_DebugOut
{
unsigned char Digital[2];
unsigned int Analog[32]; // Debugwerte
uint8_t Digital[2];
uint16_t Analog[32]; // Debugwerte
};
 
extern struct str_DebugOut DebugOut;
/branches/V0.68d Code Redesign killagreg/ubx.c
3,6 → 3,9
#include "main.h"
#include <avr/io.h>
 
#include "uart.h"
#include "timer0.h"
 
// ubx protocol parser state machine
#define UBXSTATE_IDLE 0
#define UBXSTATE_SYNC1 1
105,9 → 108,9
GPSInfo.veltop = -GpsVelNed.VEL_D;
GpsPosUtm.Status = PROCESSED; // never update old data
}
if (GpsStatus.Status | GpsVelNed.Status | GpsPosLlh.Status | GpsPosUtm.Status)
if (GpsStatus.Status != INVALID)
{
GPSInfo.status = VALID;
GPSInfo.status = VALID; // set valid if data are updated
}
}
 
143,13 → 146,12
ubxP = (int8_t *)&GpsPosUtm; // data start pointer
ubxEp = (int8_t *)(&GpsPosUtm + sizeof(GPS_POSUTM_t)); // data end pointer
ubxSp = (int8_t *)&GpsPosUtm.Status; // status pointer
 
break;
 
case UBX_ID_POSLLH: // geodetic position
ubxP = (int8_t *)&GpsStatus; // data start pointer
ubxEp = (int8_t *)(&GpsStatus + sizeof(GPS_STATUS_t)); // data end pointer
ubxSp = (int8_t *)&GpsStatus.Status; // status pointer
ubxP = (int8_t *)&GpsPosLlh; // data start pointer
ubxEp = (int8_t *)(&GpsPosLlh + sizeof(GPS_POSLLH_t)); // data end pointer
ubxSp = (int8_t *)&GpsPosLlh.Status; // status pointer
break;
 
case UBX_ID_STATUS: // receiver status
206,17 → 208,24
 
case UBXSTATE_CKA:
if (c == cka) ubxstate = UBXSTATE_CKB;
else ubxstate = UBXSTATE_IDLE;
else
{
*ubxSp = INVALID;
ubxstate = UBXSTATE_IDLE;
}
break;
 
case UBXSTATE_CKB:
if (c == ckb)
{
*ubxSp = VALID; // new data are availabe
*ubxSp = VALID; // new data are valid
ROT_FLASH;
UpdateGPSInfo(); //update GPS info respectively
ROT_FLASH;
 
}
else
{ // if checksum not fit then set data invalid
*ubxSp = INVALID;
}
ubxstate = UBXSTATE_IDLE; // ready to parse new data
break;