Commit 89908866 authored by Gus Grubba's avatar Gus Grubba

Add actual, selected Ruleset IDs to Flight Manager (when uploading a flight)

parent fa6684ff
...@@ -9,6 +9,8 @@ ...@@ -9,6 +9,8 @@
#include "AirMapFlightManager.h" #include "AirMapFlightManager.h"
#include "AirMapManager.h" #include "AirMapManager.h"
#include "AirMapRulesetsManager.h"
#include "QGCApplication.h"
#include "MissionItem.h" #include "MissionItem.h"
#include "QGCMAVLink.h" #include "QGCMAVLink.h"
...@@ -178,18 +180,20 @@ void AirMapFlightManager::_uploadFlight() ...@@ -178,18 +180,20 @@ void AirMapFlightManager::_uploadFlight()
FlightPlans::Create::Parameters params; FlightPlans::Create::Parameters params;
params.max_altitude = _flight.maxAltitude; params.max_altitude = _flight.maxAltitude;
params.buffer = 2.f; params.buffer = 2.f;
params.latitude = _flight.takeoffCoord.latitude(); params.latitude = _flight.takeoffCoord.latitude();
params.longitude = _flight.takeoffCoord.longitude(); params.longitude = _flight.takeoffCoord.longitude();
params.pilot.id = _pilotID.toStdString(); params.pilot.id = _pilotID.toStdString();
params.start_time = Clock::universal_time() + Minutes{5}; params.start_time = Clock::universal_time() + Minutes{5};
params.end_time = Clock::universal_time() + Hours{2}; // TODO: user-configurable? params.end_time = Clock::universal_time() + Hours{2}; // TODO: user-configurable?
params.rulesets = { // TODO: which ones to use?
"che_drone_rules", //-- Rules
"che_notam", AirMapRulesetsManager* pRulesMgr = dynamic_cast<AirMapRulesetsManager*>(qgcApp()->toolbox()->airspaceManager()->rulesets());
"che_airmap_rules", if(pRulesMgr) {
"che_nature_preserve" foreach(QString ruleset, pRulesMgr->rulesetsIDs()) {
}; params.rulesets.push_back(ruleset.toStdString());
}
}
// geometry: LineString // geometry: LineString
Geometry::LineString lineString; Geometry::LineString lineString;
......
...@@ -143,3 +143,17 @@ AirMapRulesetsManager::_selectedChanged() ...@@ -143,3 +143,17 @@ AirMapRulesetsManager::_selectedChanged()
emit selectedRulesChanged(); emit selectedRulesChanged();
//-- TODO: Do whatever it is you do to select a rule //-- TODO: Do whatever it is you do to select a rule
} }
//-----------------------------------------------------------------------------
QStringList
AirMapRulesetsManager::rulesetsIDs()
{
QStringList list;
for(int i = 0; i < _rules.count(); i++) {
AirMapRule* rule = qobject_cast<AirMapRule*>(_rules.get(i));
if(rule && rule->selected()) {
list << rule->id();
}
}
return list;
}
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "AirMapSharedState.h" #include "AirMapSharedState.h"
#include <QGeoCoordinate> #include <QGeoCoordinate>
#include <QStringList>
#include <airmap/rulesets.h> #include <airmap/rulesets.h>
...@@ -60,6 +61,9 @@ public: ...@@ -60,6 +61,9 @@ public:
void setROI (const QGeoCoordinate& center) override; void setROI (const QGeoCoordinate& center) override;
//-- Selected rules
QStringList rulesetsIDs ();
signals: signals:
void error (const QString& what, const QString& airmapdMessage, const QString& airmapdDetails); void error (const QString& what, const QString& airmapdMessage, const QString& airmapdDetails);
......
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