diff --git a/ArduCopter/arming_checks.cpp b/ArduCopter/arming_checks.cpp index 8a7d25700c2a5e0641ea5aa416236dda2019038d..6369c68414d0301211934dde9b446ebd92b16197 100644 --- a/ArduCopter/arming_checks.cpp +++ b/ArduCopter/arming_checks.cpp @@ -500,6 +500,7 @@ bool Copter::pre_arm_gps_checks(bool display_failure) return true; } +#if CONFIG_HAL_BOARD != HAL_BOARD_SITL // ensure GPS is ok if (!position_ok()) { if (display_failure) { @@ -525,6 +526,7 @@ bool Copter::pre_arm_gps_checks(bool display_failure) } return false; } +#endif // check home and EKF origin are not too far if (far_from_EKF_origin(ahrs.get_home())) { diff --git a/ArduCopter/ekf_check.cpp b/ArduCopter/ekf_check.cpp index 5a20710303b40583501fdfc05a96b16b595ab135..3ef5843c62a3040d3e95524efb2797dc6001e597 100644 --- a/ArduCopter/ekf_check.cpp +++ b/ArduCopter/ekf_check.cpp @@ -28,6 +28,10 @@ static struct { // should be called at 10hz void Copter::ekf_check() { +#if CONFIG_HAL_BOARD == HAL_BOARD_SITL + return; +#endif + // exit immediately if ekf has no origin yet - this assumes the origin can never become unset Location temp_loc; if (!ahrs.get_origin(temp_loc)) { diff --git a/ArduCopter/events.cpp b/ArduCopter/events.cpp index 2a713e61c466d069e33424d6c52c859ff57f18e2..2ab59a49a2a26308e17d49402881aa0b6df52045 100644 --- a/ArduCopter/events.cpp +++ b/ArduCopter/events.cpp @@ -171,6 +171,9 @@ void Copter::failsafe_terrain_set_status(bool data_ok) // terrain failsafe action void Copter::failsafe_terrain_on_event() { +#if CONFIG_HAL_BOARD == HAL_BOARD_SITL + return; +#endif failsafe.terrain = true; gcs_send_text(MAV_SEVERITY_CRITICAL,"Failsafe: Terrain data missing"); Log_Write_Error(ERROR_SUBSYSTEM_FAILSAFE_TERRAIN, ERROR_CODE_FAILSAFE_OCCURRED); diff --git a/ArduCopter/flight_mode.cpp b/ArduCopter/flight_mode.cpp index 9e7b3de2a0ecf9e13a01eb574010d3511aa05572..7df1a3a3c469dafa18460dbb016f08e942fa1c12 100644 --- a/ArduCopter/flight_mode.cpp +++ b/ArduCopter/flight_mode.cpp @@ -14,6 +14,9 @@ bool Copter::set_mode(control_mode_t mode, mode_reason_t reason) // boolean to record if flight mode could be set bool success = false; bool ignore_checks = !motors.armed(); // allow switching to any mode if disarmed. We rely on the arming check to perform +#if CONFIG_HAL_BOARD == HAL_BOARD_SITL + ignore_checks = true; +#endif // return immediately if we are already in the desired mode if (mode == control_mode) {