Commit 15669c39 authored by DonLakeFlyer's avatar DonLakeFlyer

Fly view needs to slurp in sections using scan

Otherwise things like gimbal angles end up on the wrong items.
parent 67b428fb
...@@ -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 */); _addMissionSettings(_visualItems, _editMode && _visualItems->count() > 0 /* addToCenter */);
} }
if (_editMode) {
MissionController::_scanForAdditionalSettings(_visualItems, _controllerVehicle); MissionController::_scanForAdditionalSettings(_visualItems, _controllerVehicle);
}
_initAllVisualItems(); _initAllVisualItems();
_updateContainsItems(); _updateContainsItems();
...@@ -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++) { for (int i=0; i<_visualItems->count(); i++) {
VisualMissionItem* item = qobject_cast<VisualMissionItem*>(_visualItems->get(i)); VisualMissionItem* item = qobject_cast<VisualMissionItem*>(_visualItems->get(i));
SimpleMissionItem* simpleItem = qobject_cast<SimpleMissionItem*>(item); SimpleMissionItem* simpleItem = qobject_cast<SimpleMissionItem*>(item);
...@@ -1247,6 +1247,7 @@ void MissionController::_recalcMissionFlightStatus() ...@@ -1247,6 +1247,7 @@ void MissionController::_recalcMissionFlightStatus()
// Look for gimbal change // Look for gimbal change
double gimbalYaw = item->specifiedGimbalYaw(); double gimbalYaw = item->specifiedGimbalYaw();
if (!qIsNaN(gimbalYaw)) { if (!qIsNaN(gimbalYaw)) {
qDebug() << _editMode << gimbalYaw;
_missionFlightStatus.gimbalYaw = gimbalYaw; _missionFlightStatus.gimbalYaw = gimbalYaw;
} }
double gimbalPitch = item->specifiedGimbalPitch(); 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()); _addTimeDistance(vtolInHover, hoverTime, cruiseTime, extraTime, distance, item->sequenceNumber());
} }
qDebug() << "setMissionFlightStatus" << item->sequenceNumber() << _missionFlightStatus.gimbalYaw << item->commandName();
item->setMissionFlightStatus(_missionFlightStatus); 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) void MissionController::_scanForAdditionalSettings(QmlObjectListModel* visualItems, Vehicle* vehicle)
{ {
if (_editMode) {
// First we look for a Fixed Wing Landing Pattern which is at the end // First we look for a Fixed Wing Landing Pattern which is at the end
FixedWingLandingComplexItem::scanForItem(visualItems, vehicle); FixedWingLandingComplexItem::scanForItem(visualItems, vehicle);
}
int scanIndex = 0; int scanIndex = 0;
while (scanIndex < visualItems->count()) { while (scanIndex < visualItems->count()) {
...@@ -1792,12 +1796,14 @@ void MissionController::_scanForAdditionalSettings(QmlObjectListModel* visualIte ...@@ -1792,12 +1796,14 @@ void MissionController::_scanForAdditionalSettings(QmlObjectListModel* visualIte
qCDebug(MissionControllerLog) << "MissionController::_scanForAdditionalSettings count:scanIndex" << visualItems->count() << scanIndex; qCDebug(MissionControllerLog) << "MissionController::_scanForAdditionalSettings count:scanIndex" << visualItems->count() << scanIndex;
if (_editMode) {
MissionSettingsItem* settingsItem = qobject_cast<MissionSettingsItem*>(visualItem); MissionSettingsItem* settingsItem = qobject_cast<MissionSettingsItem*>(visualItem);
if (settingsItem) { if (settingsItem) {
scanIndex++; scanIndex++;
settingsItem->scanForMissionSettings(visualItems, scanIndex); settingsItem->scanForMissionSettings(visualItems, scanIndex);
continue; continue;
} }
}
SimpleMissionItem* simpleItem = qobject_cast<SimpleMissionItem*>(visualItem); SimpleMissionItem* simpleItem = qobject_cast<SimpleMissionItem*>(visualItem);
if (simpleItem) { if (simpleItem) {
......
...@@ -227,7 +227,7 @@ private: ...@@ -227,7 +227,7 @@ private:
bool _loadJsonMissionFileV2(const QJsonObject& json, QmlObjectListModel* visualItems, QString& errorString); bool _loadJsonMissionFileV2(const QJsonObject& json, QmlObjectListModel* visualItems, QString& errorString);
bool _loadTextMissionFile(QTextStream& stream, QmlObjectListModel* visualItems, QString& errorString); bool _loadTextMissionFile(QTextStream& stream, QmlObjectListModel* visualItems, QString& errorString);
int _nextSequenceNumber(void); int _nextSequenceNumber(void);
static void _scanForAdditionalSettings(QmlObjectListModel* visualItems, Vehicle* vehicle); void _scanForAdditionalSettings(QmlObjectListModel* visualItems, Vehicle* vehicle);
static bool _convertToMissionItems(QmlObjectListModel* visualMissionItems, QList<MissionItem*>& rgMissionItems, QObject* missionItemParent); static bool _convertToMissionItems(QmlObjectListModel* visualMissionItems, QList<MissionItem*>& rgMissionItems, QObject* missionItemParent);
void _setPlannedHomePositionFromFirstCoordinate(void); void _setPlannedHomePositionFromFirstCoordinate(void);
void _resetMissionFlightStatus(void); void _resetMissionFlightStatus(void);
......
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