forked from Archive/PX4-Autopilot
add simplistic gps failure detection
This commit is contained in:
parent
c5b97fdb1f
commit
db5d668439
|
@ -1135,6 +1135,22 @@ int commander_thread_main(int argc, char *argv[])
|
|||
check_valid(global_position.timestamp, POSITION_TIMEOUT, eph_epv_good, &(status.condition_global_position_valid), &status_changed);
|
||||
|
||||
/* check if GPS fix is ok */
|
||||
if (gps_position.fix_type >= 3 && //XXX check eph and epv ?
|
||||
hrt_elapsed_time(&gps_position.timestamp_position) < FAILSAFE_DEFAULT_TIMEOUT) {
|
||||
/* handle the case where gps was regained */
|
||||
if (status.gps_failure) {
|
||||
status.gps_failure = false;
|
||||
status_changed = true;
|
||||
mavlink_log_critical(mavlink_fd, "gps regained");
|
||||
}
|
||||
} else {
|
||||
if (!status.gps_failure) {
|
||||
status.gps_failure = true;
|
||||
status_changed = true;
|
||||
mavlink_log_critical(mavlink_fd, "gps fix lost");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* update home position */
|
||||
if (!status.condition_home_position_valid && status.condition_global_position_valid && !armed.armed &&
|
||||
|
|
|
@ -206,6 +206,7 @@ struct vehicle_status_s {
|
|||
uint8_t data_link_lost_counter; /**< counts unique data link lost events */
|
||||
|
||||
bool engine_failure; /** Set to true if an engine failure is detected */
|
||||
bool gps_failure; /** Set to true if a gps failure is detected */
|
||||
|
||||
bool offboard_control_signal_found_once;
|
||||
bool offboard_control_signal_lost;
|
||||
|
|
Loading…
Reference in New Issue