GCSControlGadgetWidget::GCSControlGadgetWidget(QWidget *parent) : QLabel(parent)
{
    m_gcscontrol = new Ui_GCSControl();
    m_gcscontrol->setupUi(this);


    ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
    UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();

    // Set up the drop down box for the flightmode
    FlightStatus* flightStatus = FlightStatus::GetInstance(objManager);;
    m_gcscontrol->comboBoxFlightMode->addItems(flightStatus->getField("FlightMode")->getOptions());

    // Set up slots and signals for joysticks
    connect(m_gcscontrol->widgetLeftStick,SIGNAL(positionClicked(double,double)),this,SLOT(leftStickClicked(double,double)));
    connect(m_gcscontrol->widgetRightStick,SIGNAL(positionClicked(double,double)),this,SLOT(rightStickClicked(double,double)));

    // Connect misc controls
    connect(m_gcscontrol->checkBoxGcsControl, SIGNAL(clicked(bool)), this, SLOT(toggleControl(bool)));
    connect(m_gcscontrol->comboBoxFlightMode, SIGNAL(currentIndexChanged(int)), this, SLOT(selectFlightMode(int)));

    connect(m_gcscontrol->checkBoxUDPControl, SIGNAL(stateChanged(int)),this,SLOT(toggleUDPControl(int))); //UDP control checkbox

    // Connect object updated event from UAVObject to also update check boxes and dropdown
    connect(flightStatus,SIGNAL(FlightModeChanged(quint8)), this, SLOT(flightModeChanged(quint8)));
    connect(flightStatus,SIGNAL(ArmedChanged(quint8)), this, SLOT(armedChanged(quint8)));

    leftX = 0;
    leftY = 0;
    rightX = 0;
    rightY = 0;
}
Пример #2
0
void FlightStatus::setArmed(quint8 value)
{
   mutex->lock();
   bool changed = data.Armed != value;
   data.Armed = value;
   mutex->unlock();
   if (changed) emit ArmedChanged(value);
}
Пример #3
0
void FlightStatus::emitNotifications()
{
            //if (data.Armed != oldData.Armed)
            emit ArmedChanged(data.Armed);
        //if (data.FlightMode != oldData.FlightMode)
            emit FlightModeChanged(data.FlightMode);
        //if (data.ControlChain[0] != oldData.ControlChain[0])
            emit ControlChain_StabilizationChanged(data.ControlChain[0]);
        //if (data.ControlChain[1] != oldData.ControlChain[1])
            emit ControlChain_PathFollowerChanged(data.ControlChain[1]);
        //if (data.ControlChain[2] != oldData.ControlChain[2])
            emit ControlChain_PathPlannerChanged(data.ControlChain[2]);

}