diff --git a/src/Wima/WimaController.cc b/src/Wima/WimaController.cc index b2455215104ec0cd531c2ff7237e814202f324c2..3d505df7d6f529159312f95c0f29db99ae10704d 100644 --- a/src/Wima/WimaController.cc +++ b/src/Wima/WimaController.cc @@ -35,9 +35,10 @@ const char* WimaController::snakeMinTileAreaName = "SnakeMinTileArea"; const char* WimaController::snakeLineDistanceName = "SnakeLineDistance"; const char* WimaController::snakeMinTransectLengthName = "SnakeMinTransectLength"; -WimaController::StatusMap WimaController::_nemoStatusMap{std::make_pair(0, "No Heartbeat"), - std::make_pair(1, "Connected"), - std::make_pair(-1, "Timeout")}; +WimaController::StatusMap WimaController::_nemoStatusMap{ + std::make_pair(0, "No Heartbeat"), + std::make_pair(1, "Connected"), + std::make_pair(-1, "Timeout")}; using namespace snake; using namespace snake_geometry; @@ -56,7 +57,8 @@ WimaController::WimaController(QObject *parent) , _rtlManager (_managerSettings, _areaInterface) , _currentManager (&_defaultManager) , _managerList {&_defaultManager, &_snakeManager, &_rtlManager} - , _metaDataMap (FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/WimaController.SettingsGroup.json"), this)) + , _metaDataMap (FactMetaData::createMapFromJsonFile( + QStringLiteral(":/json/WimaController.SettingsGroup.json"), this)) , _enableWimaController (settingsGroup, _metaDataMap[enableWimaControllerName]) , _overlapWaypoints (settingsGroup, _metaDataMap[overlapWaypointsName]) , _maxWaypointsPerPhase (settingsGroup, _metaDataMap[maxWaypointsPerPhaseName]) @@ -333,7 +335,9 @@ void WimaController::removeVehicleTrajectoryHistory() managerVehicle->trajectoryPoints()->clear(); } -bool WimaController::_calcShortestPath(const QGeoCoordinate &start, const QGeoCoordinate &destination, QVector &path) +bool WimaController::_calcShortestPath(const QGeoCoordinate &start, + const QGeoCoordinate &destination, + QVector &path) { using namespace GeoUtilities; using namespace PolygonCalculus; @@ -352,8 +356,6 @@ bool WimaController::_calcShortestPath(const QGeoCoordinate &start, const QGeoCo bool WimaController::setWimaPlanData(const WimaPlanData &planData) { - // fetch only if valid, return true on success - // reset visual items _areas.clear(); _defaultManager.clear(); @@ -864,15 +866,24 @@ void WimaController::_initStartSnakeWorker() } // Initialize _snakeWorker. - _snakeWorker.setMeasurementArea(_measurementArea.coordinateList()); - _snakeWorker.setServiceArea(_serviceArea.coordinateList()); - _snakeWorker.setCorridor(_corridor.coordinateList()); - _snakeWorker.setProgress(_nemoProgress.progress()); - _snakeWorker.setLineDistance(_snakeLineDistance.rawValue().toDouble()); - _snakeWorker.setMinTransectLength(_snakeMinTransectLength.rawValue().toDouble()); - _snakeWorker.setTileHeight(_snakeTileHeight.rawValue().toDouble()); - _snakeWorker.setTileWidth(_snakeTileWidth.rawValue().toDouble()); - _snakeWorker.setMinTileArea(_snakeMinTileArea.rawValue().toDouble()); + _snakeWorker.setMeasurementArea( + _measurementArea.coordinateList()); + _snakeWorker.setServiceArea( + _serviceArea.coordinateList()); + _snakeWorker.setCorridor( + _corridor.coordinateList()); + _snakeWorker.setProgress( + _nemoProgress.progress()); + _snakeWorker.setLineDistance( + _snakeLineDistance.rawValue().toDouble()); + _snakeWorker.setMinTransectLength( + _snakeMinTransectLength.rawValue().toDouble()); + _snakeWorker.setTileHeight( + _snakeTileHeight.rawValue().toDouble()); + _snakeWorker.setTileWidth( + _snakeTileWidth.rawValue().toDouble()); + _snakeWorker.setMinTileArea( + _snakeMinTileArea.rawValue().toDouble()); _setSnakeCalcInProgress(true); // Start worker thread. diff --git a/src/Wima/WimaPlaner.cc b/src/Wima/WimaPlaner.cc index a0cda2907906b85f39c53082213e7b1551e23807..fc8c71e47e5c38e3101d7528184e4837bac25aa8 100644 --- a/src/Wima/WimaPlaner.cc +++ b/src/Wima/WimaPlaner.cc @@ -36,10 +36,12 @@ WimaPlaner::WimaPlaner(QObject *parent) _updateTimer.setInterval(300); // 300 ms means: max update time 2*300 ms _updateTimer.start(); +#ifndef NDEBUG // for debugging and testing purpose, remove if not needed anymore connect(&_autoLoadTimer, &QTimer::timeout, this, &WimaPlaner::autoLoadMission); _autoLoadTimer.setSingleShot(true); _autoLoadTimer.start(300); +#endif _calcArrivalAndReturnPathTimer.setInterval(100); _calcArrivalAndReturnPathTimer.setSingleShot(true); @@ -826,11 +828,13 @@ void WimaPlaner::setSyncronizedWithControllerFalse() setSyncronizedWithController(false); } +#ifndef NDEBUG void WimaPlaner::autoLoadMission() { loadFromFile("/home/valentin/Desktop/drones/qgroundcontrol/Paths/KlingenbachTest.wima"); pushToWimaController(); } +#endif void WimaPlaner::startCalcArrivalAndReturnTimer() { diff --git a/src/Wima/WimaPlaner.h b/src/Wima/WimaPlaner.h index abf4ee7e63b3067851e312b6f85cfc70a8be4e16..31b9869adbfd86ae535a5a5c920a2b950d41efcf 100644 --- a/src/Wima/WimaPlaner.h +++ b/src/Wima/WimaPlaner.h @@ -136,7 +136,9 @@ private slots: // called by _updateTimer::timeout signal, updates different mission parts, if parameters (e.g. survey or areas) have changed void updateTimerSlot (); void setSyncronizedWithControllerFalse (void); +#ifndef NDEBUG void autoLoadMission (void); +#endif void startCalcArrivalAndReturnTimer (void); private: signals: @@ -180,6 +182,8 @@ private: bool _syncronizedWithController; // true if planData is syncronized with wimaController bool _readyForSync; // gets set by updateMission and calcArrivalAndReturnPath +#ifndef NDEBUG QTimer _autoLoadTimer; // timer to auto load mission after some time, prevents seg. faults +#endif QTimer _calcArrivalAndReturnPathTimer; };