Commit fad0c692 authored by Michael Carpenter's avatar Michael Carpenter

Implementation of Camera Gimbal configuration

parent 7f13132c
......@@ -115,6 +115,10 @@
<file>files/images/devices/BR-0004-03-2.jpg</file>
<file>files/images/devices/BR-0016-01-3T.jpg</file>
<file>files/images/devices/MinimOSD.jpg</file>
<file>files/images/devices/cameraGimalPitch1.png</file>
<file>files/images/devices/cameraGimalRoll1.png</file>
<file>files/images/devices/cameraGimalYaw.png</file>
<file>files/images/devices/Shutter.png</file>
</qresource>
<qresource prefix="/general">
<file alias="vera.ttf">files/styles/Vera.ttf</file>
......
......@@ -1017,6 +1017,11 @@ void QGCParamWidget::setParameter(int component, QString parameterName, QVariant
statusLabel->setText(tr("REJ. %1 > max").arg(value.toDouble()));
return;
}
if (parameters.value(component)->value(parameterName) == value)
{
qDebug() << "Value not changed, not sending:" << parameterName << value;
return;
}
switch (parameters.value(component)->value(parameterName).type())
{
......
#include "CameraGimbalConfig.h"
#include <QMessageBox>
#include <QDebug>
CameraGimbalConfig::CameraGimbalConfig(QWidget *parent) : AP2ConfigWidget(parent)
{
ui.setupUi(this);
ui.tiltChannelComboBox->addItem("Disable");
ui.tiltChannelComboBox->addItem("RC5");
ui.tiltChannelComboBox->addItem("RC6");
ui.tiltChannelComboBox->addItem("RC7");
ui.tiltChannelComboBox->addItem("RC8");
ui.tiltChannelComboBox->addItem("RC10");
ui.tiltChannelComboBox->addItem("RC11");
ui.tiltInputChannelComboBox->addItem("Disable");
ui.tiltInputChannelComboBox->addItem("RC5");
ui.tiltInputChannelComboBox->addItem("RC6");
ui.tiltInputChannelComboBox->addItem("RC7");
ui.tiltInputChannelComboBox->addItem("RC8");
ui.rollChannelComboBox->addItem("Disable");
ui.rollChannelComboBox->addItem("RC5");
ui.rollChannelComboBox->addItem("RC6");
ui.rollChannelComboBox->addItem("RC7");
ui.rollChannelComboBox->addItem("RC8");
ui.rollChannelComboBox->addItem("RC10");
ui.rollChannelComboBox->addItem("RC11");
ui.rollInputChannelComboBox->addItem("Disable");
ui.rollInputChannelComboBox->addItem("RC5");
ui.rollInputChannelComboBox->addItem("RC6");
ui.rollInputChannelComboBox->addItem("RC7");
ui.rollInputChannelComboBox->addItem("RC8");
ui.panChannelComboBox->addItem("Disable");
ui.panChannelComboBox->addItem("RC5");
ui.panChannelComboBox->addItem("RC6");
ui.panChannelComboBox->addItem("RC7");
ui.panChannelComboBox->addItem("RC8");
ui.panChannelComboBox->addItem("RC10");
ui.panChannelComboBox->addItem("RC11");
ui.panInputChannelComboBox->addItem("Disable");
ui.panInputChannelComboBox->addItem("RC5");
ui.panInputChannelComboBox->addItem("RC6");
ui.panInputChannelComboBox->addItem("RC7");
ui.panInputChannelComboBox->addItem("RC8");
ui.shutterChannelComboBox->addItem("Disable");
ui.shutterChannelComboBox->addItem("Relay");
ui.shutterChannelComboBox->addItem("Transistor");
ui.shutterChannelComboBox->addItem("RC5");
ui.shutterChannelComboBox->addItem("RC6");
ui.shutterChannelComboBox->addItem("RC7");
ui.shutterChannelComboBox->addItem("RC8");
ui.shutterChannelComboBox->addItem("RC10");
ui.shutterChannelComboBox->addItem("RC11");
connect(ui.tiltServoMinSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.tiltServoMaxSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.tiltAngleMinSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.tiltAngleMaxSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.tiltChannelComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(updateTilt()));
connect(ui.tiltInputChannelComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(updateTilt()));
connect(ui.tiltReverseCheckBox,SIGNAL(clicked(bool)),this,SLOT(updateTilt()));
connect(ui.tiltStabilizeCheckBox,SIGNAL(clicked(bool)),this,SLOT(updateTilt()));
connect(ui.rollServoMinSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.rollServoMaxSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.rollAngleMinSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.rollAngleMaxSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.rollChannelComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(updateTilt()));
connect(ui.rollInputChannelComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(updateTilt()));
connect(ui.rollReverseCheckBox,SIGNAL(clicked(bool)),this,SLOT(updateTilt()));
connect(ui.rollStabilizeCheckBox,SIGNAL(clicked(bool)),this,SLOT(updateTilt()));
connect(ui.panServoMinSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.panServoMaxSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.panAngleMinSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.panAngleMaxSpinBox,SIGNAL(editingFinished()),this,SLOT(updateTilt()));
connect(ui.panChannelComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(updateTilt()));
connect(ui.panInputChannelComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(updateTilt()));
connect(ui.panReverseCheckBox,SIGNAL(clicked(bool)),this,SLOT(updateTilt()));
connect(ui.panStabilizeCheckBox,SIGNAL(clicked(bool)),this,SLOT(updateTilt()));
connect(ui.shutterServoMinSpinBox,SIGNAL(editingFinished()),this,SLOT(updateShutter()));
connect(ui.shutterServoMaxSpinBox,SIGNAL(editingFinished()),this,SLOT(updateShutter()));
connect(ui.shutterPushedSpinBox,SIGNAL(editingFinished()),this,SLOT(updateShutter()));
connect(ui.shutterNotPushedSpinBox,SIGNAL(editingFinished()),this,SLOT(updateShutter()));
connect(ui.shutterDurationSpinBox,SIGNAL(editingFinished()),this,SLOT(updateShutter()));
connect(ui.shutterChannelComboBox,SIGNAL(currentIndexChanged(int)),this,SLOT(updateShutter()));
}
void CameraGimbalConfig::updateTilt()
{
if (!m_uas)
{
QMessageBox::information(0,tr("Error"),tr("Please connect to a MAV before attempting to set configuration"));
return;
}
if (ui.tiltChannelComboBox->currentIndex() == 0)
{
//Disabled
return;
}
for (QMap<int,QString>::const_iterator i = m_uas->getComponents().constBegin(); i != m_uas->getComponents().constEnd();i++)
{
qDebug() << "Component:" << i.key() << "Name:" << i.value();
}
m_uas->getParamManager()->setParameter(1,ui.tiltChannelComboBox->currentText() + "_FUNCTION",7);
m_uas->getParamManager()->setParameter(1,ui.tiltChannelComboBox->currentText() + "_MIN",ui.tiltServoMinSpinBox->value());
m_uas->getParamManager()->setParameter(1,ui.tiltChannelComboBox->currentText() + "_MAX",ui.tiltServoMaxSpinBox->value());
m_uas->getParamManager()->setParameter(1,"MNT_ANGMIN_TIL",ui.tiltAngleMinSpinBox->value());
m_uas->getParamManager()->setParameter(1,"MNT_ANGMAX_TIL",ui.tiltAngleMaxSpinBox->value());
m_uas->getParamManager()->setParameter(1,ui.tiltChannelComboBox->currentText() + "_REV",(ui.tiltReverseCheckBox->isChecked() ? 1 : 0));
if (ui.tiltInputChannelComboBox->currentIndex() == 0)
{
m_uas->getParamManager()->setParameter(1,"MNT_RC_IN_TILT",0);
}
else
{
m_uas->getParamManager()->setParameter(1,"MNT_RC_IN_TILT",ui.tiltInputChannelComboBox->currentIndex()+4);
}
}
CameraGimbalConfig::CameraGimbalConfig(QWidget *parent) : QWidget(parent)
void CameraGimbalConfig::updateRoll()
{
ui.setupUi(this);
if (!m_uas)
{
QMessageBox::information(0,tr("Error"),tr("Please connect to a MAV before attempting to set configuration"));
return;
}
m_uas->getParamManager()->setParameter(1,ui.rollChannelComboBox->currentText() + "_FUNCTION",8);
m_uas->getParamManager()->setParameter(1,ui.rollChannelComboBox->currentText() + "_MIN",ui.rollServoMinSpinBox->value());
m_uas->getParamManager()->setParameter(1,ui.rollChannelComboBox->currentText() + "_MAX",ui.rollServoMaxSpinBox->value());
m_uas->getParamManager()->setParameter(1,"MNT_ANGMIN_ROL",ui.rollAngleMinSpinBox->value());
m_uas->getParamManager()->setParameter(1,"MNT_ANGMAX_ROL",ui.rollAngleMaxSpinBox->value());
m_uas->getParamManager()->setParameter(1,ui.rollChannelComboBox->currentText() + "_REV",(ui.rollReverseCheckBox->isChecked() ? 1 : 0));
if (ui.rollInputChannelComboBox->currentIndex() == 0)
{
m_uas->getParamManager()->setParameter(1,"MNT_RC_IN_ROLL",0);
}
else
{
m_uas->getParamManager()->setParameter(1,"MNT_RC_IN_ROLL",ui.rollInputChannelComboBox->currentIndex()+4);
}
}
void CameraGimbalConfig::updatePan()
{
if (!m_uas)
{
QMessageBox::information(0,tr("Error"),tr("Please connect to a MAV before attempting to set configuration"));
return;
}
m_uas->getParamManager()->setParameter(1,ui.panChannelComboBox->currentText() + "_FUNCTION",6);
m_uas->getParamManager()->setParameter(1,ui.panChannelComboBox->currentText() + "_MIN",ui.panServoMinSpinBox->value());
m_uas->getParamManager()->setParameter(1,ui.panChannelComboBox->currentText() + "_MAX",ui.panServoMaxSpinBox->value());
m_uas->getParamManager()->setParameter(1,"MNT_ANGMIN_PAN",ui.panAngleMinSpinBox->value());
m_uas->getParamManager()->setParameter(1,"MNT_ANGMAX_PAN",ui.panAngleMaxSpinBox->value());
m_uas->getParamManager()->setParameter(1,ui.panChannelComboBox->currentText() + "_REV",(ui.panReverseCheckBox->isChecked() ? 1 : 0));
if (ui.panInputChannelComboBox->currentIndex() == 0)
{
m_uas->getParamManager()->setParameter(1,"MNT_RC_IN_PAN",0);
}
else
{
m_uas->getParamManager()->setParameter(1,"MNT_RC_IN_PAN",ui.panInputChannelComboBox->currentIndex()+4);
}
}
void CameraGimbalConfig::updateShutter()
{
if (!m_uas)
{
QMessageBox::information(0,tr("Error"),tr("Please connect to a MAV before attempting to set configuration"));
return;
}
if (ui.shutterChannelComboBox->currentIndex() == 0) //Disabled
{
m_uas->getParamManager()->setParameter(1,"CAM_TRIGG_TYPE",0);
}
else if (ui.shutterChannelComboBox->currentIndex() == 1) //Relay
{
m_uas->getParamManager()->setParameter(1,"CAM_TRIGG_TYPE",1);
}
else if (ui.shutterChannelComboBox->currentIndex() == 2) //Transistor
{
m_uas->getParamManager()->setParameter(1,"CAM_TRIGG_TYPE",4);
}
else
{
m_uas->getParamManager()->setParameter(1,ui.shutterChannelComboBox->currentText() + "_FUNCTION",10);
m_uas->getParamManager()->setParameter(1,"CAM_TRIGG_TYPE",0);
}
m_uas->getParamManager()->setParameter(1,ui.shutterChannelComboBox->currentText() + "_MIN",ui.shutterServoMinSpinBox->value());
m_uas->getParamManager()->setParameter(1,ui.shutterChannelComboBox->currentText() + "_MAX",ui.shutterServoMaxSpinBox->value());
m_uas->getParamManager()->setParameter(1,"CAM_SERVO_ON",ui.shutterPushedSpinBox->value());
m_uas->getParamManager()->setParameter(1,"CAM_SERVO_OFF",ui.shutterNotPushedSpinBox->value());
m_uas->getParamManager()->setParameter(1,"CAM_DURATION",ui.shutterDurationSpinBox->value());
}
CameraGimbalConfig::~CameraGimbalConfig()
{
}
void CameraGimbalConfig::parameterChanged(int uas, int component, QString parameterName, QVariant value)
{
}
......@@ -2,15 +2,22 @@
#define CAMERAGIMBALCONFIG_H
#include <QWidget>
#include "AP2ConfigWidget.h"
#include "ui_CameraGimbalConfig.h"
class CameraGimbalConfig : public QWidget
class CameraGimbalConfig : public AP2ConfigWidget
{
Q_OBJECT
public:
explicit CameraGimbalConfig(QWidget *parent = 0);
~CameraGimbalConfig();
private slots:
void parameterChanged(int uas, int component, QString parameterName, QVariant value);
void updateTilt();
void updateRoll();
void updatePan();
void updateShutter();
private:
Ui::CameraGimbalConfig ui;
......
......@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
<width>959</width>
<height>813</height>
</rect>
</property>
<property name="windowTitle">
......@@ -29,7 +29,701 @@
<bool>false</bool>
</property>
</widget>
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>30</x>
<y>60</y>
<width>541</width>
<height>151</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="5">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Min</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="5">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Max</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="7">
<widget class="QLabel" name="label_9">
<property name="text">
<string>&lt;h3&gt;Input Ch&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QCheckBox" name="tiltReverseCheckBox">
<property name="text">
<string>Reverse</string>
</property>
</widget>
</item>
<item row="1" column="5" colspan="2">
<widget class="QLabel" name="label_8">
<property name="text">
<string>&lt;h3&gt;Angle Limits&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="1" column="3" colspan="2">
<widget class="QLabel" name="label_7">
<property name="text">
<string>&lt;h3&gt;Servo Limits&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Max</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Min</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="tiltChannelComboBox"/>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_6">
<property name="text">
<string>&lt;h2&gt;Tilt&lt;/h2&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="3" colspan="2">
<widget class="QCheckBox" name="tiltStabilizeCheckBox">
<property name="text">
<string>CheckBox</string>
</property>
</widget>
</item>
<item row="1" column="1" rowspan="4" colspan="2">
<widget class="QLabel" name="label_2">
<property name="minimumSize">
<size>
<width>250</width>
<height>120</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>250</width>
<height>120</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../../qgroundcontrol.qrc">:/files/images/devices/cameraGimalPitch1.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QSpinBox" name="tiltServoMinSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QSpinBox" name="tiltServoMaxSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
<item row="2" column="6">
<widget class="QSpinBox" name="tiltAngleMinSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="3" column="6">
<widget class="QSpinBox" name="tiltAngleMaxSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QComboBox" name="tiltInputChannelComboBox"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="gridLayoutWidget_2">
<property name="geometry">
<rect>
<x>30</x>
<y>230</y>
<width>541</width>
<height>149</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="5">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Min</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="5">
<widget class="QLabel" name="label_15">
<property name="text">
<string>Max</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QComboBox" name="rollInputChannelComboBox"/>
</item>
<item row="1" column="7">
<widget class="QLabel" name="label_16">
<property name="text">
<string>&lt;h3&gt;Input Ch&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QCheckBox" name="rollReverseCheckBox">
<property name="text">
<string>Reverse</string>
</property>
</widget>
</item>
<item row="1" column="5" colspan="2">
<widget class="QLabel" name="label_17">
<property name="text">
<string>&lt;h3&gt;Angle Limits&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="1" column="3" colspan="2">
<widget class="QLabel" name="label_18">
<property name="text">
<string>&lt;h3&gt;Servo Limits&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="label_19">
<property name="text">
<string>Max</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_20">
<property name="text">
<string>Min</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="rollChannelComboBox"/>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_21">
<property name="text">
<string>&lt;h2&gt;Roll&lt;/h2&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="3" colspan="2">
<widget class="QCheckBox" name="rollStabilizeCheckBox">
<property name="text">
<string>CheckBox</string>
</property>
</widget>
</item>
<item row="1" column="1" rowspan="4" colspan="2">
<widget class="QLabel" name="label_3">
<property name="minimumSize">
<size>
<width>250</width>
<height>120</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>250</width>
<height>120</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../../qgroundcontrol.qrc">:/files/images/devices/cameraGimalRoll1.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QSpinBox" name="rollServoMinSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QSpinBox" name="rollServoMaxSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
<item row="2" column="6">
<widget class="QSpinBox" name="rollAngleMinSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="3" column="6">
<widget class="QSpinBox" name="rollAngleMaxSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="gridLayoutWidget_3">
<property name="geometry">
<rect>
<x>30</x>
<y>390</y>
<width>541</width>
<height>149</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="2" column="5">
<widget class="QLabel" name="label_22">
<property name="text">
<string>Min</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="5">
<widget class="QLabel" name="label_23">
<property name="text">
<string>Max</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="7">
<widget class="QComboBox" name="panInputChannelComboBox"/>
</item>
<item row="1" column="7">
<widget class="QLabel" name="label_24">
<property name="text">
<string>&lt;h3&gt;Input Ch&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QCheckBox" name="panReverseCheckBox">
<property name="text">
<string>Reverse</string>
</property>
</widget>
</item>
<item row="1" column="5" colspan="2">
<widget class="QLabel" name="label_25">
<property name="text">
<string>&lt;h3&gt;Angle Limits&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="1" column="3" colspan="2">
<widget class="QLabel" name="label_26">
<property name="text">
<string>&lt;h3&gt;Servo Limits&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="label_27">
<property name="text">
<string>Max</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_28">
<property name="text">
<string>Min</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="panChannelComboBox"/>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_29">
<property name="text">
<string>&lt;h2&gt;Pan&lt;/h2&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="3" colspan="2">
<widget class="QCheckBox" name="panStabilizeCheckBox">
<property name="text">
<string>CheckBox</string>
</property>
</widget>
</item>
<item row="1" column="0" rowspan="4" colspan="3">
<widget class="QLabel" name="label_4">
<property name="minimumSize">
<size>
<width>250</width>
<height>120</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>250</width>
<height>120</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../../qgroundcontrol.qrc">:/files/images/devices/cameraGimalYaw.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QSpinBox" name="panServoMinSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="2" column="6">
<widget class="QSpinBox" name="panAngleMinSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="3" column="6">
<widget class="QSpinBox" name="panAngleMaxSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QSpinBox" name="panServoMaxSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="gridLayoutWidget_4">
<property name="geometry">
<rect>
<x>30</x>
<y>550</y>
<width>541</width>
<height>181</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="1" column="1" rowspan="4" colspan="2">
<widget class="QLabel" name="label_5">
<property name="minimumSize">
<size>
<width>250</width>
<height>120</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>250</width>
<height>120</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="../../../qgroundcontrol.qrc">:/files/images/devices/Shutter.png</pixmap>
</property>
<property name="scaledContents">
<bool>true</bool>
</property>
</widget>
</item>
<item row="4" column="5">
<widget class="QLabel" name="label_39">
<property name="text">
<string>Duration
(1/10th sec)</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="5">
<widget class="QLabel" name="label_31">
<property name="text">
<string>Pushed</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="5">
<widget class="QLabel" name="label_32">
<property name="text">
<string>Not Pushed</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="1" column="5" colspan="2">
<widget class="QLabel" name="label_34">
<property name="text">
<string>&lt;h3&gt;Shutter&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="1" column="3" colspan="2">
<widget class="QLabel" name="label_35">
<property name="text">
<string>&lt;h3&gt;Servo Limits&lt;/h3&gt;</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLabel" name="label_36">
<property name="text">
<string>Max</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_37">
<property name="text">
<string>Min</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QComboBox" name="shutterChannelComboBox"/>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_38">
<property name="text">
<string>&lt;h2&gt;Shutter&lt;/h2&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="5" column="1" colspan="6">
<widget class="QLabel" name="label_40">
<property name="text">
<string>&lt;h2&gt;Please set the Ch7 Option to Camera Trigger&lt;/h2&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="6">
<widget class="QSpinBox" name="shutterPushedSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="3" column="6">
<widget class="QSpinBox" name="shutterNotPushedSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
<item row="4" column="6">
<widget class="QSpinBox" name="shutterDurationSpinBox">
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>20</number>
</property>
</widget>
</item>
<item row="2" column="4">
<widget class="QSpinBox" name="shutterServoMinSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>1000</number>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QSpinBox" name="shutterServoMaxSpinBox">
<property name="maximum">
<number>3000</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
<x>720</x>
<y>70</y>
<width>120</width>
<height>80</height>
</rect>
</property>
<property name="title">
<string>GroupBox</string>
</property>
</widget>
</widget>
<resources/>
<resources>
<include location="../../../qgroundcontrol.qrc"/>
</resources>
<connections/>
</ui>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment