diff --git a/Server/server.py b/Server/server.py
index 815131b..2c8b318 100644
--- a/Server/server.py
+++ b/Server/server.py
@@ -385,6 +385,12 @@ class Client:
{'section': option.section, 'option': option.option, 'value': option.value}))
Client.send_to_selected(Client.form_message("config_reload"))
+ @staticmethod
+ def get_by_id(copter_id):
+ for copter in Client.clients.values():
+ if copter.copter_id == copter_id:
+ return copter
+
if __name__ == '__main__':
server = Server()
diff --git a/Server/server_gui.py b/Server/server_gui.py
index 143a3d1..7ac0142 100644
--- a/Server/server_gui.py
+++ b/Server/server_gui.py
@@ -11,7 +11,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
- MainWindow.resize(1257, 770)
+ MainWindow.resize(1239, 706)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setEnabled(True)
self.centralwidget.setObjectName("centralwidget")
@@ -65,20 +65,23 @@ class Ui_MainWindow(object):
self.takeoff_button = QtWidgets.QPushButton(self.centralwidget)
self.takeoff_button.setEnabled(True)
self.takeoff_button.setObjectName("takeoff_button")
- self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.takeoff_button)
+ self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.takeoff_button)
self.land_button = QtWidgets.QPushButton(self.centralwidget)
self.land_button.setObjectName("land_button")
- self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.land_button)
+ self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.land_button)
self.disarm_button = QtWidgets.QPushButton(self.centralwidget)
self.disarm_button.setObjectName("disarm_button")
- self.formLayout_2.setWidget(2, QtWidgets.QFormLayout.SpanningRole, self.disarm_button)
+ self.formLayout_2.setWidget(3, QtWidgets.QFormLayout.SpanningRole, self.disarm_button)
+ self.leds_button = QtWidgets.QPushButton(self.centralwidget)
+ self.leds_button.setObjectName("leds_button")
+ self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.SpanningRole, self.leds_button)
self.verticalLayout.addLayout(self.formLayout_2)
self.horizontalLayout.addLayout(self.verticalLayout)
self.horizontalLayout.setStretch(0, 1)
self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 1)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 1257, 39))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 1239, 39))
self.menubar.setObjectName("menubar")
self.menuOptions = QtWidgets.QMenu(self.menubar)
self.menuOptions.setObjectName("menuOptions")
@@ -87,8 +90,11 @@ class Ui_MainWindow(object):
self.action_send_animations.setObjectName("action_send_animations")
self.action_send_configurations = QtWidgets.QAction(MainWindow)
self.action_send_configurations.setObjectName("action_send_configurations")
+ self.action_send_Aruco_map = QtWidgets.QAction(MainWindow)
+ self.action_send_Aruco_map.setObjectName("action_send_Aruco_map")
self.menuOptions.addAction(self.action_send_animations)
self.menuOptions.addAction(self.action_send_configurations)
+ self.menuOptions.addAction(self.action_send_Aruco_map)
self.menubar.addAction(self.menuOptions.menuAction())
self.retranslateUi(MainWindow)
@@ -106,9 +112,11 @@ class Ui_MainWindow(object):
self.takeoff_button.setText(_translate("MainWindow", "Takeoff"))
self.land_button.setText(_translate("MainWindow", "Land"))
self.disarm_button.setText(_translate("MainWindow", "Disarm"))
+ self.leds_button.setText(_translate("MainWindow", "Test leds"))
self.menuOptions.setTitle(_translate("MainWindow", "Actions"))
self.action_send_animations.setText(_translate("MainWindow", "Send Animations"))
self.action_send_configurations.setText(_translate("MainWindow", "Send Configurations"))
+ self.action_send_Aruco_map.setText(_translate("MainWindow", "Send Aruco map"))
if __name__ == "__main__":
diff --git a/Server/server_gui.ui b/Server/server_gui.ui
index 6060942..79c0ffd 100644
--- a/Server/server_gui.ui
+++ b/Server/server_gui.ui
@@ -6,8 +6,8 @@
0
0
- 1257
- 770
+ 1239
+ 706
@@ -102,7 +102,7 @@
-
-
-
+
-
true
@@ -112,20 +112,27 @@
- -
+
-
Land
- -
+
-
Disarm
+ -
+
+
+ Test leds
+
+
+
@@ -139,7 +146,7 @@
0
0
- 1257
+ 1239
39
@@ -149,6 +156,7 @@
+
@@ -162,6 +170,11 @@
Send Configurations
+
+
+ Send Aruco map
+
+
diff --git a/Server/server_qt.py b/Server/server_qt.py
index d53c7b0..c1ebd6b 100644
--- a/Server/server_qt.py
+++ b/Server/server_qt.py
@@ -35,6 +35,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.ui.action_send_animations.triggered.connect(self.send_animations)
self.ui.action_send_configurations.triggered.connect(self.send_configurations)
+ self.ui.action_send_Aruco_map.triggered.connect(self.send_aruco)
#Initing table and table model
self.ui.tableView.setModel(model)
@@ -43,6 +44,16 @@ class MainWindow(QtWidgets.QMainWindow):
@pyqtSlot()
def check_selected(self):
#Client.request_to_selected("selfcheck")
+ #for row_num in range(model.rowCount()):
+ # item = model.index(row_num, 0)
+ # data = model.itemData(item)
+ # print(item.data())
+ # print(item, data)
+ # if data.isCheckable() and data.checkState() == Qt.Checked:
+ # print("Copter checked")
+ # batt = Client.get_by_id(data.text()).get_response("batt_voltage")
+ # model.setData(model.index(0, 2), batt)
+
self.ui.start_button.setEnabled(True)
self.ui.takeoff_button.setEnabled(True)
@@ -107,6 +118,15 @@ class MainWindow(QtWidgets.QMainWindow):
options.append(ConfigOption(section, option, value))
Client.send_config_options(*options)
+ @pyqtSlot()
+ def send_aruco(self):
+ path = QFileDialog.getOpenFileName(self, "Select aruco map configuration file", filter="Configs (*.txt)")[0]
+ if path:
+ filename = os.path.basename(path)
+ print("Selected file:", path, filename)
+ for copter in Client.clients.values():
+ copter.send_file(path, "/home/pi/catkin_ws/src/clever/aruco_pose/map/animation_map.txt")
+
model = QStandardItemModel()
model.setHorizontalHeaderLabels(
@@ -117,11 +137,9 @@ model.setRowCount(0)
def client_connected(self: Client):
- batt = self.get_response("batt_voltage")
- model.appendRow((QStandardItem(self.copter_id), )) # TODO: get responses for another columns
- model.setData(model.index(0, 2), batt)
-
-
+ copter_id_item = QStandardItem(self.copter_id)
+ copter_id_item.setCheckable(True)
+ model.appendRow((copter_id_item, )) # TODO: get responses for another columns
Client.on_connect = client_connected