Skip to content
Snippets Groups Projects
QGCToolbox.cc 4.21 KiB
Newer Older
  • Learn to ignore specific revisions
  •  /*=====================================================================
    
     QGroundControl Open Source Ground Control Station
    
     (c) 2009 - 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
    
     This file is part of the QGROUNDCONTROL project
    
     QGROUNDCONTROL is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation, either version 3 of the License, or
     (at your option) any later version.
    
     QGROUNDCONTROL is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
    
     You should have received a copy of the GNU General Public License
     along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
    
     ======================================================================*/
    
    
    Don Gagne's avatar
    Don Gagne committed
    #include "AutoPilotPluginManager.h"
    #include "FactSystem.h"
    #include "FirmwarePluginManager.h"
    
    #include "FlightMapSettings.h"
    
    Don Gagne's avatar
    Don Gagne committed
    #include "GAudioOutput.h"
    
    #include "HomePositionManager.h"
    #include "JoystickManager.h"
    
    Don Gagne's avatar
    Don Gagne committed
    #include "LinkManager.h"
    #include "MAVLinkProtocol.h"
    #include "MissionCommands.h"
    #include "MultiVehicleManager.h"
    
    dogmaphobic's avatar
    dogmaphobic committed
    #include "QGCImageProvider.h"
    
    Don Gagne's avatar
    Don Gagne committed
    #include "UASMessageHandler.h"
    
    dogmaphobic's avatar
    dogmaphobic committed
    #include "QGCMapEngineManager.h"
    
    Jimmy Johnson's avatar
    Jimmy Johnson committed
    #include "FollowMe.h"
    
    
    QGCToolbox::QGCToolbox(QGCApplication* app)
    
    Don Gagne's avatar
    Don Gagne committed
        : _audioOutput(NULL)
    
        , _autopilotPluginManager(NULL)
    
    Don Gagne's avatar
    Don Gagne committed
        , _factSystem(NULL)
        , _firmwarePluginManager(NULL)
    
        , _flightMapSettings(NULL)
        , _homePositionManager(NULL)
    
    Don Gagne's avatar
    Don Gagne committed
        , _imageProvider(NULL)
    
        , _joystickManager(NULL)
    
    Don Gagne's avatar
    Don Gagne committed
        , _linkManager(NULL)
        , _mavlinkProtocol(NULL)
        , _missionCommands(NULL)
        , _multiVehicleManager(NULL)
    
    dogmaphobic's avatar
    dogmaphobic committed
        , _mapEngineManager(NULL)
    
        , _uasMessageHandler(NULL)
    
    Jimmy Johnson's avatar
    Jimmy Johnson committed
        , _followMe(NULL)
    
    Don Gagne's avatar
    Don Gagne committed
        _audioOutput =              new GAudioOutput(app);
    
        _autopilotPluginManager =   new AutoPilotPluginManager(app);
    
    Don Gagne's avatar
    Don Gagne committed
        _factSystem =               new FactSystem(app);
        _firmwarePluginManager =    new FirmwarePluginManager(app);
    
        _flightMapSettings =        new FlightMapSettings(app);
    
        _homePositionManager =      new HomePositionManager(app);
    
    Don Gagne's avatar
    Don Gagne committed
        _imageProvider =            new QGCImageProvider(app);
        _joystickManager =          new JoystickManager(app);
    
        _linkManager =              new LinkManager(app);
        _mavlinkProtocol =          new MAVLinkProtocol(app);
    
    Don Gagne's avatar
    Don Gagne committed
        _missionCommands =          new MissionCommands(app);
        _multiVehicleManager =      new MultiVehicleManager(app);
    
    dogmaphobic's avatar
    dogmaphobic committed
        _mapEngineManager =       new QGCMapEngineManager(app);
    
        _uasMessageHandler =        new UASMessageHandler(app);
    
    Jimmy Johnson's avatar
    Jimmy Johnson committed
        _followMe =                 new FollowMe(app);
    
    Don Gagne's avatar
    Don Gagne committed
        _audioOutput->setToolbox(this);
    
        _autopilotPluginManager->setToolbox(this);
    
    Don Gagne's avatar
    Don Gagne committed
        _factSystem->setToolbox(this);
        _firmwarePluginManager->setToolbox(this);
    
        _flightMapSettings->setToolbox(this);
    
        _homePositionManager->setToolbox(this);
    
    Don Gagne's avatar
    Don Gagne committed
        _imageProvider->setToolbox(this);
        _joystickManager->setToolbox(this);
    
        _linkManager->setToolbox(this);
        _mavlinkProtocol->setToolbox(this);
    
    Don Gagne's avatar
    Don Gagne committed
        _missionCommands->setToolbox(this);
        _multiVehicleManager->setToolbox(this);
    
    dogmaphobic's avatar
    dogmaphobic committed
        _mapEngineManager->setToolbox(this);
    
        _uasMessageHandler->setToolbox(this);
    
    Jimmy Johnson's avatar
    Jimmy Johnson committed
        _followMe->setToolbox(this);
    
    
        //FIXME: make this configurable...
        //_gpsManager->setupGPS("ttyACM0");
    
    }
    
    QGCToolbox::~QGCToolbox()
    {
    
    Don Gagne's avatar
    Don Gagne committed
        delete _audioOutput;
    
        delete _autopilotPluginManager;
    
    Don Gagne's avatar
    Don Gagne committed
        delete _factSystem;
        delete _firmwarePluginManager;
    
        delete _flightMapSettings;
        delete _homePositionManager;
        delete _joystickManager;
    
    Don Gagne's avatar
    Don Gagne committed
        delete _linkManager;
        delete _mavlinkProtocol;
        delete _missionCommands;
    
    dogmaphobic's avatar
    dogmaphobic committed
        delete _mapEngineManager;
    
    Don Gagne's avatar
    Don Gagne committed
        delete _multiVehicleManager;
    
        delete _uasMessageHandler;
    
    Jimmy Johnson's avatar
    Jimmy Johnson committed
        delete _followMe;
    
    }
    
    QGCTool::QGCTool(QGCApplication* app)
        : QObject((QObject*)app)
        , _app(app)
        , _toolbox(NULL)
    {
    
    }
    
    void QGCTool::setToolbox(QGCToolbox* toolbox)
    {
        _toolbox = toolbox;
    }