AutoPilotPlugin.cc 1.69 KB
Newer Older
1 2 3 4 5 6 7 8 9
/****************************************************************************
 *
 *   (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.
 *
 ****************************************************************************/

Don Gagne's avatar
Don Gagne committed
10 11 12 13 14

/// @file
///     @author Don Gagne <don@thegagnes.com>

#include "AutoPilotPlugin.h"
15
#include "QGCApplication.h"
16
#include "ParameterManager.h"
17
#include "UAS.h"
18
#include "FirmwarePlugin.h"
Don Gagne's avatar
Don Gagne committed
19

20 21 22
AutoPilotPlugin::AutoPilotPlugin(Vehicle* vehicle, QObject* parent)
    : QObject(parent)
    , _vehicle(vehicle)
23
    , _firmwarePlugin(vehicle->firmwarePlugin())
24
	, _setupComplete(false)
Don Gagne's avatar
Don Gagne committed
25
{
26

27 28
}

29 30 31 32 33
AutoPilotPlugin::~AutoPilotPlugin()
{
    
}

34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
void AutoPilotPlugin::_recalcSetupComplete(void)
{
	bool newSetupComplete = true;
	
	foreach(const QVariant componentVariant, vehicleComponents()) {
		VehicleComponent* component = qobject_cast<VehicleComponent*>(qvariant_cast<QObject *>(componentVariant));
		Q_ASSERT(component);
		
		if (!component->setupComplete()) {
			newSetupComplete = false;
			break;
		}
	}
	
	if (_setupComplete != newSetupComplete) {
		_setupComplete = newSetupComplete;
		emit setupCompleteChanged(_setupComplete);
	}
}

bool AutoPilotPlugin::setupComplete(void)
{
	return _setupComplete;
}

59
void AutoPilotPlugin::parametersReadyPreChecks(void)
60
{
61 62 63
    _recalcSetupComplete();
    if (!_setupComplete) {
        qgcApp()->showMessage("One or more vehicle components require setup prior to flight.");
64

65 66 67
        // Take the user to Vehicle Summary
        qgcApp()->showSetupView();
        qgcApp()->processEvents(QEventLoop::ExcludeUserInputEvents);
Don Gagne's avatar
Don Gagne committed
68
    }
69
}