From debee651bc2304785b92cb80236c211405961cc9 Mon Sep 17 00:00:00 2001 From: Valentin Platzgummer Date: Thu, 10 Oct 2019 07:00:23 +0200 Subject: [PATCH] trying to add wp form wimaPlaner to flight view --- src/MissionManager/MissionController.cc | 28 +++++++++++++++++++++++++ src/MissionManager/MissionController.h | 5 +++++ src/Wima/ToDo.txt | 4 ---- src/Wima/WimaController.cc | 5 +++++ src/Wima/notesOnWpExchange.txt | 3 +++ 5 files changed, 41 insertions(+), 4 deletions(-) delete mode 100644 src/Wima/ToDo.txt diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index 98177a396..ba6f38837 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -386,6 +386,34 @@ int MissionController::insertSimpleMissionItem(QGeoCoordinate coordinate, int i) return newItem->sequenceNumber(); } +int MissionController::insertSimpleMissionItem(const MissionItem &missionItem, int i) +{ + int sequenceNumber = _nextSequenceNumber(); + SimpleMissionItem * newItem = new SimpleMissionItem(_controllerVehicle, _flyView, missionItem, this); + newItem->setSequenceNumber(sequenceNumber); + newItem->setCommand(MAV_CMD_NAV_WAYPOINT); + _initVisualItem(newItem); + MAV_CMD takeoffCmd = _controllerVehicle->vtol() ? MAV_CMD_NAV_VTOL_TAKEOFF : MAV_CMD_NAV_TAKEOFF; + if (newItem->command() == takeoffCmd) { + if (!_controllerVehicle->firmwarePlugin()->supportedMissionCommands().contains(takeoffCmd)) { + return -1; // can not add this takeoff command for this vehicle + } + } + if (newItem->specifiesAltitude()) { + double prevAltitude; + int prevAltitudeMode; + + if (_findPreviousAltitude(i, &prevAltitude, &prevAltitudeMode)) { + newItem->altitude()->setRawValue(prevAltitude); + newItem->setAltitudeMode(static_cast(prevAltitudeMode)); + } + } + newItem->setMissionFlightStatus(_missionFlightStatus); + _visualItems->insert(i, newItem); + + return newItem->sequenceNumber(); +} + int MissionController::insertROIMissionItem(QGeoCoordinate coordinate, int i) { int sequenceNumber = _nextSequenceNumber(); diff --git a/src/MissionManager/MissionController.h b/src/MissionManager/MissionController.h index 6a0f4eb7f..6e56a7f42 100644 --- a/src/MissionManager/MissionController.h +++ b/src/MissionManager/MissionController.h @@ -108,6 +108,11 @@ public: /// @return Sequence number for new item Q_INVOKABLE int insertSimpleMissionItem(QGeoCoordinate coordinate, int i); + /// Add a new simple mission item to the list + /// @param i: index to insert at + /// @return Sequence number for new item + int insertSimpleMissionItem(const MissionItem &missionItem, int i); + /// Add a new ROI mission item to the list /// @param i: index to insert at /// @return Sequence number for new item diff --git a/src/Wima/ToDo.txt b/src/Wima/ToDo.txt deleted file mode 100644 index 9aa7945d0..000000000 --- a/src/Wima/ToDo.txt +++ /dev/null @@ -1,4 +0,0 @@ -add refpt gui and edit constructor -new path optim required for circ survey -add gui elements for circ survey -solve bug for cantFindPath.wima on Desktop/WimaPath diff --git a/src/Wima/WimaController.cc b/src/Wima/WimaController.cc index a6e855ef5..266b91119 100644 --- a/src/Wima/WimaController.cc +++ b/src/Wima/WimaController.cc @@ -214,6 +214,11 @@ void WimaController::containerDataValidChanged(bool valid) for (auto missionItem : tempMissionItems) _missionItems.append(const_cast(missionItem)); // losing const qualifier here + _missionController->removeAll(); + QmlObjectListModel* missionItems = _missionController->visualItems(); + for ( auto missionItem : tempMissionItems) + _missionController->insertSimpleMissionItem(*missionItem, missionItems->count()); + if (areaCounter == numAreas) _localPlanDataValid = true; diff --git a/src/Wima/notesOnWpExchange.txt b/src/Wima/notesOnWpExchange.txt index 29fc445e4..10c055277 100644 --- a/src/Wima/notesOnWpExchange.txt +++ b/src/Wima/notesOnWpExchange.txt @@ -6,3 +6,6 @@ How to exchange mission between WimaPlaner and WimaController. 4) start/continue mission 5) return vehicle on battery low 6) go to 4) or quit if last waypoint reached + + +investigate load, loadFromVehicle, syncInProgress, _newMissionItemsAvailableFromVehicle -- 2.22.0