Commit c8416a22 authored by Don Gagne's avatar Don Gagne

Resume Mission: Fix up sequence numbers and current item

parent 332d9843
...@@ -1006,7 +1006,6 @@ void MissionManager::generateResumeMission(int resumeIndex) ...@@ -1006,7 +1006,6 @@ void MissionManager::generateResumeMission(int resumeIndex)
} }
resumeIndex = qMax(0, resumeIndex); resumeIndex = qMax(0, resumeIndex);
int seqNum = 0;
QList<MissionItem*> resumeMission; QList<MissionItem*> resumeMission;
QList<MAV_CMD> includedResumeCommands; QList<MAV_CMD> includedResumeCommands;
...@@ -1029,7 +1028,6 @@ void MissionManager::generateResumeMission(int resumeIndex) ...@@ -1029,7 +1028,6 @@ void MissionManager::generateResumeMission(int resumeIndex)
<< MAV_CMD_NAV_TAKEOFF; << MAV_CMD_NAV_TAKEOFF;
bool addHomePosition = _vehicle->firmwarePlugin()->sendHomePositionToVehicle(); bool addHomePosition = _vehicle->firmwarePlugin()->sendHomePositionToVehicle();
int setCurrentIndex = addHomePosition ? 1 : 0;
int prefixCommandCount = 0; int prefixCommandCount = 0;
for (int i=0; i<_missionItems.count(); i++) { for (int i=0; i<_missionItems.count(); i++) {
...@@ -1039,8 +1037,7 @@ void MissionManager::generateResumeMission(int resumeIndex) ...@@ -1039,8 +1037,7 @@ void MissionManager::generateResumeMission(int resumeIndex)
prefixCommandCount++; prefixCommandCount++;
} }
MissionItem* newItem = new MissionItem(*oldItem, this); MissionItem* newItem = new MissionItem(*oldItem, this);
newItem->setIsCurrentItem( i == setCurrentIndex); newItem->setIsCurrentItem(false);
newItem->setSequenceNumber(seqNum++);
resumeMission.append(newItem); resumeMission.append(newItem);
} }
} }
...@@ -1096,6 +1093,14 @@ void MissionManager::generateResumeMission(int resumeIndex) ...@@ -1096,6 +1093,14 @@ void MissionManager::generateResumeMission(int resumeIndex)
prefixCommandCount--; prefixCommandCount--;
} }
// Adjust sequence numbers and current item
int seqNum = 0;
for (int i=0; i<resumeMission.count(); i++) {
resumeMission[i]->setSequenceNumber(seqNum++);
}
int setCurrentIndex = addHomePosition ? 1 : 0;
resumeMission[setCurrentIndex]->setIsCurrentItem(true);
// Send to vehicle // Send to vehicle
_clearAndDeleteWriteMissionItems(); _clearAndDeleteWriteMissionItems();
for (int i=0; i<resumeMission.count(); i++) { for (int i=0; i<resumeMission.count(); i++) {
......
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