Browse Source

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

QGC4.4
Gus Grubba 7 years ago
parent
commit
8990886685
  1. 28
      src/Airmap/AirMapFlightManager.cc
  2. 14
      src/Airmap/AirMapRulesetsManager.cc
  3. 4
      src/Airmap/AirMapRulesetsManager.h

28
src/Airmap/AirMapFlightManager.cc

@ -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()
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;

14
src/Airmap/AirMapRulesetsManager.cc

@ -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;
}

4
src/Airmap/AirMapRulesetsManager.h

@ -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:
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);

Loading…
Cancel
Save