Skip to content

Commit 40b02a7

Browse files
Ivan Rajkovicirajkovic
authored andcommitted
Fix updating mission items total
Total number of items in a mission should only be updated when mission is downloaded. Downloading geofence or rally points should not affect this total.
1 parent 9c2cb56 commit 40b02a7

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/mavsdk/plugins/mission_raw/mission_raw_impl.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,12 @@ void MissionRawImpl::upload_mission_items_async(
172172
[this, callback, int_items](MavlinkMissionTransferClient::Result result) {
173173
auto converted_result = convert_result(result);
174174
auto converted_items = convert_items(int_items);
175+
176+
if (converted_result == MissionRaw::Result::Success) {
177+
std::lock_guard<std::mutex> lock(_mission_progress.mutex);
178+
_mission_progress.last.total = int_items.size();
179+
}
180+
175181
_system_impl->call_user_callback([callback, converted_result, converted_items]() {
176182
if (callback) {
177183
callback(converted_result);
@@ -290,6 +296,12 @@ void MissionRawImpl::download_mission_async(const MissionRaw::DownloadMissionCal
290296
std::vector<MavlinkMissionTransferClient::ItemInt> items) {
291297
auto converted_result = convert_result(result);
292298
auto converted_items = convert_items(items);
299+
300+
if (converted_result == MissionRaw::Result::Success) {
301+
std::lock_guard<std::mutex> lock(_mission_progress.mutex);
302+
_mission_progress.last.total = items.size();
303+
}
304+
293305
_system_impl->call_user_callback([callback, converted_result, converted_items]() {
294306
callback(converted_result, converted_items);
295307
});
@@ -431,9 +443,6 @@ std::vector<MissionRaw::MissionItem> MissionRawImpl::convert_items(
431443
new_items.push_back(convert_item(transfer_item));
432444
}
433445

434-
std::lock_guard<std::mutex> lock(_mission_progress.mutex);
435-
_mission_progress.last.total = new_items.size();
436-
437446
return new_items;
438447
}
439448

0 commit comments

Comments
 (0)