Skip to content
CustomFirmwarePlugin.cc 2.14 KiB
Newer Older
/****************************************************************************
 *
 * (c) 2009-2019 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.
 *
 * @file
 *   @brief Custom Firmware Plugin (PX4)
 *   @author Gus Grubba <gus@auterion.com>
 *
 */

#include "CustomFirmwarePlugin.h"
#include "CustomAutoPilotPlugin.h"

//-----------------------------------------------------------------------------
CustomFirmwarePlugin::CustomFirmwarePlugin()
{
    for (int i = 0; i < _flightModeInfoList.count(); i++) {
        FlightModeInfo_t& info = _flightModeInfoList[i];
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
        //-- Narrow the flight mode options to only these
        if (info.name != _holdFlightMode && info.name != _rtlFlightMode && info.name != _missionFlightMode) {
            // No other flight modes can be set
            info.canBeSet = false;
        }
    }
}

//-----------------------------------------------------------------------------
AutoPilotPlugin* CustomFirmwarePlugin::autopilotPlugin(Vehicle* vehicle)
{
    return new CustomAutoPilotPlugin(vehicle, vehicle);
}

DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
const QVariantList& CustomFirmwarePlugin::toolIndicators(const Vehicle* vehicle)
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
    if (_toolIndicatorList.size() == 0) {
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
        // First call the base class to get the standard QGC list. This way we are guaranteed to always get
        // any new toolbar indicators which are added upstream in our custom build.
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
        _toolIndicatorList = FirmwarePlugin::toolIndicators(vehicle);
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
        // Then specifically remove the RC RSSI indicator.
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
        _toolIndicatorList.removeOne(QVariant::fromValue(QUrl::fromUserInput("qrc:/toolbar/RCRSSIIndicator.qml")));
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
    return _toolIndicatorList;
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
// Tells QGC that your vehicle has a gimbal on it. This will in turn cause thing like gimbal commands to point
// the camera straight down for surveys to be automatically added to Plans.
bool CustomFirmwarePlugin::hasGimbal(Vehicle* /*vehicle*/, bool& rollSupported, bool& pitchSupported, bool& yawSupported)
{
    rollSupported = false;
    pitchSupported = true;
    yawSupported = true;
DoinLakeFlyer's avatar
 
DoinLakeFlyer committed
}