AirMapVehicleManager.cc 2.42 KB
Newer Older
1 2 3 4 5 6 7 8
/****************************************************************************
 *
 *   (c) 2009-2016 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.
 *
 ****************************************************************************/
9 10

#include "AirMapVehicleManager.h"
Gus Grubba's avatar
Gus Grubba committed
11
#include "AirMapManager.h"
12

13 14
#include "Vehicle.h"

15 16
//-----------------------------------------------------------------------------
AirMapVehicleManager::AirMapVehicleManager(AirMapSharedState& shared, const Vehicle& vehicle)
17 18 19 20 21 22 23 24 25 26 27 28
    : AirspaceVehicleManager(vehicle)
    , _shared(shared)
    , _flightManager(shared)
    , _telemetry(shared)
    , _trafficMonitor(shared)
{
    connect(&_flightManager,  &AirMapFlightManager::error,                      this, &AirMapVehicleManager::error);
    connect(&_telemetry,      &AirMapTelemetry::error,                          this, &AirMapVehicleManager::error);
    connect(&_trafficMonitor, &AirMapTrafficMonitor::error,                     this, &AirMapVehicleManager::error);
    connect(&_trafficMonitor, &AirMapTrafficMonitor::trafficUpdate,             this, &AirspaceVehicleManager::trafficUpdate);
}

29
//-----------------------------------------------------------------------------
30 31 32
void
AirMapVehicleManager::startTelemetryStream()
{
33
    if (!_flightManager.flightID().isEmpty()) {
Gus Grubba's avatar
Gus Grubba committed
34
        //-- TODO: This will start telemetry using the current flight ID in memory
35 36 37 38
        _telemetry.startTelemetryStream(_flightManager.flightID());
    }
}

39
//-----------------------------------------------------------------------------
40 41 42 43 44 45
void
AirMapVehicleManager::stopTelemetryStream()
{
    _telemetry.stopTelemetryStream();
}

46
//-----------------------------------------------------------------------------
47
bool
48
AirMapVehicleManager::isTelemetryStreaming()
49 50 51 52
{
    return _telemetry.isTelemetryStreaming();
}

53
//-----------------------------------------------------------------------------
54 55 56
void
AirMapVehicleManager::endFlight()
{
57 58 59
    if (!_flightManager.flightID().isEmpty()) {
        _flightManager.endFlight(_flightManager.flightID());
    }
60 61 62
    _trafficMonitor.stop();
}

63
//-----------------------------------------------------------------------------
64 65 66 67
void
AirMapVehicleManager::vehicleMavlinkMessageReceived(const mavlink_message_t& message)
{
    if (isTelemetryStreaming()) {
68
        _telemetry.vehicleMessageReceived(message);
69 70
    }
}