Ejemplo n.º 1
0
void acquiringS(void)
{
#if ( AIRFRAME_TYPE == AIRFRAME_HELI )
	ent_manualS();
	return;
#endif
	
	if ( dcm_flags._.nav_capable && ( ( MAG_YAW_DRIFT == 0 ) || ( magMessage == 7 ) ) )
	{
#if (NORADIO == 1)
		if ( 1 )
#else
		if ( udb_flags._.radio_on )
#endif
		{
			if (standby_timer == NUM_WAGGLES+1)
				waggle = WAGGLE_SIZE ;
			else if (standby_timer <= NUM_WAGGLES)
				waggle = - waggle ;
			else
				waggle = 0 ;
			
			standby_timer-- ;
			if ( standby_timer == 6 )
			{
				flags._.save_origin = 1 ;
			}
			else if ( standby_timer == 2 )
			{
				dcm_flags._.dead_reckon_enable = 1 ;
			}
			else if ( standby_timer <= 0)
			{
				ent_manualS() ;
			}
		}
		else {
			waggle = 0 ;
		}
	}
	else
	{
		waggle = 0 ;
	}
	return ;
}
Ejemplo n.º 2
0
void stabilizedS(void) 
{
	if ( udb_flags._.radio_on )
	{
		if ( flags._.home_req & dcm_flags._.nav_capable )
			ent_waypointS() ;
		else if ( flags._.man_req )
			ent_manualS() ;
	}
	else
	{
		if ( dcm_flags._.nav_capable )
			ent_returnS() ;
	}
	return ;
}
Ejemplo n.º 3
0
void stabilizedS(void) 
{
	if ( udb_flags._.radio_on )
	{
		if ( flight_mode_switch_home() & dcm_flags._.nav_capable )
			ent_waypointS() ;
		else if ( flight_mode_switch_manual() )
			ent_manualS() ;
	}
	else
	{
		if ( dcm_flags._.nav_capable )
			ent_returnS() ;
	}
	return ;
}
Ejemplo n.º 4
0
void returnS(void)
{
	if ( udb_flags._.radio_on )
	{
		if ( flags._.man_req )
			ent_manualS() ;
		else if ( flags._.auto_req )
			ent_stabilizedS() ;
		else if ( flags._.home_req & dcm_flags._.nav_capable )
			ent_waypointS() ;
	}
	else
	{
#if (FAILSAFE_HOLD == 1)
		flags._.rtl_hold = 1 ;
#endif
	}		
	return ;
}
Ejemplo n.º 5
0
void waypointS(void)
{
#if ( LED_RED_MAG_CHECK == 0 )
	udb_led_toggle(LED_RED) ;
#endif
	
	if ( udb_flags._.radio_on )
	{
		if ( flags._.man_req )
			ent_manualS() ;
		else if ( flags._.auto_req )
			ent_stabilizedS() ;
	}
	else
	{
		ent_returnS() ;
	}
	return ;
}
Ejemplo n.º 6
0
void returnS(void)
{
	if ( udb_flags._.radio_on )
	{
		if ( flight_mode_switch_manual() )
			ent_manualS() ;
		else if ( flight_mode_switch_auto() )
			ent_stabilizedS() ;
		else if ( flight_mode_switch_home() & dcm_flags._.nav_capable )
			ent_waypointS() ;
	}
	else
	{
#if (FAILSAFE_HOLD == 1)
		flags._.rtl_hold = 1 ;
#endif
	}		
	return ;
}
Ejemplo n.º 7
0
void waypointS(void)
{
#if ( LED_RED_MAG_CHECK == 0 )
	udb_led_toggle(LED_RED) ;
#endif
	
	if ( udb_flags._.radio_on )
	{
		if ( flight_mode_switch_manual() )
			ent_manualS() ;
		else if ( flight_mode_switch_auto() )
			ent_stabilizedS() ;
	}
	else
	{
		ent_returnS() ;
	}
	return ;
}