From db5d6c454c7fd7ff4b69d94db1f3d20bd30ef6dd Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 12 Mar 2019 12:12:53 +0300 Subject: [PATCH 1/3] Modify gui to simplify first working version --- Server/server_gui.py | 19 ++++++------------- Server/server_gui.ui | 9 ++++++--- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/Server/server_gui.py b/Server/server_gui.py index 459bef1..0371724 100644 --- a/Server/server_gui.py +++ b/Server/server_gui.py @@ -2,12 +2,13 @@ # Form implementation generated from reading ui file 'server_gui.ui' # -# Created by: PyQt5 UI code generator 5.10.1 +# Created by: PyQt5 UI code generator 5.12 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets + class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") @@ -15,10 +16,11 @@ class Ui_MainWindow(object): self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.check_button = QtWidgets.QPushButton(self.centralwidget) + self.check_button.setEnabled(False) self.check_button.setGeometry(QtCore.QRect(680, 20, 150, 40)) self.check_button.setObjectName("check_button") self.start_button = QtWidgets.QPushButton(self.centralwidget) - self.start_button.setEnabled(False) + self.start_button.setEnabled(True) self.start_button.setGeometry(QtCore.QRect(680, 120, 150, 40)) self.start_button.setFlat(False) self.start_button.setObjectName("start_button") @@ -32,7 +34,7 @@ class Ui_MainWindow(object): self.stop_button.setGeometry(QtCore.QRect(680, 220, 150, 40)) self.stop_button.setObjectName("stop_button") self.takeoff_button = QtWidgets.QPushButton(self.centralwidget) - self.takeoff_button.setEnabled(False) + self.takeoff_button.setEnabled(True) self.takeoff_button.setGeometry(QtCore.QRect(680, 280, 150, 40)) self.takeoff_button.setObjectName("takeoff_button") self.land_button = QtWidgets.QPushButton(self.centralwidget) @@ -52,7 +54,7 @@ class Ui_MainWindow(object): self.tableView.setObjectName("tableView") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 850, 39)) + self.menubar.setGeometry(QtCore.QRect(0, 0, 850, 25)) self.menubar.setObjectName("menubar") self.menuOptions = QtWidgets.QMenu(self.menubar) self.menuOptions.setObjectName("menuOptions") @@ -85,12 +87,3 @@ class Ui_MainWindow(object): self.action_send_configurations.setText(_translate("MainWindow", "Send Configurations")) -if __name__ == "__main__": - import sys - app = QtWidgets.QApplication(sys.argv) - MainWindow = QtWidgets.QMainWindow() - ui = Ui_MainWindow() - ui.setupUi(MainWindow) - MainWindow.show() - sys.exit(app.exec_()) - diff --git a/Server/server_gui.ui b/Server/server_gui.ui index f9c8475..b1e4bdc 100644 --- a/Server/server_gui.ui +++ b/Server/server_gui.ui @@ -15,6 +15,9 @@ + + false + 680 @@ -29,7 +32,7 @@ - false + true @@ -84,7 +87,7 @@ - false + true @@ -167,7 +170,7 @@ 0 0 850 - 39 + 25 From 00b7851228964fc9c3ae0e8cbeb60d470709ae38 Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 12 Mar 2019 12:13:59 +0300 Subject: [PATCH 2/3] Connect gui buttons to server code --- Server/server_qt.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Server/server_qt.py b/Server/server_qt.py index 8eaaa03..4e9ca4d 100644 --- a/Server/server_qt.py +++ b/Server/server_qt.py @@ -273,7 +273,22 @@ class MainWindow(QtWidgets.QMainWindow): model.setRowCount(20) self.ui.tableView.setModel(model) self.ui.tableView.horizontalHeader().setStretchLastSection(True) - + self.ui.takeoff_button.clicked.connect(takeoff_all) + self.ui.land_button.clicked.connect(land_all) + self.ui.disarm_button.clicked.connect(disarm_all) + self.ui.start_button.clicked.connect(self.send_start_command) + self.ui.pause_button.clicked.connect(self.pause_resume_all) + self.ui.stop_button.clicked.connect(stop_swarm) + #self.ui.check_button.clicked.connect(self.preflight_checks) + def pause_resume_all(self): + if self.ui.pause_button.text() == 'Pause': + Client.broadcast('pause') + self.ui.pause_button.setText('Resume') + else: + Client.broadcast('resume') + self.ui.pause_button.setText('Pause') + def send_start_command(self): + send_starttime(self.ui.start_delay_spin.value()) # Pre-initialization # reading config From 1ce533c0042e5ae3ed68db57d116f7bd8a36d42e Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 12 Mar 2019 12:15:20 +0300 Subject: [PATCH 3/3] Add pause and resume commands for receive --- Drone/client.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Drone/client.py b/Drone/client.py index 61fae24..838659f 100644 --- a/Drone/client.py +++ b/Drone/client.py @@ -220,6 +220,10 @@ try: rospy.Timer(rospy.Duration(dt), start_animation, oneshot=True) elif command == 'takeoff': play_animation.takeoff() + elif command == 'pause' + pause_animation() + elif command == 'resume' + resume_animation() elif command == 'stop': stop_animation() #FlightLib.reach(5, 5, 2) @@ -227,7 +231,6 @@ try: FlightLib.land1() # TODO dont forget change back to land elif command == 'disarm': FlightLib.arming(False) - elif command == 'request': request_target = args[0] print("Got request for:", request_target)