|
|
|
@ -189,9 +189,7 @@ void MissionController::_newMissionItemsAvailableFromVehicle(bool removeAllReque
@@ -189,9 +189,7 @@ void MissionController::_newMissionItemsAvailableFromVehicle(bool removeAllReque
|
|
|
|
|
_addMissionSettings(_visualItems, _editMode && _visualItems->count() > 0 /* addToCenter */); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (_editMode) { |
|
|
|
|
MissionController::_scanForAdditionalSettings(_visualItems, _controllerVehicle); |
|
|
|
|
} |
|
|
|
|
MissionController::_scanForAdditionalSettings(_visualItems, _controllerVehicle); |
|
|
|
|
|
|
|
|
|
_initAllVisualItems(); |
|
|
|
|
_updateContainsItems(); |
|
|
|
@ -290,14 +288,14 @@ void MissionController::convertToKMLDocument(QDomDocument& document)
@@ -290,14 +288,14 @@ void MissionController::convertToKMLDocument(QDomDocument& document)
|
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
const MissionCommandUIInfo* uiInfo = \
|
|
|
|
|
qgcApp()->toolbox()->missionCommandTree()->getUIInfo(_controllerVehicle, item->command()); |
|
|
|
|
qgcApp()->toolbox()->missionCommandTree()->getUIInfo(_controllerVehicle, item->command()); |
|
|
|
|
|
|
|
|
|
if (uiInfo && uiInfo->specifiesCoordinate() && !uiInfo->isStandaloneCoordinate()) { |
|
|
|
|
coord = QString::number(item->param6(),'f',7) \
|
|
|
|
|
+ "," \
|
|
|
|
|
+ QString::number(item->param5(),'f',7) \
|
|
|
|
|
+ "," \
|
|
|
|
|
+ QString::number(item->param7() + altitude,'f',2); |
|
|
|
|
+ "," \
|
|
|
|
|
+ QString::number(item->param5(),'f',7) \
|
|
|
|
|
+ "," \
|
|
|
|
|
+ QString::number(item->param7() + altitude,'f',2); |
|
|
|
|
coords.append(coord); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -1218,6 +1216,8 @@ void MissionController::_recalcMissionFlightStatus()
@@ -1218,6 +1216,8 @@ void MissionController::_recalcMissionFlightStatus()
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
qDebug() << "Gimbal calc"; |
|
|
|
|
|
|
|
|
|
for (int i=0; i<_visualItems->count(); i++) { |
|
|
|
|
VisualMissionItem* item = qobject_cast<VisualMissionItem*>(_visualItems->get(i)); |
|
|
|
|
SimpleMissionItem* simpleItem = qobject_cast<SimpleMissionItem*>(item); |
|
|
|
@ -1247,6 +1247,7 @@ void MissionController::_recalcMissionFlightStatus()
@@ -1247,6 +1247,7 @@ void MissionController::_recalcMissionFlightStatus()
|
|
|
|
|
// Look for gimbal change
|
|
|
|
|
double gimbalYaw = item->specifiedGimbalYaw(); |
|
|
|
|
if (!qIsNaN(gimbalYaw)) { |
|
|
|
|
qDebug() << _editMode << gimbalYaw; |
|
|
|
|
_missionFlightStatus.gimbalYaw = gimbalYaw; |
|
|
|
|
} |
|
|
|
|
double gimbalPitch = item->specifiedGimbalPitch(); |
|
|
|
@ -1352,6 +1353,7 @@ void MissionController::_recalcMissionFlightStatus()
@@ -1352,6 +1353,7 @@ void MissionController::_recalcMissionFlightStatus()
|
|
|
|
|
_addTimeDistance(vtolInHover, hoverTime, cruiseTime, extraTime, distance, item->sequenceNumber()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
qDebug() << "setMissionFlightStatus" << item->sequenceNumber() << _missionFlightStatus.gimbalYaw << item->commandName(); |
|
|
|
|
item->setMissionFlightStatus(_missionFlightStatus); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1783,8 +1785,10 @@ void MissionController::setDirty(bool dirty)
@@ -1783,8 +1785,10 @@ void MissionController::setDirty(bool dirty)
|
|
|
|
|
|
|
|
|
|
void MissionController::_scanForAdditionalSettings(QmlObjectListModel* visualItems, Vehicle* vehicle) |
|
|
|
|
{ |
|
|
|
|
// First we look for a Fixed Wing Landing Pattern which is at the end
|
|
|
|
|
FixedWingLandingComplexItem::scanForItem(visualItems, vehicle); |
|
|
|
|
if (_editMode) { |
|
|
|
|
// First we look for a Fixed Wing Landing Pattern which is at the end
|
|
|
|
|
FixedWingLandingComplexItem::scanForItem(visualItems, vehicle); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int scanIndex = 0; |
|
|
|
|
while (scanIndex < visualItems->count()) { |
|
|
|
@ -1792,11 +1796,13 @@ void MissionController::_scanForAdditionalSettings(QmlObjectListModel* visualIte
@@ -1792,11 +1796,13 @@ void MissionController::_scanForAdditionalSettings(QmlObjectListModel* visualIte
|
|
|
|
|
|
|
|
|
|
qCDebug(MissionControllerLog) << "MissionController::_scanForAdditionalSettings count:scanIndex" << visualItems->count() << scanIndex; |
|
|
|
|
|
|
|
|
|
MissionSettingsItem* settingsItem = qobject_cast<MissionSettingsItem*>(visualItem); |
|
|
|
|
if (settingsItem) { |
|
|
|
|
scanIndex++; |
|
|
|
|
settingsItem->scanForMissionSettings(visualItems, scanIndex); |
|
|
|
|
continue; |
|
|
|
|
if (_editMode) { |
|
|
|
|
MissionSettingsItem* settingsItem = qobject_cast<MissionSettingsItem*>(visualItem); |
|
|
|
|
if (settingsItem) { |
|
|
|
|
scanIndex++; |
|
|
|
|
settingsItem->scanForMissionSettings(visualItems, scanIndex); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
SimpleMissionItem* simpleItem = qobject_cast<SimpleMissionItem*>(visualItem); |
|
|
|
|