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 @@
#include "AirMapFlightManager.h"
#include "AirMapManager.h"
#include "AirMapRulesetsManager.h"
#include "QGCApplication.h"
#include "MissionItem.h"
#include "QGCMAVLink.h"
......@@ -178,18 +180,20 @@ void AirMapFlightManager::_uploadFlight()
FlightPlans::Create::Parameters params;
params.max_altitude = _flight.maxAltitude;
params.buffer = 2.f;
params.latitude = _flight.takeoffCoord.latitude();
params.longitude = _flight.takeoffCoord.longitude();
params.pilot.id = _pilotID.toStdString();
params.start_time = Clock::universal_time() + Minutes{5};
params.end_time = Clock::universal_time() + Hours{2}; // TODO: user-configurable?
params.rulesets = { // TODO: which ones to use?
"che_drone_rules",
"che_notam",
"che_airmap_rules",
"che_nature_preserve"
};
params.buffer = 2.f;
params.latitude = _flight.takeoffCoord.latitude();
params.longitude = _flight.takeoffCoord.longitude();
params.pilot.id = _pilotID.toStdString();
params.start_time = Clock::universal_time() + Minutes{5};
params.end_time = Clock::universal_time() + Hours{2}; // TODO: user-configurable?
//-- Rules
AirMapRulesetsManager* pRulesMgr = dynamic_cast<AirMapRulesetsManager*>(qgcApp()->toolbox()->airspaceManager()->rulesets());
if(pRulesMgr) {
foreach(QString ruleset, pRulesMgr->rulesetsIDs()) {
params.rulesets.push_back(ruleset.toStdString());
}
}
// geometry: LineString
Geometry::LineString lineString;
......
......@@ -143,3 +143,17 @@ AirMapRulesetsManager::_selectedChanged()
emit selectedRulesChanged();
//-- 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 @@
#include "AirMapSharedState.h"
#include <QGeoCoordinate>
#include <QStringList>
#include <airmap/rulesets.h>
......@@ -60,6 +61,9 @@ public:
void setROI (const QGeoCoordinate& center) override;
//-- Selected rules
QStringList rulesetsIDs ();
signals:
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