Commit 7efc47f1 authored by Gus Grubba's avatar Gus Grubba Committed by GitHub

Merge pull request #5229 from DonLakeFlyer/HomePositionFixes

Home position update fixes
parents 69bfb8dd b207c58e
...@@ -1293,8 +1293,8 @@ void MissionController::_initAllVisualItems(void) ...@@ -1293,8 +1293,8 @@ void MissionController::_initAllVisualItems(void)
_settingsItem->setIsCurrentItem(true); _settingsItem->setIsCurrentItem(true);
} }
if (!_editMode && _controllerVehicle) { if (!_editMode && _managerVehicle->homePosition().isValid()) {
_settingsItem->setCoordinate(_controllerVehicle->homePosition()); _settingsItem->setCoordinate(_managerVehicle->homePosition());
} }
connect(_settingsItem, &MissionSettingsItem::coordinateChanged, this, &MissionController::_recalcAll); connect(_settingsItem, &MissionSettingsItem::coordinateChanged, this, &MissionController::_recalcAll);
...@@ -1481,6 +1481,8 @@ void MissionController::_addMissionSettings(QmlObjectListModel* visualItems, boo ...@@ -1481,6 +1481,8 @@ void MissionController::_addMissionSettings(QmlObjectListModel* visualItems, boo
{ {
MissionSettingsItem* settingsItem = new MissionSettingsItem(_controllerVehicle, visualItems); MissionSettingsItem* settingsItem = new MissionSettingsItem(_controllerVehicle, visualItems);
qCDebug(MissionControllerLog) << "_addMissionSettings addToCenter" << addToCenter;
visualItems->insert(0, settingsItem); visualItems->insert(0, settingsItem);
if (addToCenter) { if (addToCenter) {
...@@ -1515,8 +1517,8 @@ void MissionController::_addMissionSettings(QmlObjectListModel* visualItems, boo ...@@ -1515,8 +1517,8 @@ void MissionController::_addMissionSettings(QmlObjectListModel* visualItems, boo
settingsItem->setCoordinate(QGeoCoordinate((south + ((north - south) / 2)) - 90.0, (west + ((east - west) / 2)) - 180.0, 0.0)); settingsItem->setCoordinate(QGeoCoordinate((south + ((north - south) / 2)) - 90.0, (west + ((east - west) / 2)) - 180.0, 0.0));
} }
} }
} else { } else if (_managerVehicle->homePosition().isValid()) {
settingsItem->setCoordinate(_controllerVehicle->homePosition()); settingsItem->setCoordinate(_managerVehicle->homePosition());
} }
} }
......
...@@ -221,7 +221,7 @@ void MissionSettingsItem::setCoordinate(const QGeoCoordinate& coordinate) ...@@ -221,7 +221,7 @@ void MissionSettingsItem::setCoordinate(const QGeoCoordinate& coordinate)
{ {
if (_plannedHomePositionCoordinate != coordinate) { if (_plannedHomePositionCoordinate != coordinate) {
// ArduPilot tends to send crap home positions at initial vehicel boot, discard them // ArduPilot tends to send crap home positions at initial vehicel boot, discard them
if (coordinate.latitude() != 0 || coordinate.longitude() != 0) { if (coordinate.isValid() && (coordinate.latitude() != 0 || coordinate.longitude() != 0)) {
qDebug() << "Setting home position" << coordinate; qDebug() << "Setting home position" << coordinate;
_plannedHomePositionCoordinate = coordinate; _plannedHomePositionCoordinate = coordinate;
emit coordinateChanged(coordinate); emit coordinateChanged(coordinate);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment