diff --git a/src/ui/configuration/FailSafeConfig.cc b/src/ui/configuration/FailSafeConfig.cc index 5f7ff81b06b9dc288654df17dfaed9e2ed6317bd..fe3199ba8bc73104a831c744f1c81da46a0a0f2b 100644 --- a/src/ui/configuration/FailSafeConfig.cc +++ b/src/ui/configuration/FailSafeConfig.cc @@ -1,11 +1,234 @@ #include "FailSafeConfig.h" -FailSafeConfig::FailSafeConfig(QWidget *parent) : QWidget(parent) +FailSafeConfig::FailSafeConfig(QWidget *parent) : AP2ConfigWidget(parent) { ui.setupUi(this); + ui.radio1In->setName("Radio 1"); + ui.radio1In->setMin(800); + ui.radio1In->setMax(2200); + ui.radio1In->setOrientation(Qt::Horizontal); + ui.radio2In->setName("Radio 2"); + ui.radio2In->setMin(800); + ui.radio2In->setMax(2200); + ui.radio2In->setOrientation(Qt::Horizontal); + ui.radio3In->setName("Radio 3"); + ui.radio3In->setMin(800); + ui.radio3In->setMax(2200); + ui.radio3In->setOrientation(Qt::Horizontal); + ui.radio4In->setName("Radio 4"); + ui.radio4In->setMin(800); + ui.radio4In->setMax(2200); + ui.radio4In->setOrientation(Qt::Horizontal); + ui.radio5In->setName("Radio 5"); + ui.radio5In->setMin(800); + ui.radio5In->setMax(2200); + ui.radio5In->setOrientation(Qt::Horizontal); + ui.radio6In->setName("Radio 6"); + ui.radio6In->setMin(800); + ui.radio6In->setMax(2200); + ui.radio6In->setOrientation(Qt::Horizontal); + ui.radio7In->setName("Radio 7"); + ui.radio7In->setMin(800); + ui.radio7In->setMax(2200); + ui.radio7In->setOrientation(Qt::Horizontal); + ui.radio8In->setName("Radio 8"); + ui.radio8In->setMin(800); + ui.radio8In->setMax(2200); + ui.radio8In->setOrientation(Qt::Horizontal); + + ui.radio1Out->setName("Radio 1"); + ui.radio1Out->setMin(800); + ui.radio1Out->setMax(2200); + ui.radio1Out->setOrientation(Qt::Horizontal); + ui.radio2Out->setName("Radio 2"); + ui.radio2Out->setMin(800); + ui.radio2Out->setMax(2200); + ui.radio2Out->setOrientation(Qt::Horizontal); + ui.radio3Out->setName("Radio 3"); + ui.radio3Out->setMin(800); + ui.radio3Out->setMax(2200); + ui.radio3Out->setOrientation(Qt::Horizontal); + ui.radio4Out->setName("Radio 4"); + ui.radio4Out->setMin(800); + ui.radio4Out->setMax(2200); + ui.radio4Out->setOrientation(Qt::Horizontal); + ui.radio5Out->setName("Radio 5"); + ui.radio5Out->setMin(800); + ui.radio5Out->setMax(2200); + ui.radio5Out->setOrientation(Qt::Horizontal); + ui.radio6Out->setName("Radio 6"); + ui.radio6Out->setMin(800); + ui.radio6Out->setMax(2200); + ui.radio6Out->setOrientation(Qt::Horizontal); + ui.radio7Out->setName("Radio 7"); + ui.radio7Out->setMin(800); + ui.radio7Out->setMax(2200); + ui.radio7Out->setOrientation(Qt::Horizontal); + ui.radio8Out->setName("Radio 8"); + ui.radio8Out->setMin(800); + ui.radio8Out->setMax(2200); + ui.radio8Out->setOrientation(Qt::Horizontal); + + ui.throttleFailSafeComboBox->addItem("Disable"); + ui.throttleFailSafeComboBox->addItem("Enabled - Always TRL"); + ui.throttleFailSafeComboBox->addItem("Enabled - Continue in auto"); } FailSafeConfig::~FailSafeConfig() { } +void FailSafeConfig::activeUASSet(UASInterface *uas) +{ + AP2ConfigWidget::activeUASSet(uas); + connect(uas,SIGNAL(remoteControlChannelRawChanged(int,float)),this,SLOT(remoteControlChannelRawChanges(int,float))); + connect(uas,SIGNAL(hilActuatorsChanged(uint64_t,float,float,float,float,float,float,float,float)),this,SLOT(hilActuatorsChanged(uint64_t,float,float,float,float,float,float,float,float))); + connect(uas,SIGNAL(armingChanged(bool)),this,SLOT(armingChanged(bool))); +} +void FailSafeConfig::parameterChanged(int uas, int component, QString parameterName, QVariant value) +{ + //Arducopter + if (parameterName == "FS_THR_ENABLE") + { + ui.throttleFailSafeComboBox->setCurrentIndex(value.toInt()); + } + else if (parameterName == "FS_THR_VALUE") + { + ui.throttlePwmSpinBox->setValue(value.toFloat()); + } + else if (parameterName == "FS_BATT_ENABLE") + { + if (value.toInt() == 0) + { + ui.batteryFailCheckBox->setChecked(false); + } + else + { + ui.batteryFailCheckBox->setChecked(true); + } + } + else if (parameterName == "LOW_VOLT") + { + ui.batteryVoltSpinBox->setValue(value.toFloat()); + } + //Arduplane + else if (parameterName == "THR_FAILSAFE") + { + if (value.toInt() == 0) + { + ui.throttleCheckBox->setChecked(false); + } + else + { + ui.throttleCheckBox->setChecked(true); + } + } + else if (parameterName == "THR_FS_VALUE") + { + ui.throttlePwmSpinBox->setValue(value.toFloat()); + } + else if (parameterName == "THR_FS_ACTION") + { + if (value.toInt() == 0) + { + ui.throttleActionCheckBox->setChecked(false); + } + else + { + ui.throttleActionCheckBox->setChecked(true); + } + } + else if (parameterName == "FS_GCS_ENABL") + { + if (value.toInt() == 0) + { + ui.gcsCheckBox->setChecked(false); + } + else + { + ui.gcsCheckBox->setChecked(true); + } + } + else if (parameterName == "FS_SHORT_ACTN") + { + if (value.toInt() == 0) + { + ui.fsShortCheckBox->setChecked(false); + } + else + { + ui.fsShortCheckBox->setChecked(true); + } + } + else if (parameterName == "FS_LONG_ACTN") + { + if (value.toInt() == 0) + { + ui.fsLongCheckBox->setChecked(false); + } + else + { + ui.fsLongCheckBox->setChecked(true); + } + } + +} + +void FailSafeConfig::armingChanged(bool armed) +{ + if (armed) + { + ui.armedLabel->setText("