1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-20 10:54:14 +01:00

Merge remote-tracking branch 'origin/laurent/OP-1706_Output_tab' into next

Conflicts:
	ground/openpilotgcs/src/plugins/config/outputchannelform.cpp
This commit is contained in:
Laurent Lalanne 2015-02-17 14:09:29 +01:00
commit fdc80fd595

View File

@ -27,6 +27,9 @@
#include "outputchannelform.h"
#define MAXOUTPUT_VALUE 2500
#define MINOUTPUT_VALUE 500
OutputChannelForm::OutputChannelForm(const int index, QWidget *parent) :
ChannelForm(index, parent), ui(), m_inChannelTest(false)
{
@ -45,6 +48,14 @@ OutputChannelForm::OutputChannelForm(const int index, QWidget *parent) :
ui.actuatorLink->setChecked(false);
connect(ui.actuatorLink, SIGNAL(toggled(bool)), this, SLOT(linkToggled(bool)));
// Set limits
ui.actuatorMin->setMaximum(MAXOUTPUT_VALUE);
ui.actuatorMax->setMaximum(MAXOUTPUT_VALUE);
ui.actuatorValue->setMaximum(MAXOUTPUT_VALUE);
ui.actuatorMin->setMinimum(MINOUTPUT_VALUE);
ui.actuatorMax->setMinimum(MINOUTPUT_VALUE);
ui.actuatorValue->setMinimum(MINOUTPUT_VALUE);
disableMouseWheelEvents();
}
@ -221,11 +232,13 @@ void OutputChannelForm::setRange(int minimum, int maximum)
*/
void OutputChannelForm::setChannelRange()
{
int oldMini = ui.actuatorNeutral->minimum();
int oldMini = ui.actuatorNeutral->minimum();
int minValue = ui.actuatorMin->value();
int maxValue = ui.actuatorMax->value();
// int oldMaxi = ui.actuatorNeutral->maximum();
if (ui.actuatorMin->value() < ui.actuatorMax->value()) {
if (minValue <= maxValue) {
ui.actuatorNeutral->setRange(ui.actuatorMin->value(), ui.actuatorMax->value());
ui.actuatorRev->setChecked(false);
} else {
@ -237,6 +250,33 @@ void OutputChannelForm::setChannelRange()
ui.actuatorNeutral->setValue(ui.actuatorNeutral->minimum());
}
// Enable only outputs already set in mixer
if (name() != "-") {
ui.actuatorMin->setEnabled(true);
ui.actuatorMax->setEnabled(true);
ui.actuatorNeutral->setEnabled(true);
ui.actuatorValue->setEnabled(true);
// Enable checkboxes Rev and Link if some range
if (minValue != maxValue) {
ui.actuatorRev->setEnabled(true);
ui.actuatorLink->setEnabled(true);
} else {
ui.actuatorRev->setEnabled(false);
ui.actuatorLink->setEnabled(false);
}
} else {
ui.actuatorMin->setEnabled(false);
ui.actuatorMax->setEnabled(false);
ui.actuatorRev->setEnabled(false);
ui.actuatorLink->setEnabled(false);
ui.actuatorMin->setValue(1000);
ui.actuatorMax->setValue(1000);
ui.actuatorNeutral->setRange(minValue, maxValue);
ui.actuatorNeutral->setEnabled(false);
ui.actuatorValue->setEnabled(false);
}
// if (ui.actuatorNeutral->value() == oldMaxi)
// this can be dangerous if it happens to be controlling a motor at the time!
// ui.actuatorNeutral->setValue(ui.actuatorNeutral->maximum());