From 877b3cce4f7150c231ce5fd0b88b67defb2e0a9d Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Sat, 15 Jul 2017 14:10:42 -0700 Subject: [PATCH] Handle bogus lat/lon from ArduPilot --- src/MissionManager/MissionController.cc | 5 ++++- src/Vehicle/Vehicle.cc | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index b00d9699e..11c40c2c5 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -158,7 +158,10 @@ void MissionController::_newMissionItemsAvailableFromVehicle(bool removeAllReque qWarning() << "First item is not settings item"; return; } - settingsItem->setCoordinate(newMissionItems[0]->coordinate()); + MissionItem* fakeHomeItem = newMissionItems[0]; + if (fakeHomeItem->coordinate().latitude() != 0 || fakeHomeItem->coordinate().longitude() != 0) { + settingsItem->setCoordinate(fakeHomeItem->coordinate()); + } i = 1; } diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 242e647c9..521d7d062 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -681,8 +681,8 @@ void Vehicle::_handleGlobalPositionInt(mavlink_message_t& message) mavlink_global_position_int_t globalPositionInt; mavlink_msg_global_position_int_decode(&message, &globalPositionInt); - // ArduPilot sends bogus GLOBAL_POSITION_INT messages with lat/lat/alt 0/0/0 even when it has not gps signal - if (globalPositionInt.lat == 0 && globalPositionInt.lon == 0 && globalPositionInt.alt == 0) { + // ArduPilot sends bogus GLOBAL_POSITION_INT messages with lat/lat 0/0 even when it has not gps signal + if (globalPositionInt.lat == 0 && globalPositionInt.lon == 0) { return; } -- 2.22.0