From bf5bd1f7740ac9169b8c26d572ad1c62b5aa6665 Mon Sep 17 00:00:00 2001 From: Jake <j@kedrahos.com> Date: Tue, 25 Apr 2017 23:06:57 -0500 Subject: [PATCH] Added yaw setpoint --- groundStation/gui/MicroCART/mainwindow.cpp | 57 ++++++-- groundStation/gui/MicroCART/mainwindow.h | 2 + groundStation/gui/MicroCART/mainwindow.ui | 149 ++++++++++++++++----- 3 files changed, 164 insertions(+), 44 deletions(-) diff --git a/groundStation/gui/MicroCART/mainwindow.cpp b/groundStation/gui/MicroCART/mainwindow.cpp index 8822c2481..74b375419 100644 --- a/groundStation/gui/MicroCART/mainwindow.cpp +++ b/groundStation/gui/MicroCART/mainwindow.cpp @@ -195,6 +195,9 @@ void MainWindow::newConstantBlocks(QStringList blocks) ui->zSetpointSelect->clear(); ui->zSetpointSelect->addItems(blocks); + ui->yawSetpointSelect->clear(); + ui->yawSetpointSelect->addItems(blocks); + ui->xPositionSelect->clear(); ui->xPositionSelect->addItems(blocks); @@ -224,6 +227,9 @@ void MainWindow::newConstantBlocks(QStringList blocks) if (blocks[i].contains("z ", Qt::CaseInsensitive) || blocks[i].contains("alt", Qt::CaseInsensitive)) { ui->zSetpointSelect->setCurrentIndex(i); } + if (blocks[i].contains("yaw", Qt::CaseInsensitive) || blocks[i].contains("alt", Qt::CaseInsensitive)) { + ui->yawSetpointSelect->setCurrentIndex(i); + } } if (blocks[i] == QString("Pitch")) { @@ -305,17 +311,29 @@ void MainWindow::on_paramValue_returnPressed() void MainWindow::sendSetpoints() { - sp_x = ui->xSetpoint->text().toFloat(); - emit (setParamValue(ui->xSetpointSelect->currentText(), - blockDefs[BLOCK_CONSTANT]->param_names[0], sp_x)); + if (ui->sendX->isChecked()) { + sp_x = ui->xSetpoint->text().toFloat(); + emit (setParamValue(ui->xSetpointSelect->currentText(), + blockDefs[BLOCK_CONSTANT]->param_names[0], sp_x)); + } - sp_y = ui->ySetpoint->text().toFloat(); - emit (setParamValue(ui->ySetpointSelect->currentText(), - blockDefs[BLOCK_CONSTANT]->param_names[0], sp_y)); + if (ui->sendY->isChecked()) { + sp_y = ui->ySetpoint->text().toFloat(); + emit (setParamValue(ui->ySetpointSelect->currentText(), + blockDefs[BLOCK_CONSTANT]->param_names[0], sp_y)); + } - sp_z = ui->zSetpoint->text().toFloat(); - emit (setParamValue(ui->zSetpointSelect->currentText(), - blockDefs[BLOCK_CONSTANT]->param_names[0], sp_z)); + if (ui->sendZ->isChecked()) { + sp_z = ui->zSetpoint->text().toFloat(); + emit (setParamValue(ui->zSetpointSelect->currentText(), + blockDefs[BLOCK_CONSTANT]->param_names[0], sp_z)); + } + + if (ui->sendYaw->isChecked()) { + emit (setParamValue(ui->yawSetpointSelect->currentText(), + blockDefs[BLOCK_CONSTANT]->param_names[0], + ui->yawSetpoint->text().toFloat())); + } } void MainWindow::on_pbAppendSetpoint_clicked() @@ -342,13 +360,14 @@ void MainWindow::on_pbNextSetpoint_clicked() void MainWindow::sendSelectedSetpoint() { if (ui->setpointList->currentIndex().isValid()) { - QRegExp regex("\\[(.*), (.*), (.*)\\]"); + QRegExp regex("\\[(.*), (.*), (.*), (.*)\\]"); int row = ui->setpointList->currentIndex().row(); regex.indexIn(setpointList->item(row)->text()); ui->xSetpoint->setText(regex.cap(1)); ui->ySetpoint->setText(regex.cap(2)); ui->zSetpoint->setText(regex.cap(3)); + ui->yawSetpoint->setText(regex.cap(4)); sendSetpoints(); } @@ -359,6 +378,7 @@ void MainWindow::on_pbActualToSetpoint_clicked() ui->xSetpoint->setText(ui->xActual->text()); ui->ySetpoint->setText(ui->yActual->text()); ui->zSetpoint->setText(ui->zActual->text()); + ui->yawSetpoint->setText(ui->yawActual->text()); } void MainWindow::on_pbDeleteSetpoint_clicked() @@ -376,8 +396,9 @@ void MainWindow::newControlGraph(QString graph) void MainWindow::on_pbActualToWaypoint_clicked() { QString str("[" + ui->xActual->text() + ", "+ - ui->yActual->text() + ", " + - ui->zActual->text() + "]"); + ui->yActual->text() + ", " + + ui->zActual->text() + ", " + + ui->yawActual->text() + "]"); setpointList->appendRow(new QStandardItem(str)); } @@ -412,8 +433,9 @@ void MainWindow::on_pbInsertSetpoint_clicked() } QString str("[" + ui->xSetpoint->text() + ", "+ - ui->ySetpoint->text() + ", " + - ui->zSetpoint->text() + "]"); + ui->ySetpoint->text() + ", " + + ui->zSetpoint->text() + ", " + + ui->yawSetpoint->text() + "]"); setpointList->insertRow(current, new QStandardItem(str)); } @@ -480,6 +502,13 @@ void MainWindow::on_zSetpoint_returnPressed() blockDefs[BLOCK_CONSTANT]->param_names[0], sp_z)); } +void MainWindow::on_yawSetpoint_returnPressed() +{ + emit (setParamValue(ui->yawSetpointSelect->currentText(), + blockDefs[BLOCK_CONSTANT]->param_names[0], + ui->yawSetpoint->text().toFloat())); +} + void MainWindow::on_posattSrcVrpn_clicked() { trackerTimer->setInterval(100); diff --git a/groundStation/gui/MicroCART/mainwindow.h b/groundStation/gui/MicroCART/mainwindow.h index 8061b4e0c..a67d22907 100644 --- a/groundStation/gui/MicroCART/mainwindow.h +++ b/groundStation/gui/MicroCART/mainwindow.h @@ -86,6 +86,8 @@ private slots: void on_posattSrcQuad_clicked(); + void on_yawSetpoint_returnPressed(); + private: Ui::MainWindow *ui; QStandardItemModel * setpointList; diff --git a/groundStation/gui/MicroCART/mainwindow.ui b/groundStation/gui/MicroCART/mainwindow.ui index dea7a13c6..097552bfb 100644 --- a/groundStation/gui/MicroCART/mainwindow.ui +++ b/groundStation/gui/MicroCART/mainwindow.ui @@ -322,6 +322,22 @@ <item> <widget class="QComboBox" name="zSetpointSelect"/> </item> + <item> + <widget class="QLabel" name="label_18"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string>Yaw Setpoint:</string> + </property> + </widget> + </item> + <item> + <widget class="QComboBox" name="yawSetpointSelect"/> + </item> </layout> </item> <item> @@ -750,36 +766,6 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="xSetpoint"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="ySetpoint"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> - <item row="2" column="1"> - <widget class="QLineEdit" name="zSetpoint"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - </widget> - </item> <item row="2" column="0"> <widget class="QLabel" name="setpointLabel_3"> <property name="text"> @@ -794,6 +780,109 @@ </property> </widget> </item> + <item row="3" column="0"> + <widget class="QLabel" name="yawLabel"> + <property name="text"> + <string>Yaw</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_12"> + <item> + <widget class="QLineEdit" name="xSetpoint"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="sendX"> + <property name="text"> + <string/> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="1" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_13"> + <item> + <widget class="QLineEdit" name="ySetpoint"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="sendY"> + <property name="text"> + <string/> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="2" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_14"> + <item> + <widget class="QLineEdit" name="zSetpoint"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Minimum" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="sendZ"> + <property name="text"> + <string/> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </item> + <item row="3" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_15"> + <item> + <widget class="QLineEdit" name="yawSetpoint"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + </widget> + </item> + <item> + <widget class="QCheckBox" name="sendYaw"> + <property name="text"> + <string/> + </property> + <property name="checked"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </item> </layout> </item> <item> -- GitLab