Browse Source

WIP on airframe config

QGC4.4
Lorenz Meier 12 years ago
parent
commit
4cfe93ccbb
  1. 1214
      src/ui/QGCPX4VehicleConfig.ui.autosave
  2. 47
      src/ui/px4_configuration/QGCPX4AirframeConfig.cc
  3. 9
      src/ui/px4_configuration/QGCPX4AirframeConfig.h
  4. 35
      src/ui/px4_configuration/QGCPX4AirframeConfig.ui

1214
src/ui/QGCPX4VehicleConfig.ui.autosave

File diff suppressed because it is too large Load Diff

47
src/ui/px4_configuration/QGCPX4AirframeConfig.cc

@ -54,27 +54,58 @@ QGCPX4AirframeConfig::QGCPX4AirframeConfig(QWidget *parent) : @@ -54,27 +54,58 @@ QGCPX4AirframeConfig::QGCPX4AirframeConfig(QWidget *parent) :
setActiveUAS(UASManager::instance()->getActiveUAS());
}
void QGCPX4AirframeConfig::parameterChanged(int uas, int component, QString parameterName, QVariant value)
{
Q_UNUSED(uas);
Q_UNUSED(component);
if (parameterName.contains("SYS_AUTOSTART"))
{
int index = value.toInt();
if (index > 0) {
setAirframeID(index);
ui->statusLabel->setText(tr("Onboard start script ID: #%1").arg(index));
} else {
ui->statusLabel->setText(tr("System not configured for autostart."));
}
}
}
void QGCPX4AirframeConfig::setActiveUAS(UASInterface* uas)
{
// if (mav)
if (mav)
{
disconnect(mav, SIGNAL(parameterChanged(int,int,QString,QVariant)), this, SLOT(parameterChanged(int,int,QString,QVariant)));
}
if (!uas)
return;
mav = uas;
connect(mav, SIGNAL(parameterChanged(int,int,QString,QVariant)), this, SLOT(parameterChanged(int,int,QString,QVariant)));
//connect(uas->getParamManager(), SIGNAL())
}
void QGCPX4AirframeConfig::setAirframeID(int id)
{
selectedId = id;
ui->statusLabel->setText(tr("Ground start script ID: #%1").arg(selectedId));
if (id > 0 && id < 10) {
ui->planePushButton->setChecked(true);
}
else if (id > 10 && id < 20)
{
ui->quadXPushButton->setChecked(true);
}
}
void QGCPX4AirframeConfig::applyAndReboot()
{
// Guard against the case of an edit where we didn't receive all params yet
if (selectedId < 0)
if (selectedId <= 0)
{
QMessageBox msgBox;
msgBox.setText(tr("No airframe selected"));
@ -125,7 +156,9 @@ void QGCPX4AirframeConfig::applyAndReboot() @@ -125,7 +156,9 @@ void QGCPX4AirframeConfig::applyAndReboot()
qDebug() << "Setting comp" << components.first() << "SYS_AUTOSTART" << (qint32)selectedId;
mav->getParamManager()->setParameter(components.first(), "SYS_AUTOSTART", (qint32)selectedId);
mav->setParameter(components.first(), "SYS_AUTOSTART", (qint32)selectedId);
//mav->getParamManager()->setParameter(components.first(), "SYS_AUTOSTART", (qint32)selectedId);
// Send pending params
mav->getParamManager()->sendPendingParameters();
@ -146,7 +179,7 @@ void QGCPX4AirframeConfig::setAutoConfig(bool enabled) @@ -146,7 +179,7 @@ void QGCPX4AirframeConfig::setAutoConfig(bool enabled)
void QGCPX4AirframeConfig::flyingWingSelected()
{
ui->flyingWingPushButton->setChecked(true);
}
void QGCPX4AirframeConfig::flyingWingSelected(int index)
@ -157,24 +190,26 @@ void QGCPX4AirframeConfig::flyingWingSelected(int index) @@ -157,24 +190,26 @@ void QGCPX4AirframeConfig::flyingWingSelected(int index)
void QGCPX4AirframeConfig::planeSelected()
{
ui->planePushButton->setChecked(true);
}
void QGCPX4AirframeConfig::planeSelected(int index)
{
int system_index = ui->planeComboBox->itemData(index).toInt();
planeSelected();
setAirframeID(system_index);
}
void QGCPX4AirframeConfig::quadXSelected()
{
ui->quadXPushButton->setChecked(true);
}
void QGCPX4AirframeConfig::quadXSelected(int index)
{
int system_index = ui->quadXComboBox->itemData(index).toInt();
quadXSelected();
setAirframeID(system_index);
}

9
src/ui/px4_configuration/QGCPX4AirframeConfig.h

@ -25,6 +25,15 @@ public slots: @@ -25,6 +25,15 @@ public slots:
void setActiveUAS(UASInterface* uas);
/**
* @brief Handle parameter changes
* @param uas
* @param component
* @param parameterName
* @param value
*/
void parameterChanged(int uas, int component, QString parameterName, QVariant value);
/**
* @brief Quadrotor in X configuration has been selected
*/
void quadXSelected();

35
src/ui/px4_configuration/QGCPX4AirframeConfig.ui

@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<y>-175</y>
<width>762</width>
<height>531</height>
</rect>
@ -46,6 +46,9 @@ @@ -46,6 +46,9 @@
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -77,6 +80,9 @@ @@ -77,6 +80,9 @@
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -108,6 +114,9 @@ @@ -108,6 +114,9 @@
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -139,6 +148,9 @@ @@ -139,6 +148,9 @@
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -170,6 +182,9 @@ @@ -170,6 +182,9 @@
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -201,6 +216,9 @@ @@ -201,6 +216,9 @@
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -232,6 +250,9 @@ @@ -232,6 +250,9 @@
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -263,6 +284,9 @@ @@ -263,6 +284,9 @@
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -284,6 +308,15 @@ @@ -284,6 +308,15 @@
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>120</width>
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget>
</item>
<item>

Loading…
Cancel
Save