mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-11 19:24:10 +01:00
OP-38 Ground / Config Gadget: implemented channel reversal for output channels.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1564 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
cd9f5a0a5d
commit
4b3096dd57
@ -40,6 +40,49 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent)
|
|||||||
m_config = new Ui_SettingsWidget();
|
m_config = new Ui_SettingsWidget();
|
||||||
m_config->setupUi(this);
|
m_config->setupUi(this);
|
||||||
|
|
||||||
|
// First of all, put all the channel widgets into lists, so that we can
|
||||||
|
// manipulate those:
|
||||||
|
outLabels << m_config->ch0OutValue
|
||||||
|
<< m_config->ch1OutValue
|
||||||
|
<< m_config->ch2OutValue
|
||||||
|
<< m_config->ch3OutValue
|
||||||
|
<< m_config->ch4OutValue
|
||||||
|
<< m_config->ch5OutValue
|
||||||
|
<< m_config->ch6OutValue
|
||||||
|
<< m_config->ch7OutValue;
|
||||||
|
outSliders << m_config->ch0OutSlider
|
||||||
|
<< m_config->ch1OutSlider
|
||||||
|
<< m_config->ch2OutSlider
|
||||||
|
<< m_config->ch3OutSlider
|
||||||
|
<< m_config->ch4OutSlider
|
||||||
|
<< m_config->ch5OutSlider
|
||||||
|
<< m_config->ch6OutSlider
|
||||||
|
<< m_config->ch7OutSlider;
|
||||||
|
outMin << m_config->ch0OutMin
|
||||||
|
<< m_config->ch1OutMin
|
||||||
|
<< m_config->ch2OutMin
|
||||||
|
<< m_config->ch3OutMin
|
||||||
|
<< m_config->ch4OutMin
|
||||||
|
<< m_config->ch5OutMin
|
||||||
|
<< m_config->ch6OutMin
|
||||||
|
<< m_config->ch7OutMin;
|
||||||
|
outMax << m_config->ch0OutMax
|
||||||
|
<< m_config->ch1OutMax
|
||||||
|
<< m_config->ch2OutMax
|
||||||
|
<< m_config->ch3OutMax
|
||||||
|
<< m_config->ch4OutMax
|
||||||
|
<< m_config->ch5OutMax
|
||||||
|
<< m_config->ch6OutMax
|
||||||
|
<< m_config->ch7OutMax;
|
||||||
|
reversals << m_config->ch0Rev
|
||||||
|
<< m_config->ch1Rev
|
||||||
|
<< m_config->ch2Rev
|
||||||
|
<< m_config->ch3Rev
|
||||||
|
<< m_config->ch4Rev
|
||||||
|
<< m_config->ch5Rev
|
||||||
|
<< m_config->ch6Rev
|
||||||
|
<< m_config->ch7Rev;
|
||||||
|
|
||||||
// Now connect the widget to the ManualControlCommand / Channel UAVObject
|
// Now connect the widget to the ManualControlCommand / Channel UAVObject
|
||||||
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
|
||||||
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
|
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
|
||||||
@ -99,23 +142,13 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(m_config->ch0OutMin, SIGNAL(editingFinished()), this, SLOT(setch0OutRange()));
|
for (int i = 0; i < 8; i++) {
|
||||||
connect(m_config->ch1OutMin, SIGNAL(editingFinished()), this, SLOT(setch1OutRange()));
|
connect(outMin[i], SIGNAL(editingFinished()), this, SLOT(setChOutRange()));
|
||||||
connect(m_config->ch2OutMin, SIGNAL(editingFinished()), this, SLOT(setch2OutRange()));
|
connect(outMax[i], SIGNAL(editingFinished()), this, SLOT(setChOutRange()));
|
||||||
connect(m_config->ch3OutMin, SIGNAL(editingFinished()), this, SLOT(setch3OutRange()));
|
connect(reversals[i], SIGNAL(toggled(bool)), this, SLOT(reverseChannel(bool)));
|
||||||
connect(m_config->ch4OutMin, SIGNAL(editingFinished()), this, SLOT(setch4OutRange()));
|
// Now connect the channel out sliders to our signal to send updates in test mode
|
||||||
connect(m_config->ch5OutMin, SIGNAL(editingFinished()), this, SLOT(setch5OutRange()));
|
connect(outSliders[i], SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
||||||
connect(m_config->ch6OutMin, SIGNAL(editingFinished()), this, SLOT(setch6OutRange()));
|
}
|
||||||
connect(m_config->ch7OutMin, SIGNAL(editingFinished()), this, SLOT(setch7OutRange()));
|
|
||||||
|
|
||||||
connect(m_config->ch0OutMax, SIGNAL(editingFinished()), this, SLOT(setch0OutRange()));
|
|
||||||
connect(m_config->ch1OutMax, SIGNAL(editingFinished()), this, SLOT(setch1OutRange()));
|
|
||||||
connect(m_config->ch2OutMax, SIGNAL(editingFinished()), this, SLOT(setch2OutRange()));
|
|
||||||
connect(m_config->ch3OutMax, SIGNAL(editingFinished()), this, SLOT(setch3OutRange()));
|
|
||||||
connect(m_config->ch4OutMax, SIGNAL(editingFinished()), this, SLOT(setch4OutRange()));
|
|
||||||
connect(m_config->ch5OutMax, SIGNAL(editingFinished()), this, SLOT(setch5OutRange()));
|
|
||||||
connect(m_config->ch6OutMax, SIGNAL(editingFinished()), this, SLOT(setch6OutRange()));
|
|
||||||
connect(m_config->ch7OutMax, SIGNAL(editingFinished()), this, SLOT(setch7OutRange()));
|
|
||||||
|
|
||||||
connect(m_config->channelOutTest, SIGNAL(toggled(bool)), this, SLOT(runChannelTests(bool)));
|
connect(m_config->channelOutTest, SIGNAL(toggled(bool)), this, SLOT(runChannelTests(bool)));
|
||||||
|
|
||||||
@ -130,16 +163,6 @@ ConfigServoWidget::ConfigServoWidget(QWidget *parent) : ConfigTaskWidget(parent)
|
|||||||
connect(m_config->saveRCOutputToRAM, SIGNAL(clicked()), this, SLOT(sendRCOutputUpdate()));
|
connect(m_config->saveRCOutputToRAM, SIGNAL(clicked()), this, SLOT(sendRCOutputUpdate()));
|
||||||
connect(m_config->getRCOutputCurrent, SIGNAL(clicked()), this, SLOT(requestRCOutputUpdate()));
|
connect(m_config->getRCOutputCurrent, SIGNAL(clicked()), this, SLOT(requestRCOutputUpdate()));
|
||||||
|
|
||||||
// Now connect the channel out sliders to our signal to send updates in test mode
|
|
||||||
connect(m_config->ch0OutSlider, SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
|
||||||
connect(m_config->ch1OutSlider, SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
|
||||||
connect(m_config->ch2OutSlider, SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
|
||||||
connect(m_config->ch3OutSlider, SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
|
||||||
connect(m_config->ch4OutSlider, SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
|
||||||
connect(m_config->ch5OutSlider, SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
|
||||||
connect(m_config->ch6OutSlider, SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
|
||||||
connect(m_config->ch7OutSlider, SIGNAL(valueChanged(int)), this, SLOT(sendChannelTest(int)));
|
|
||||||
|
|
||||||
|
|
||||||
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestRCInputUpdate()));
|
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestRCInputUpdate()));
|
||||||
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestRCOutputUpdate()));
|
connect(parent, SIGNAL(autopilotConnected()),this, SLOT(requestRCOutputUpdate()));
|
||||||
@ -160,6 +183,15 @@ ConfigServoWidget::~ConfigServoWidget()
|
|||||||
*/
|
*/
|
||||||
void ConfigServoWidget::sendChannelTest(int value)
|
void ConfigServoWidget::sendChannelTest(int value)
|
||||||
{
|
{
|
||||||
|
// First of all, update the label:
|
||||||
|
QSlider *ob = (QSlider*)QObject::sender();
|
||||||
|
int index = outSliders.indexOf(ob);
|
||||||
|
if (reversals[index]->isChecked())
|
||||||
|
value = outMin[index]->value()-value+outMax[index]->value();
|
||||||
|
else
|
||||||
|
outLabels[index]->setText(QString::number(value));
|
||||||
|
|
||||||
|
outLabels[index]->setText(QString::number(value));
|
||||||
if (!m_config->channelOutTest->isChecked())
|
if (!m_config->channelOutTest->isChecked())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -168,13 +200,14 @@ void ConfigServoWidget::sendChannelTest(int value)
|
|||||||
|
|
||||||
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("ActuatorCommand")));
|
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(QString("ActuatorCommand")));
|
||||||
|
|
||||||
QObject *ob = QObject::sender();
|
/*
|
||||||
QStringList channelsList;
|
QStringList channelsList;
|
||||||
channelsList << "ch0OutSlider" << "ch1OutSlider" << "ch2OutSlider" << "ch3OutSlider" << "ch4OutSlider"
|
channelsList << "ch0OutSlider" << "ch1OutSlider" << "ch2OutSlider" << "ch3OutSlider" << "ch4OutSlider"
|
||||||
<< "ch5OutSlider" << "ch6OutSlider" << "ch7OutSlider";
|
<< "ch5OutSlider" << "ch6OutSlider" << "ch7OutSlider";
|
||||||
int idx = channelsList.indexOf(QRegExp(ob->objectName()));
|
int idx = channelsList.indexOf(QRegExp(ob->objectName()));
|
||||||
|
*/
|
||||||
UAVObjectField * channel = obj->getField("Channel");
|
UAVObjectField * channel = obj->getField("Channel");
|
||||||
channel->setValue(value,idx);
|
channel->setValue(value,index);
|
||||||
obj->updated();
|
obj->updated();
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -255,51 +288,30 @@ void ConfigServoWidget::requestRCOutputUpdate()
|
|||||||
m_config->outputRate2->setValue(field->getValue(1).toInt());
|
m_config->outputRate2->setValue(field->getValue(1).toInt());
|
||||||
|
|
||||||
// Get Channel ranges:
|
// Get Channel ranges:
|
||||||
|
for (int i=0;i<8;i++) {
|
||||||
field = obj->getField(QString("ChannelMin"));
|
field = obj->getField(QString("ChannelMin"));
|
||||||
m_config->ch0OutMin->setValue(field->getValue(0).toInt());
|
int minValue = field->getValue(i).toInt();
|
||||||
m_config->ch0OutSlider->setMinimum(field->getValue(0).toInt());
|
outMin[i]->setValue(minValue);
|
||||||
m_config->ch1OutMin->setValue(field->getValue(1).toInt());
|
|
||||||
m_config->ch1OutSlider->setMinimum(field->getValue(1).toInt());
|
|
||||||
m_config->ch2OutMin->setValue(field->getValue(2).toInt());
|
|
||||||
m_config->ch2OutSlider->setMinimum(field->getValue(2).toInt());
|
|
||||||
m_config->ch3OutMin->setValue(field->getValue(3).toInt());
|
|
||||||
m_config->ch3OutSlider->setMinimum(field->getValue(3).toInt());
|
|
||||||
m_config->ch4OutMin->setValue(field->getValue(4).toInt());
|
|
||||||
m_config->ch4OutSlider->setMinimum(field->getValue(4).toInt());
|
|
||||||
m_config->ch5OutMin->setValue(field->getValue(5).toInt());
|
|
||||||
m_config->ch5OutSlider->setMinimum(field->getValue(5).toInt());
|
|
||||||
m_config->ch6OutMin->setValue(field->getValue(6).toInt());
|
|
||||||
m_config->ch6OutSlider->setMinimum(field->getValue(6).toInt());
|
|
||||||
m_config->ch7OutMin->setValue(field->getValue(7).toInt());
|
|
||||||
m_config->ch7OutSlider->setMinimum(field->getValue(7).toInt());
|
|
||||||
|
|
||||||
field = obj->getField(QString("ChannelMax"));
|
field = obj->getField(QString("ChannelMax"));
|
||||||
m_config->ch0OutMax->setValue(field->getValue(0).toInt());
|
int maxValue = field->getValue(i).toInt();
|
||||||
m_config->ch0OutSlider->setMaximum(field->getValue(0).toInt());
|
outMax[i]->setValue(maxValue);
|
||||||
m_config->ch1OutMax->setValue(field->getValue(1).toInt());
|
if (maxValue>minValue) {
|
||||||
m_config->ch1OutSlider->setMaximum(field->getValue(1).toInt());
|
outSliders[i]->setMinimum(minValue);
|
||||||
m_config->ch2OutMax->setValue(field->getValue(2).toInt());
|
outSliders[i]->setMaximum(maxValue);
|
||||||
m_config->ch2OutSlider->setMaximum(field->getValue(2).toInt());
|
reversals[i]->setChecked(false);
|
||||||
m_config->ch3OutMax->setValue(field->getValue(3).toInt());
|
} else {
|
||||||
m_config->ch3OutSlider->setMaximum(field->getValue(3).toInt());
|
outSliders[i]->setMinimum(maxValue);
|
||||||
m_config->ch4OutMax->setValue(field->getValue(4).toInt());
|
outSliders[i]->setMaximum(minValue);
|
||||||
m_config->ch4OutSlider->setMaximum(field->getValue(4).toInt());
|
reversals[i]->setChecked(true);
|
||||||
m_config->ch5OutMax->setValue(field->getValue(5).toInt());
|
}
|
||||||
m_config->ch5OutSlider->setMaximum(field->getValue(5).toInt());
|
}
|
||||||
m_config->ch6OutMax->setValue(field->getValue(6).toInt());
|
|
||||||
m_config->ch6OutSlider->setMaximum(field->getValue(6).toInt());
|
|
||||||
m_config->ch7OutMax->setValue(field->getValue(7).toInt());
|
|
||||||
m_config->ch7OutSlider->setMaximum(field->getValue(7).toInt());
|
|
||||||
|
|
||||||
field = obj->getField(QString("ChannelNeutral"));
|
field = obj->getField(QString("ChannelNeutral"));
|
||||||
m_config->ch0OutSlider->setValue(field->getValue(0).toInt());
|
for (int i=0; i<8; i++) {
|
||||||
m_config->ch1OutSlider->setValue(field->getValue(1).toInt());
|
int value = field->getValue(i).toInt();
|
||||||
m_config->ch2OutSlider->setValue(field->getValue(2).toInt());
|
outSliders[i]->setValue(value);
|
||||||
m_config->ch3OutSlider->setValue(field->getValue(3).toInt());
|
outLabels[i]->setText(QString::number(value));
|
||||||
m_config->ch4OutSlider->setValue(field->getValue(4).toInt());
|
}
|
||||||
m_config->ch5OutSlider->setValue(field->getValue(5).toInt());
|
|
||||||
m_config->ch6OutSlider->setValue(field->getValue(6).toInt());
|
|
||||||
m_config->ch7OutSlider->setValue(field->getValue(7).toInt());
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -316,34 +328,19 @@ void ConfigServoWidget::sendRCOutputUpdate()
|
|||||||
|
|
||||||
// Now send channel ranges:
|
// Now send channel ranges:
|
||||||
UAVObjectField * field = obj->getField(QString("ChannelMax"));
|
UAVObjectField * field = obj->getField(QString("ChannelMax"));
|
||||||
field->setValue(m_config->ch0OutMax->value(),0);
|
for (int i = 0; i < 8; i++) {
|
||||||
field->setValue(m_config->ch1OutMax->value(),1);
|
field->setValue(outMax[i]->value(),i);
|
||||||
field->setValue(m_config->ch2OutMax->value(),2);
|
}
|
||||||
field->setValue(m_config->ch3OutMax->value(),3);
|
|
||||||
field->setValue(m_config->ch4OutMax->value(),4);
|
|
||||||
field->setValue(m_config->ch5OutMax->value(),5);
|
|
||||||
field->setValue(m_config->ch6OutMax->value(),6);
|
|
||||||
field->setValue(m_config->ch7OutMax->value(),7);
|
|
||||||
|
|
||||||
field = obj->getField(QString("ChannelMin"));
|
field = obj->getField(QString("ChannelMin"));
|
||||||
field->setValue(m_config->ch0OutMin->value(),0);
|
for (int i = 0; i < 8; i++) {
|
||||||
field->setValue(m_config->ch1OutMin->value(),1);
|
field->setValue(outMin[i]->value(),i);
|
||||||
field->setValue(m_config->ch2OutMin->value(),2);
|
}
|
||||||
field->setValue(m_config->ch3OutMin->value(),3);
|
|
||||||
field->setValue(m_config->ch4OutMin->value(),4);
|
|
||||||
field->setValue(m_config->ch5OutMin->value(),5);
|
|
||||||
field->setValue(m_config->ch6OutMin->value(),6);
|
|
||||||
field->setValue(m_config->ch7OutMin->value(),7);
|
|
||||||
|
|
||||||
field = obj->getField(QString("ChannelNeutral"));
|
field = obj->getField(QString("ChannelNeutral"));
|
||||||
field->setValue(m_config->ch0OutSlider->value(),0);
|
for (int i = 0; i < 8; i++) {
|
||||||
field->setValue(m_config->ch1OutSlider->value(),1);
|
field->setValue(outSliders[i]->value(),i);
|
||||||
field->setValue(m_config->ch2OutSlider->value(),2);
|
}
|
||||||
field->setValue(m_config->ch3OutSlider->value(),3);
|
|
||||||
field->setValue(m_config->ch4OutSlider->value(),4);
|
|
||||||
field->setValue(m_config->ch5OutSlider->value(),5);
|
|
||||||
field->setValue(m_config->ch6OutSlider->value(),6);
|
|
||||||
field->setValue(m_config->ch7OutSlider->value(),7);
|
|
||||||
|
|
||||||
field = obj->getField(QString("ChannelUpdateFreq"));
|
field = obj->getField(QString("ChannelUpdateFreq"));
|
||||||
field->setValue(m_config->outputRate1->value(),0);
|
field->setValue(m_config->outputRate1->value(),0);
|
||||||
@ -420,116 +417,71 @@ void ConfigServoWidget::saveRCOutputObject()
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Sets the minimum/maximem value of the channel 0 to seven output sliders.
|
Sets the minimum/maximum value of the channel 0 to seven output sliders.
|
||||||
Have to do it here because setMinimum is not a slot.
|
Have to do it here because setMinimum is not a slot.
|
||||||
|
|
||||||
One added trik: if the slider is at either its max or its min when the value
|
One added trick: if the slider is at either its max or its min when the value
|
||||||
is changed, then keep it on the max/min.
|
is changed, then keep it on the max/min.
|
||||||
*/
|
*/
|
||||||
void ConfigServoWidget::setch0OutRange()
|
void ConfigServoWidget::setChOutRange()
|
||||||
{
|
{
|
||||||
QSlider *slider = m_config->ch0OutSlider;
|
QSpinBox *spinbox = (QSpinBox*)QObject::sender();
|
||||||
|
int index = outMin.indexOf(spinbox); // This is the channel number
|
||||||
|
if (index < 0)
|
||||||
|
index = outMax.indexOf(spinbox); // We can't know if the signal came from min or max
|
||||||
|
QSlider *slider = outSliders[index];
|
||||||
int oldMini = slider->minimum();
|
int oldMini = slider->minimum();
|
||||||
int oldMaxi = slider->maximum();
|
int oldMaxi = slider->maximum();
|
||||||
slider->setRange(m_config->ch0OutMin->value(),
|
if (outMin[index]->value()<outMax[index]->value()) {
|
||||||
m_config->ch0OutMax->value());
|
slider->setRange(outMin[index]->value(),
|
||||||
|
outMax[index]->value());
|
||||||
|
reversals[index]->setChecked(false);
|
||||||
|
} else {
|
||||||
|
slider->setRange(outMax[index]->value(),
|
||||||
|
outMin[index]->value());
|
||||||
|
reversals[index]->setChecked(true);
|
||||||
|
}
|
||||||
if (slider->value()==oldMini)
|
if (slider->value()==oldMini)
|
||||||
slider->setValue(slider->minimum());
|
slider->setValue(slider->minimum());
|
||||||
|
|
||||||
if (slider->value()==oldMaxi)
|
if (slider->value()==oldMaxi)
|
||||||
slider->setValue(slider->maximum());
|
slider->setValue(slider->maximum());
|
||||||
}
|
}
|
||||||
void ConfigServoWidget::setch1OutRange()
|
|
||||||
{
|
|
||||||
QSlider *slider = m_config->ch1OutSlider;
|
|
||||||
int oldMini = slider->minimum();
|
|
||||||
int oldMaxi = slider->maximum();
|
|
||||||
slider->setRange(m_config->ch1OutMin->value(),
|
|
||||||
m_config->ch1OutMax->value());
|
|
||||||
if (slider->value()==oldMini)
|
|
||||||
slider->setValue(slider->minimum());
|
|
||||||
|
|
||||||
if (slider->value()==oldMaxi)
|
/**
|
||||||
slider->setValue(slider->maximum());
|
Reverses the channel when the checkbox is clicked
|
||||||
}
|
*/
|
||||||
void ConfigServoWidget::setch2OutRange()
|
void ConfigServoWidget::reverseChannel(bool state)
|
||||||
{
|
{
|
||||||
QSlider *slider = m_config->ch2OutSlider;
|
QCheckBox *checkbox = (QCheckBox*)QObject::sender();
|
||||||
int oldMini = slider->minimum();
|
int index = reversals.indexOf(checkbox); // This is the channel number
|
||||||
int oldMaxi = slider->maximum();
|
|
||||||
slider->setRange(m_config->ch2OutMin->value(),
|
|
||||||
m_config->ch2OutMax->value());
|
|
||||||
if (slider->value()==oldMini)
|
|
||||||
slider->setValue(slider->minimum());
|
|
||||||
|
|
||||||
if (slider->value()==oldMaxi)
|
// Sanity check: if state became true, make sure the Maxvalue was higher than Minvalue
|
||||||
slider->setValue(slider->maximum());
|
// the situations below can happen!
|
||||||
}
|
if (state && (outMax[index]->value()<outMin[index]->value()))
|
||||||
void ConfigServoWidget::setch3OutRange()
|
return;
|
||||||
{
|
if (!state && (outMax[index]->value()>outMin[index]->value()))
|
||||||
QSlider *slider = m_config->ch3OutSlider;
|
return;
|
||||||
int oldMini = slider->minimum();
|
|
||||||
int oldMaxi = slider->maximum();
|
|
||||||
slider->setRange(m_config->ch3OutMin->value(),
|
|
||||||
m_config->ch3OutMax->value());
|
|
||||||
if (slider->value()==oldMini)
|
|
||||||
slider->setValue(slider->minimum());
|
|
||||||
|
|
||||||
if (slider->value()==oldMaxi)
|
// Now, swap the min & max values (only on the spinboxes, the slider
|
||||||
slider->setValue(slider->maximum());
|
// does not change!
|
||||||
}
|
int temp = outMax[index]->value();
|
||||||
void ConfigServoWidget::setch4OutRange()
|
outMax[index]->setValue(outMin[index]->value());
|
||||||
{
|
outMin[index]->setValue(temp);
|
||||||
QSlider *slider = m_config->ch4OutSlider;
|
|
||||||
int oldMini = slider->minimum();
|
|
||||||
int oldMaxi = slider->maximum();
|
|
||||||
slider->setRange(m_config->ch4OutMin->value(),
|
|
||||||
m_config->ch4OutMax->value());
|
|
||||||
if (slider->value()==oldMini)
|
|
||||||
slider->setValue(slider->minimum());
|
|
||||||
|
|
||||||
if (slider->value()==oldMaxi)
|
// Also update the channel value
|
||||||
slider->setValue(slider->maximum());
|
// This is a trick to force the slider to update its value and
|
||||||
}
|
// emit the right signal itself, because our sendChannelTest(int) method
|
||||||
void ConfigServoWidget::setch5OutRange()
|
// relies on the object sender's identity.
|
||||||
{
|
if (outSliders[index]->value()<outSliders[index]->maximum()) {
|
||||||
QSlider *slider = m_config->ch5OutSlider;
|
outSliders[index]->setValue(outSliders[index]->value()+1);
|
||||||
int oldMini = slider->minimum();
|
outSliders[index]->setValue(outSliders[index]->value()-1);
|
||||||
int oldMaxi = slider->maximum();
|
} else {
|
||||||
slider->setRange(m_config->ch5OutMin->value(),
|
outSliders[index]->setValue(outSliders[index]->value()-1);
|
||||||
m_config->ch5OutMax->value());
|
outSliders[index]->setValue(outSliders[index]->value()+1);
|
||||||
if (slider->value()==oldMini)
|
}
|
||||||
slider->setValue(slider->minimum());
|
|
||||||
|
|
||||||
if (slider->value()==oldMaxi)
|
|
||||||
slider->setValue(slider->maximum());
|
|
||||||
}
|
}
|
||||||
void ConfigServoWidget::setch6OutRange()
|
|
||||||
{
|
|
||||||
QSlider *slider = m_config->ch6OutSlider;
|
|
||||||
int oldMini = slider->minimum();
|
|
||||||
int oldMaxi = slider->maximum();
|
|
||||||
slider->setRange(m_config->ch6OutMin->value(),
|
|
||||||
m_config->ch6OutMax->value());
|
|
||||||
if (slider->value()==oldMini)
|
|
||||||
slider->setValue(slider->minimum());
|
|
||||||
|
|
||||||
if (slider->value()==oldMaxi)
|
|
||||||
slider->setValue(slider->maximum());
|
|
||||||
}
|
|
||||||
void ConfigServoWidget::setch7OutRange()
|
|
||||||
{
|
|
||||||
QSlider *slider = m_config->ch7OutSlider;
|
|
||||||
int oldMini = slider->minimum();
|
|
||||||
int oldMaxi = slider->maximum();
|
|
||||||
slider->setRange(m_config->ch7OutMin->value(),
|
|
||||||
m_config->ch7OutMax->value());
|
|
||||||
if (slider->value()==oldMini)
|
|
||||||
slider->setValue(slider->minimum());
|
|
||||||
|
|
||||||
if (slider->value()==oldMaxi)
|
|
||||||
slider->setValue(slider->maximum());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,6 +54,12 @@ private:
|
|||||||
void assignOutputChannel(UAVDataObject *obj, UAVObjectField *field, QString str);
|
void assignOutputChannel(UAVDataObject *obj, UAVObjectField *field, QString str);
|
||||||
int mccDataRate;
|
int mccDataRate;
|
||||||
UAVObject::Metadata accInitialData;
|
UAVObject::Metadata accInitialData;
|
||||||
|
QList<QSlider*> outSliders;
|
||||||
|
QList<QSpinBox*> outMin;
|
||||||
|
QList<QSpinBox*> outMax;
|
||||||
|
QList<QCheckBox*> reversals;
|
||||||
|
QList<QLabel*> outLabels;
|
||||||
|
|
||||||
|
|
||||||
bool firstUpdate;
|
bool firstUpdate;
|
||||||
|
|
||||||
@ -67,16 +73,8 @@ private:
|
|||||||
void saveRCOutputObject();
|
void saveRCOutputObject();
|
||||||
void runChannelTests(bool state);
|
void runChannelTests(bool state);
|
||||||
void sendChannelTest(int value);
|
void sendChannelTest(int value);
|
||||||
|
void setChOutRange();
|
||||||
|
void reverseChannel(bool state);
|
||||||
void setch0OutRange();
|
|
||||||
void setch1OutRange();
|
|
||||||
void setch2OutRange();
|
|
||||||
void setch3OutRange();
|
|
||||||
void setch4OutRange();
|
|
||||||
void setch5OutRange();
|
|
||||||
void setch6OutRange();
|
|
||||||
void setch7OutRange();
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tab">
|
<widget class="QWidget" name="tab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@ -55,32 +55,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>2000</string>
|
<string>2000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCheckBox" name="ch2Rev">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>160</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>21</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>FreeSans</family>
|
|
||||||
<pointsize>8</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QSlider" name="ch4Slider">
|
<widget class="QSlider" name="ch4Slider">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -145,32 +119,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>1000</string>
|
<string>1000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCheckBox" name="ch7Rev">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>510</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>21</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>FreeSans</family>
|
|
||||||
<pointsize>8</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="ch6Min">
|
<widget class="QLabel" name="ch6Min">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -320,32 +268,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>2000</string>
|
<string>2000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCheckBox" name="ch0Rev">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>20</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>21</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>FreeSans</family>
|
|
||||||
<pointsize>8</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="ch5Max">
|
<widget class="QLabel" name="ch5Max">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -384,32 +306,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>2000</string>
|
<string>2000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCheckBox" name="ch1Rev">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>90</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>21</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>FreeSans</family>
|
|
||||||
<pointsize>8</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QPushButton" name="saveRCInputToSD">
|
<widget class="QPushButton" name="saveRCInputToSD">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -526,32 +422,6 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCheckBox" name="ch5Rev">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>370</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>21</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>FreeSans</family>
|
|
||||||
<pointsize>8</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QSlider" name="ch1Slider">
|
<widget class="QSlider" name="ch1Slider">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -571,32 +441,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCheckBox" name="ch6Rev">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>440</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>21</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>FreeSans</family>
|
|
||||||
<pointsize>8</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="ch3Min">
|
<widget class="QLabel" name="ch3Min">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -825,32 +669,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>2000</string>
|
<string>2000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCheckBox" name="ch4Rev">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>300</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>21</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>FreeSans</family>
|
|
||||||
<pointsize>8</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QLabel" name="ch0Min">
|
<widget class="QLabel" name="ch0Min">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -915,32 +733,6 @@ p, li { white-space: pre-wrap; }
|
|||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QCheckBox" name="ch3Rev">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>230</x>
|
|
||||||
<y>140</y>
|
|
||||||
<width>21</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="font">
|
|
||||||
<font>
|
|
||||||
<family>FreeSans</family>
|
|
||||||
<pointsize>8</pointsize>
|
|
||||||
</font>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
|
||||||
p, li { white-space: pre-wrap; }
|
|
||||||
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
|
||||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QComboBox" name="ch1Assign">
|
<widget class="QComboBox" name="ch1Assign">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
@ -1994,7 +1786,7 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_6">
|
<widget class="QLabel" name="ch0OutValue">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
@ -2010,7 +1802,7 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<string>0000</string>
|
<string>0000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_7">
|
<widget class="QLabel" name="ch1OutValue">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
@ -2023,7 +1815,7 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<string>0000</string>
|
<string>0000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_8">
|
<widget class="QLabel" name="ch2OutValue">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
@ -2036,7 +1828,7 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<string>0000</string>
|
<string>0000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_9">
|
<widget class="QLabel" name="ch3OutValue">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
@ -2049,7 +1841,7 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<string>0000</string>
|
<string>0000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_10">
|
<widget class="QLabel" name="ch4OutValue">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
@ -2062,7 +1854,7 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<string>0000</string>
|
<string>0000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_11">
|
<widget class="QLabel" name="ch5OutValue">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
@ -2075,7 +1867,7 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<string>0000</string>
|
<string>0000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_12">
|
<widget class="QLabel" name="ch6OutValue">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
@ -2088,7 +1880,7 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<string>0000</string>
|
<string>0000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QLabel" name="label_13">
|
<widget class="QLabel" name="ch7OutValue">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>520</x>
|
<x>520</x>
|
||||||
@ -2101,6 +1893,227 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
<string>0000</string>
|
<string>0000</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
<widget class="QCheckBox" name="ch5Rev">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>220</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>22</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>FreeSans</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QCheckBox" name="ch0Rev">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>70</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>22</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>FreeSans</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QCheckBox" name="ch2Rev">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>130</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>22</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>FreeSans</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QCheckBox" name="ch6Rev">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>250</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>22</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>FreeSans</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QCheckBox" name="ch7Rev">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>280</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>22</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>FreeSans</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QCheckBox" name="ch1Rev">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>100</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>22</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>FreeSans</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QCheckBox" name="ch3Rev">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>160</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>22</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>FreeSans</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QCheckBox" name="ch4Rev">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>190</y>
|
||||||
|
<width>21</width>
|
||||||
|
<height>22</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<family>FreeSans</family>
|
||||||
|
<pointsize>8</pointsize>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||||
|
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'FreeSans'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Check to invert the channel.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>560</x>
|
||||||
|
<y>50</y>
|
||||||
|
<width>31</width>
|
||||||
|
<height>17</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Rev.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
</widget>
|
</widget>
|
||||||
@ -2362,133 +2375,5 @@ Be sure to set the Neutral position on all sliders before sending!</string>
|
|||||||
</hint>
|
</hint>
|
||||||
</hints>
|
</hints>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
|
||||||
<sender>ch0OutSlider</sender>
|
|
||||||
<signal>valueChanged(int)</signal>
|
|
||||||
<receiver>label_6</receiver>
|
|
||||||
<slot>setNum(int)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>419</x>
|
|
||||||
<y>121</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>546</x>
|
|
||||||
<y>120</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>ch1OutSlider</sender>
|
|
||||||
<signal>valueChanged(int)</signal>
|
|
||||||
<receiver>label_7</receiver>
|
|
||||||
<slot>setNum(int)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>377</x>
|
|
||||||
<y>151</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>535</x>
|
|
||||||
<y>148</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>ch2OutSlider</sender>
|
|
||||||
<signal>valueChanged(int)</signal>
|
|
||||||
<receiver>label_8</receiver>
|
|
||||||
<slot>setNum(int)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>347</x>
|
|
||||||
<y>175</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>554</x>
|
|
||||||
<y>179</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>ch3OutSlider</sender>
|
|
||||||
<signal>valueChanged(int)</signal>
|
|
||||||
<receiver>label_9</receiver>
|
|
||||||
<slot>setNum(int)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>348</x>
|
|
||||||
<y>207</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>543</x>
|
|
||||||
<y>208</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>ch4OutSlider</sender>
|
|
||||||
<signal>valueChanged(int)</signal>
|
|
||||||
<receiver>label_10</receiver>
|
|
||||||
<slot>setNum(int)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>356</x>
|
|
||||||
<y>242</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>535</x>
|
|
||||||
<y>242</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>ch5OutSlider</sender>
|
|
||||||
<signal>valueChanged(int)</signal>
|
|
||||||
<receiver>label_11</receiver>
|
|
||||||
<slot>setNum(int)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>318</x>
|
|
||||||
<y>275</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>546</x>
|
|
||||||
<y>271</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>ch6OutSlider</sender>
|
|
||||||
<signal>valueChanged(int)</signal>
|
|
||||||
<receiver>label_12</receiver>
|
|
||||||
<slot>setNum(int)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>358</x>
|
|
||||||
<y>303</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>560</x>
|
|
||||||
<y>302</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>ch7OutSlider</sender>
|
|
||||||
<signal>valueChanged(int)</signal>
|
|
||||||
<receiver>label_13</receiver>
|
|
||||||
<slot>setNum(int)</slot>
|
|
||||||
<hints>
|
|
||||||
<hint type="sourcelabel">
|
|
||||||
<x>368</x>
|
|
||||||
<y>325</y>
|
|
||||||
</hint>
|
|
||||||
<hint type="destinationlabel">
|
|
||||||
<x>560</x>
|
|
||||||
<y>327</y>
|
|
||||||
</hint>
|
|
||||||
</hints>
|
|
||||||
</connection>
|
|
||||||
</connections>
|
</connections>
|
||||||
</ui>
|
</ui>
|
||||||
|
Loading…
Reference in New Issue
Block a user