Skip to content
AirMapFlightManager.h 1.48 KiB
Newer Older
/****************************************************************************
 *
Gus Grubba's avatar
Gus Grubba committed
 * (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
 *
 * QGroundControl is licensed according to the terms in the file
 * COPYING.md in the root of the source code directory.
 *
 ****************************************************************************/

#pragma once

Gus Grubba's avatar
Gus Grubba committed
#include "LifetimeChecker.h"
Gus Grubba's avatar
Gus Grubba committed
#include "AirMapSharedState.h"
Gus Grubba's avatar
Gus Grubba committed
#include "AirspaceFlightPlanProvider.h"
Gus Grubba's avatar
Gus Grubba committed

#include <QTimer>
Gus Grubba's avatar
Gus Grubba committed
#include <QObject>
Gus Grubba's avatar
Gus Grubba committed
#include <QList>
Gus Grubba's avatar
Gus Grubba committed
#include <QGeoCoordinate>

//-----------------------------------------------------------------------------
/// class to upload a flight
class AirMapFlightManager : public QObject, public LifetimeChecker
{
    Q_OBJECT
public:
    AirMapFlightManager             (AirMapSharedState& shared);
    void    findFlight              (const QGCGeoBoundingCube& bc);
    void    endFlight               (const QString& id);
    QString flightID                () { return _flightID; }

signals:
Gus Grubba's avatar
Gus Grubba committed
    void    error                   (const QString& what, const QString& airmapdMessage, const QString& airmapdDetails);
    void    flightIDChanged         ();

private:

    enum class State {
        Idle,
        GetPilotID,
        FlightEnd,
    };

    State                               _state = State::Idle;
    AirMapSharedState&                  _shared;
Gus Grubba's avatar
Gus Grubba committed
    QGCGeoBoundingCube                  _searchArea;