|
|
|
@ -18,7 +18,7 @@ static void failsafe_radio_on_event()
@@ -18,7 +18,7 @@ static void failsafe_radio_on_event()
|
|
|
|
|
// if throttle is zero disarm motors |
|
|
|
|
if (g.rc_3.control_in == 0) { |
|
|
|
|
init_disarm_motors(); |
|
|
|
|
}else if(ap.home_is_set == true && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
}else if(ap.home_is_set == true && g_gps->status() == GPS::GPS_OK_FIX_3D && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
set_mode(RTL); |
|
|
|
|
}else{ |
|
|
|
|
// We have no GPS or are very close to home so we will land |
|
|
|
@ -38,7 +38,7 @@ static void failsafe_radio_on_event()
@@ -38,7 +38,7 @@ static void failsafe_radio_on_event()
|
|
|
|
|
// if failsafe_throttle is 2 (i.e. FS_THR_ENABLED_CONTINUE_MISSION) no need to do anything |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
if(ap.home_is_set == true && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
if(ap.home_is_set == true && g_gps->status() == GPS::GPS_OK_FIX_3D && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
set_mode(RTL); |
|
|
|
|
}else{ |
|
|
|
|
// We have no GPS or are very close to home so we will land |
|
|
|
@ -77,7 +77,7 @@ static void low_battery_event(void)
@@ -77,7 +77,7 @@ static void low_battery_event(void)
|
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case AUTO: |
|
|
|
|
if(ap.home_is_set == true && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
if(ap.home_is_set == true && g_gps->status() == GPS::GPS_OK_FIX_3D && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
set_mode(RTL); |
|
|
|
|
}else{ |
|
|
|
|
// We have no GPS or are very close to home so we will land |
|
|
|
@ -190,7 +190,7 @@ static void failsafe_gcs_check()
@@ -190,7 +190,7 @@ static void failsafe_gcs_check()
|
|
|
|
|
// if throttle is zero disarm motors |
|
|
|
|
if (g.rc_3.control_in == 0) { |
|
|
|
|
init_disarm_motors(); |
|
|
|
|
}else if(ap.home_is_set == true && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
}else if(ap.home_is_set == true && g_gps->status() == GPS::GPS_OK_FIX_3D && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
set_mode(RTL); |
|
|
|
|
}else{ |
|
|
|
|
// We have no GPS or are very close to home so we will land |
|
|
|
@ -210,7 +210,7 @@ static void failsafe_gcs_check()
@@ -210,7 +210,7 @@ static void failsafe_gcs_check()
|
|
|
|
|
// if failsafe_throttle is 2 (i.e. FS_THR_ENABLED_CONTINUE_MISSION) no need to do anything |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
if(ap.home_is_set == true && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
if(ap.home_is_set == true && g_gps->status() == GPS::GPS_OK_FIX_3D && home_distance > wp_nav.get_waypoint_radius()) { |
|
|
|
|
set_mode(RTL); |
|
|
|
|
}else{ |
|
|
|
|
// We have no GPS or are very close to home so we will land |
|
|
|
|