From 37d734a06b6ee2b96e53065fe45cdf62806d0cfa Mon Sep 17 00:00:00 2001 From: Jake <j@kedrahos.com> Date: Tue, 11 Apr 2017 15:05:46 -0500 Subject: [PATCH] Setpoint improvements Readback on setpoints. This means that nav setpoints update when changed in control graph view. --- groundStation/gui/MicroCART/controlworker.cpp | 2 +- groundStation/gui/MicroCART/controlworker.h | 2 +- groundStation/gui/MicroCART/mainwindow.cpp | 23 +++++++++----- groundStation/gui/MicroCART/mainwindow.h | 2 +- groundStation/gui/MicroCART/mainwindow.ui | 31 ++++++++++++++++++- 5 files changed, 48 insertions(+), 12 deletions(-) diff --git a/groundStation/gui/MicroCART/controlworker.cpp b/groundStation/gui/MicroCART/controlworker.cpp index 866c3656a..3201d0ef3 100644 --- a/groundStation/gui/MicroCART/controlworker.cpp +++ b/groundStation/gui/MicroCART/controlworker.cpp @@ -93,7 +93,7 @@ void ControlWorker::getParamValue(QString node, QString param) /* Set pd.param and finish the job */ pd.param = j; frontend_getparam(conn, &pd); - emit(gotParamValue(pd.value)); + emit(gotParamValue(node, param, pd.value)); } } } diff --git a/groundStation/gui/MicroCART/controlworker.h b/groundStation/gui/MicroCART/controlworker.h index c27110047..58939cd8d 100644 --- a/groundStation/gui/MicroCART/controlworker.h +++ b/groundStation/gui/MicroCART/controlworker.h @@ -15,7 +15,7 @@ public: signals: void gotNodes(QStringList nodes); void gotParams(QStringList params); - void gotParamValue(float value); + void gotParamValue(QString node, QString param, float value); void gotConstantBlocks(QStringList blocks); void paramSet(QString node, QString param); diff --git a/groundStation/gui/MicroCART/mainwindow.cpp b/groundStation/gui/MicroCART/mainwindow.cpp index c7da65e6c..0867aa4ae 100644 --- a/groundStation/gui/MicroCART/mainwindow.cpp +++ b/groundStation/gui/MicroCART/mainwindow.cpp @@ -43,7 +43,7 @@ MainWindow::MainWindow(QWidget *parent) : /* Connect signals from control worker */ connect(controlWorker, SIGNAL (gotNodes(QStringList)), this, SLOT (newNodes(QStringList))); connect(controlWorker, SIGNAL (gotParams(QStringList)), this, SLOT (newParams(QStringList))); - connect(controlWorker, SIGNAL (gotParamValue(float)), this, SLOT (newParamValue(float))); + connect(controlWorker, SIGNAL (gotParamValue(QString, QString, float)), this, SLOT (newParamValue(QString, QString, float))); connect(controlWorker, SIGNAL (gotConstantBlocks(QStringList)), this, SLOT (newConstantBlocks(QStringList))); connect(controlWorker, SIGNAL (paramSet(QString, QString)), controlWorker, SLOT (getParamValue(QString, QString))); @@ -77,8 +77,6 @@ MainWindow::MainWindow(QWidget *parent) : connect(findChild<QLineEdit *>("xSetpoint"), SIGNAL (returnPressed()), this, SLOT (sendSetpoints())); connect(findChild<QLineEdit *>("ySetpoint"), SIGNAL (returnPressed()), this, SLOT (sendSetpoints())); connect(findChild<QLineEdit *>("zSetpoint"), SIGNAL (returnPressed()), this, SLOT (sendSetpoints())); - - connect(findChild<QListView *>("setpointList"), SIGNAL (doubleClicked(QModelIndex)), this, SLOT (sendSelectedSetpoint())); } MainWindow::~MainWindow() @@ -159,15 +157,15 @@ void MainWindow::newNodes(QStringList blocks) void MainWindow::newConstantBlocks(QStringList blocks) { QComboBox * xSelect = findChild<QComboBox *>("xSetpointSelect"); - xSelect->clear(); /* Hopefully this clears the list */ + xSelect->clear(); xSelect->addItems(blocks); QComboBox * ySelect = findChild<QComboBox *>("ySetpointSelect"); - ySelect->clear(); /* Hopefully this clears the list */ + ySelect->clear(); ySelect->addItems(blocks); QComboBox * zSelect = findChild<QComboBox *>("zSetpointSelect"); - zSelect->clear(); /* Hopefully this clears the list */ + zSelect->clear(); zSelect->addItems(blocks); for (ssize_t i = 0; i < blocks.size(); i++) { @@ -188,13 +186,22 @@ void MainWindow::newConstantBlocks(QStringList blocks) void MainWindow::newParams(QStringList params) { QComboBox * select = findChild<QComboBox *>("paramSelect"); - select->clear(); /* Hopefully this clears the list */ + select->clear(); select->addItems(params); } -void MainWindow::newParamValue(float val) +void MainWindow::newParamValue(QString node, QString param, float val) { findChild<QLineEdit *>("paramValue")->setText(QString::number(val)); + + /* Update the nav page setpoints if it's a setpoint paramvalue */ + if (node == findChild<QComboBox *>("xSetpointSelect")->currentText()) { + findChild<QLineEdit *>("xSetpoint")->setText(QString::number(val)); + } else if (node == findChild<QComboBox *>("ySetpointSelect")->currentText()) { + findChild<QLineEdit *>("ySetpoint")->setText(QString::number(val)); + } else if (node == findChild<QComboBox *>("zSetpointSelect")->currentText()) { + findChild<QLineEdit *>("zSetpoint")->setText(QString::number(val)); + } } void MainWindow::on_paramSelect_currentIndexChanged(const QString &arg1) diff --git a/groundStation/gui/MicroCART/mainwindow.h b/groundStation/gui/MicroCART/mainwindow.h index 3520d4b6b..d59e10f03 100644 --- a/groundStation/gui/MicroCART/mainwindow.h +++ b/groundStation/gui/MicroCART/mainwindow.h @@ -38,7 +38,7 @@ private slots: void newNodes(QStringList blocks); void newParams(QStringList params); - void newParamValue(float val); + void newParamValue(QString node, QString param, float val); void newConstantBlocks(QStringList blocks); void on_paramSelect_currentIndexChanged(const QString &arg1); diff --git a/groundStation/gui/MicroCART/mainwindow.ui b/groundStation/gui/MicroCART/mainwindow.ui index a66bc8fbc..c22a9fccf 100644 --- a/groundStation/gui/MicroCART/mainwindow.ui +++ b/groundStation/gui/MicroCART/mainwindow.ui @@ -18,7 +18,7 @@ <item> <widget class="QTabWidget" name="tabWidget"> <property name="currentIndex"> - <number>0</number> + <number>2</number> </property> <widget class="QWidget" name="backend"> <attribute name="title"> @@ -476,6 +476,26 @@ </property> </widget> </item> + <item> + <widget class="QPushButton" name="pbInsertSetpoint"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Insert</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="pbDeleteSetpoint"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Delete</string> + </property> + </widget> + </item> <item> <spacer name="verticalSpacer_3"> <property name="orientation"> @@ -498,6 +518,15 @@ <property name="editTriggers"> <set>QAbstractItemView::NoEditTriggers</set> </property> + <property name="dragEnabled"> + <bool>true</bool> + </property> + <property name="dragDropMode"> + <enum>QAbstractItemView::InternalMove</enum> + </property> + <property name="defaultDropAction"> + <enum>Qt::MoveAction</enum> + </property> </widget> </item> <item> -- GitLab