Commit 4cfe93cc authored by Lorenz Meier's avatar Lorenz Meier
Browse files

WIP on airframe config

parent 8917ff17
This diff is collapsed.
...@@ -54,27 +54,58 @@ QGCPX4AirframeConfig::QGCPX4AirframeConfig(QWidget *parent) : ...@@ -54,27 +54,58 @@ QGCPX4AirframeConfig::QGCPX4AirframeConfig(QWidget *parent) :
setActiveUAS(UASManager::instance()->getActiveUAS()); 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) 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) if (!uas)
return; return;
mav = uas; mav = uas;
connect(mav, SIGNAL(parameterChanged(int,int,QString,QVariant)), this, SLOT(parameterChanged(int,int,QString,QVariant)));
//connect(uas->getParamManager(), SIGNAL()) //connect(uas->getParamManager(), SIGNAL())
} }
void QGCPX4AirframeConfig::setAirframeID(int id) void QGCPX4AirframeConfig::setAirframeID(int id)
{ {
selectedId = 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() void QGCPX4AirframeConfig::applyAndReboot()
{ {
// Guard against the case of an edit where we didn't receive all params yet // Guard against the case of an edit where we didn't receive all params yet
if (selectedId < 0) if (selectedId <= 0)
{ {
QMessageBox msgBox; QMessageBox msgBox;
msgBox.setText(tr("No airframe selected")); 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; 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 // Send pending params
mav->getParamManager()->sendPendingParameters(); mav->getParamManager()->sendPendingParameters();
...@@ -146,7 +179,7 @@ void QGCPX4AirframeConfig::setAutoConfig(bool enabled) ...@@ -146,7 +179,7 @@ void QGCPX4AirframeConfig::setAutoConfig(bool enabled)
void QGCPX4AirframeConfig::flyingWingSelected() void QGCPX4AirframeConfig::flyingWingSelected()
{ {
ui->flyingWingPushButton->setChecked(true);
} }
void QGCPX4AirframeConfig::flyingWingSelected(int index) 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() void QGCPX4AirframeConfig::planeSelected()
{ {
ui->planePushButton->setChecked(true);
} }
void QGCPX4AirframeConfig::planeSelected(int index) void QGCPX4AirframeConfig::planeSelected(int index)
{ {
int system_index = ui->planeComboBox->itemData(index).toInt(); int system_index = ui->planeComboBox->itemData(index).toInt();
planeSelected();
setAirframeID(system_index); setAirframeID(system_index);
} }
void QGCPX4AirframeConfig::quadXSelected() void QGCPX4AirframeConfig::quadXSelected()
{ {
ui->quadXPushButton->setChecked(true);
} }
void QGCPX4AirframeConfig::quadXSelected(int index) void QGCPX4AirframeConfig::quadXSelected(int index)
{ {
int system_index = ui->quadXComboBox->itemData(index).toInt(); int system_index = ui->quadXComboBox->itemData(index).toInt();
quadXSelected();
setAirframeID(system_index); setAirframeID(system_index);
} }
......
...@@ -24,6 +24,15 @@ public slots: ...@@ -24,6 +24,15 @@ public slots:
*/ */
void setActiveUAS(UASInterface* uas); 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 * @brief Quadrotor in X configuration has been selected
*/ */
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>-175</y>
<width>762</width> <width>762</width>
<height>531</height> <height>531</height>
</rect> </rect>
...@@ -46,6 +46,9 @@ ...@@ -46,6 +46,9 @@
<height>120</height> <height>120</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
...@@ -77,6 +80,9 @@ ...@@ -77,6 +80,9 @@
<height>120</height> <height>120</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
...@@ -108,6 +114,9 @@ ...@@ -108,6 +114,9 @@
<height>120</height> <height>120</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
...@@ -139,6 +148,9 @@ ...@@ -139,6 +148,9 @@
<height>120</height> <height>120</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
...@@ -170,6 +182,9 @@ ...@@ -170,6 +182,9 @@
<height>120</height> <height>120</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
...@@ -201,6 +216,9 @@ ...@@ -201,6 +216,9 @@
<height>120</height> <height>120</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
...@@ -232,6 +250,9 @@ ...@@ -232,6 +250,9 @@
<height>120</height> <height>120</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
...@@ -263,6 +284,9 @@ ...@@ -263,6 +284,9 @@
<height>120</height> <height>120</height>
</size> </size>
</property> </property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
...@@ -284,6 +308,15 @@ ...@@ -284,6 +308,15 @@
<property name="text"> <property name="text">
<string/> <string/>
</property> </property>
<property name="iconSize">
<size>
<width>120</width>
<height>120</height>
</size>
</property>
<property name="checkable">
<bool>true</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
......
Supports Markdown
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