Ejemplo n.º 1
0
void RegTimeView_Callback(void)
{
	currentView = REGTIME_CONFIG;
	Menu_Clear();
}
Ejemplo n.º 2
0
void Menu_UpperAnims_Clear(void)
{
	Menu_Clear( hMenuUpperAnims, ID_MENUITEMS_UPPERANIMS );
}
Ejemplo n.º 3
0
void Menu_LowerAnims_Clear(void)
{
	Menu_Clear( hMenuLowerAnims, ID_MENUITEMS_LOWERANIMS );
}
Ejemplo n.º 4
0
// Display with 20 characters in 4 lines
void Menu_Update(uint8_t Keys)
{
	int16_t i1,i2,i3;
	uint8_t sign;

	if(Keys & KEY1)
	{
		if(MenuItem) MenuItem--;
		else MenuItem = MaxMenuItem;
	}
	if(Keys  & KEY2)
	{
		if(MenuItem == MaxMenuItem) MenuItem = 0;
		else MenuItem++;
	}
	/*
	if(Keys  & KEY4)
	{
		switch(SysState)
		{
			case STATE_IDLE:
				SysState = STATE_SEND_FOLLOWME; // activate followme only of no error has occured
				break;

			case STATE_SEND_FOLLOWME:
				SysState = STATE_IDLE;
				break;

			default:
				SysState = STATE_IDLE;
				break;
		}
	}*/
	if((Keys  & KEY1) && (Keys  & KEY2)) MenuItem = 0;

	Menu_Clear();

	if(MenuItem > MaxMenuItem) MenuItem = MaxMenuItem;
	// print menu item number in the upper right corner
	if(MenuItem < 10)
	{
	  LCD_printfxy(17,0,"[%i]",MenuItem);
	}
	else
	{
	  LCD_printfxy(16,0,"[%i]",MenuItem);
	}

	switch(MenuItem)
	{
    case 0:// Version Info Menu Item
           LCD_printfxy(0,0,"+ Follow Me +");
           #ifdef USE_SDLOGGER
           LCD_printfxy(0,1,"HW: SD-Logger");
           #endif
           #ifdef USE_FOLLOWME
           LCD_printfxy(0,1,"HW: Follow-Me");
           #endif
           LCD_printfxy(0,2,"SW: %d.%d%c", VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH+'a');
           LCD_printfxy(0,3,"          ");
           break;
	case 1:
		if (GPSData.Status == INVALID)
		{
			LCD_printfxy(0,0,"No GPS data");
			LCD_printfxy(0,1,"Lon:                ");
			LCD_printfxy(0,2,"Lat:                ");
			LCD_printfxy(0,3,"Alt:                ");
		}
		else // newdata or processed
		{
			switch (GPSData.SatFix)
			{
			case SATFIX_NONE:
				LCD_printfxy(0,0,"Sats:%02d Fix:None", GPSData.NumOfSats);
				break;
			case SATFIX_2D:
				LCD_printfxy(0,0,"Sats:%02d Fix:2D  ", GPSData.NumOfSats);
				break;
			case SATFIX_3D:
				LCD_printfxy(0,0,"Sats:%02d Fix:3D  ", GPSData.NumOfSats);
				break;
			default:
				LCD_printfxy(0,0,"Sats:%02d Fix:??  ", GPSData.NumOfSats);
				break;
			}
			if(GPSData.Position.Longitude < 0) sign = '-';
			else sign = '+';
			i1 = abs((int16_t)(GPSData.Position.Longitude/10000000L));
			i2 = abs((int16_t)((GPSData.Position.Longitude%10000000L)/10000L));
			i3 = abs((int16_t)(((GPSData.Position.Longitude%10000000L)%10000L)/10L));
			LCD_printfxy(0,1,"Lon: %c%d.%.3d%.3d deg",sign, i1, i2, i3);
			if(GPSData.Position.Latitude < 0) sign = '-';
			else sign = '+';
			i1 = abs((int16_t)(GPSData.Position.Latitude/10000000L));
			i2 = abs((int16_t)((GPSData.Position.Latitude%10000000L)/10000L));
			i3 = abs((int16_t)(((GPSData.Position.Latitude%10000000L)%10000L)/10L));
			LCD_printfxy(0,2,"Lat: %c%d.%.3d%.3d deg",sign, i1, i2, i3);
			if(GPSData.Position.Altitude < 0) sign = '-';
			else sign = '+';
			i1 = abs((int16_t)(GPSData.Position.Altitude/1000L));
			i2 = abs((int16_t)(GPSData.Position.Altitude%1000L));
			LCD_printfxy(0,3,"Alt: %c%04d.%.03d m",sign, i1, i2);
		}
		break;
	case 2:
		if (GPSData.Status == INVALID)
		{
			LCD_printfxy(0,0,"No GPS data");
			LCD_printfxy(0,1,"Speed N:            ");
			LCD_printfxy(0,2,"Speed E:            ");
			LCD_printfxy(0,3,"Speed T:            ");
		}
		else // newdata or processed
		{
			switch (GPSData.SatFix)
			{
			case SATFIX_NONE:
				LCD_printfxy(0,0,"Sats:%02d Fix:None", GPSData.NumOfSats);
				break;
			case SATFIX_2D:
				LCD_printfxy(0,0,"Sats:%02d Fix:2D  ", GPSData.NumOfSats);
				break;
			case SATFIX_3D:
				LCD_printfxy(0,0,"Sats:%02d Fix:3D  ", GPSData.NumOfSats);
				break;
			default:
				LCD_printfxy(0,0,"Sats:%02d Fix:??  ", GPSData.NumOfSats);
				break;
			}
			LCD_printfxy(0,1,"Speed N: %+4d cm/s",(int16_t)GPSData.Speed_North);
			LCD_printfxy(0,2,"Speed E: %+4d cm/s",(int16_t)GPSData.Speed_East);
			LCD_printfxy(0,3,"Speed T: %+4d cm/s",(int16_t)GPSData.Speed_Top);
		}
		break;
	case 3:
		LCD_printfxy(0,0,"GPS UTC Time");
		if (!SystemTime.Valid)
		{
			LCD_printfxy(0,1,"                    ");
			LCD_printfxy(0,2,"  No time data!     ");
			LCD_printfxy(0,3,"                    ");
		}
		else // newdata or processed
		{
			LCD_printfxy(0,1,"                    ");
			LCD_printfxy(0,2,"Date: %02i/%02i/%04i",SystemTime.Month, SystemTime.Day, SystemTime.Year);
			LCD_printfxy(0,3,"Time: %02i:%02i:%02i.%03i", SystemTime.Hour, SystemTime.Min, SystemTime.Sec, SystemTime.mSec);
		}
	break;

    default: MaxMenuItem = MenuItem - 1;
             MenuItem = 0;
           break;
    }
}