mirror of
https://github.com/CopterExpress/clever-show.git
synced 2026-05-29 16:29:34 +00:00
New server gui and functionality, updated configspec
This commit is contained in:
@@ -2,47 +2,47 @@ config_name = string(default='Copter config')
|
||||
config_version = float(default='0.0')
|
||||
|
||||
[SERVER]
|
||||
port = integer(default=25000)
|
||||
buffer_size = integer(default=1024)
|
||||
port = integer(default=25000)
|
||||
buffer_size = integer(default=1024)
|
||||
|
||||
[TABLE]
|
||||
# True -> clients are removed on disconnection
|
||||
# False -> disconnected clients indicated
|
||||
remove_disconnected = boolean(default=False)
|
||||
# True -> clients are removed on disconnection
|
||||
# False -> disconnected clients indicated
|
||||
remove_disconnected = boolean(default=False)
|
||||
[[PRESETS]]
|
||||
current = string(default="DEFAULT")
|
||||
[[[DEFAULT]]]
|
||||
copter_id = boolean(default=True)
|
||||
git_version = boolean(default=True)
|
||||
animation_id = boolean(default=True)
|
||||
battery = boolean(default=True)
|
||||
fcu_status = boolean(default=True)
|
||||
calibration_status = boolean(default=True)
|
||||
mode = boolean(default=True)
|
||||
selfcheck = boolean(default=True)
|
||||
current_position = boolean(default=True)
|
||||
start_position = boolean(default=True)
|
||||
last_task = boolean(default=True)
|
||||
time_delta = boolean(default=True)
|
||||
config_version = boolean(default=True)
|
||||
[[[__many__]]]
|
||||
__many__ = boolean
|
||||
current = string(default="DEFAULT")
|
||||
[[[DEFAULT]]]
|
||||
copter_id = boolean(default=True)
|
||||
git_version = boolean(default=True)
|
||||
animation_id = boolean(default=True)
|
||||
battery = boolean(default=True)
|
||||
fcu_status = boolean(default=True)
|
||||
calibration_status = boolean(default=True)
|
||||
mode = boolean(default=True)
|
||||
selfcheck = boolean(default=True)
|
||||
current_position = boolean(default=True)
|
||||
start_position = boolean(default=True)
|
||||
last_task = boolean(default=True)
|
||||
time_delta = boolean(default=True)
|
||||
config_version = boolean(default=True)
|
||||
[[[__many__]]]
|
||||
__many__ = boolean
|
||||
|
||||
[CHECKS]
|
||||
battery_min = float(default=50.0, min=0, max=100)
|
||||
# in meters
|
||||
start_pos_delta_max = float(default=1.0, min=0)
|
||||
# in meters
|
||||
time_delta_max = float(default=1.0, min=0)
|
||||
battery_min = float(default=50.0, min=0, max=100)
|
||||
# in meters
|
||||
start_pos_delta_max = float(default=1.0, min=0)
|
||||
# in meters
|
||||
time_delta_max = float(default=1.0, min=0)
|
||||
|
||||
[BROADCAST]
|
||||
send = boolean(default=True)
|
||||
listen = boolean(default=True)
|
||||
port = integer(default=8181)
|
||||
# delay for message sending in seconds
|
||||
delay = float(default=5.0, min=0)
|
||||
send = boolean(default=True)
|
||||
listen = boolean(default=True)
|
||||
port = integer(default=8181)
|
||||
# delay for message sending in seconds
|
||||
delay = float(default=5.0, min=0)
|
||||
|
||||
[NTP]
|
||||
use = boolean(default=False)
|
||||
host = string(default=ntp1.stratum2.ru)
|
||||
port = integer(default=123)
|
||||
use = boolean(default=False)
|
||||
host = string(default=ntp1.stratum2.ru)
|
||||
port = integer(default=123)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# Form implementation generated from reading ui file 'server_gui.ui'
|
||||
#
|
||||
# Created by: PyQt5 UI code generator 5.13.0
|
||||
# Created by: PyQt5 UI code generator 5.14.0
|
||||
#
|
||||
# WARNING! All changes made in this file will be lost!
|
||||
|
||||
@@ -13,7 +13,7 @@ from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
class Ui_MainWindow(object):
|
||||
def setupUi(self, MainWindow):
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.resize(1360, 761)
|
||||
MainWindow.resize(1360, 816)
|
||||
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
||||
self.centralwidget.setEnabled(True)
|
||||
self.centralwidget.setObjectName("centralwidget")
|
||||
@@ -51,23 +51,23 @@ class Ui_MainWindow(object):
|
||||
self.start_text.setLayoutDirection(QtCore.Qt.RightToLeft)
|
||||
self.start_text.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.start_text.setObjectName("start_text")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.start_text)
|
||||
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.start_text)
|
||||
self.start_delay_spin = QtWidgets.QSpinBox(self.centralwidget)
|
||||
self.start_delay_spin.setObjectName("start_delay_spin")
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.start_delay_spin)
|
||||
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.start_delay_spin)
|
||||
self.music_text = QtWidgets.QLabel(self.centralwidget)
|
||||
self.music_text.setLayoutDirection(QtCore.Qt.RightToLeft)
|
||||
self.music_text.setObjectName("music_text")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.music_text)
|
||||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.music_text)
|
||||
self.music_delay_spin = QtWidgets.QDoubleSpinBox(self.centralwidget)
|
||||
self.music_delay_spin.setDecimals(1)
|
||||
self.music_delay_spin.setMaximum(1000.0)
|
||||
self.music_delay_spin.setObjectName("music_delay_spin")
|
||||
self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.music_delay_spin)
|
||||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.music_delay_spin)
|
||||
self.music_play_text = QtWidgets.QLabel(self.centralwidget)
|
||||
self.music_play_text.setLayoutDirection(QtCore.Qt.RightToLeft)
|
||||
self.music_play_text.setObjectName("music_play_text")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.music_play_text)
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.music_play_text)
|
||||
self.music_checkbox = QtWidgets.QCheckBox(self.centralwidget)
|
||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
@@ -76,12 +76,12 @@ class Ui_MainWindow(object):
|
||||
self.music_checkbox.setSizePolicy(sizePolicy)
|
||||
self.music_checkbox.setFocusPolicy(QtCore.Qt.NoFocus)
|
||||
self.music_checkbox.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
|
||||
self.music_checkbox.setLayoutDirection(QtCore.Qt.RightToLeft)
|
||||
self.music_checkbox.setLayoutDirection(QtCore.Qt.LeftToRight)
|
||||
self.music_checkbox.setAutoFillBackground(False)
|
||||
self.music_checkbox.setText("")
|
||||
self.music_checkbox.setChecked(False)
|
||||
self.music_checkbox.setObjectName("music_checkbox")
|
||||
self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.music_checkbox)
|
||||
self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.music_checkbox)
|
||||
self.verticalLayout.addLayout(self.formLayout)
|
||||
self.line = QtWidgets.QFrame(self.centralwidget)
|
||||
self.line.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
@@ -117,10 +117,10 @@ class Ui_MainWindow(object):
|
||||
self.formLayout_5.setObjectName("formLayout_5")
|
||||
self.land_selected_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.land_selected_button.setObjectName("land_selected_button")
|
||||
self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.land_selected_button)
|
||||
self.formLayout_5.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.land_selected_button)
|
||||
self.land_all_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.land_all_button.setObjectName("land_all_button")
|
||||
self.formLayout_5.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.land_all_button)
|
||||
self.formLayout_5.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.land_all_button)
|
||||
self.verticalLayout.addLayout(self.formLayout_5)
|
||||
self.line_6 = QtWidgets.QFrame(self.centralwidget)
|
||||
self.line_6.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
@@ -146,14 +146,13 @@ class Ui_MainWindow(object):
|
||||
self.formLayout_3 = QtWidgets.QFormLayout()
|
||||
self.formLayout_3.setLabelAlignment(QtCore.Qt.AlignCenter)
|
||||
self.formLayout_3.setFormAlignment(QtCore.Qt.AlignCenter)
|
||||
self.formLayout_3.setVerticalSpacing(6)
|
||||
self.formLayout_3.setObjectName("formLayout_3")
|
||||
self.disarm_all_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.disarm_all_button.setObjectName("disarm_all_button")
|
||||
self.formLayout_3.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.disarm_all_button)
|
||||
self.formLayout_3.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.disarm_all_button)
|
||||
self.disarm_selected_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.disarm_selected_button.setObjectName("disarm_selected_button")
|
||||
self.formLayout_3.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.disarm_selected_button)
|
||||
self.formLayout_3.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.disarm_selected_button)
|
||||
self.verticalLayout.addLayout(self.formLayout_3)
|
||||
self.line_3 = QtWidgets.QFrame(self.centralwidget)
|
||||
self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
@@ -164,22 +163,17 @@ class Ui_MainWindow(object):
|
||||
self.formLayout_4.setLabelAlignment(QtCore.Qt.AlignCenter)
|
||||
self.formLayout_4.setFormAlignment(QtCore.Qt.AlignCenter)
|
||||
self.formLayout_4.setObjectName("formLayout_4")
|
||||
self.flip_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.flip_button.setObjectName("flip_button")
|
||||
self.formLayout_4.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.flip_button)
|
||||
self.leds_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.leds_button.setObjectName("leds_button")
|
||||
self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.leds_button)
|
||||
self.takeoff_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.takeoff_button.setEnabled(True)
|
||||
self.takeoff_button.setObjectName("takeoff_button")
|
||||
self.formLayout_4.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.takeoff_button)
|
||||
self.leds_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.leds_button.setObjectName("leds_button")
|
||||
self.formLayout_4.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.leds_button)
|
||||
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
|
||||
self.horizontalLayout_2.setContentsMargins(-1, 0, -1, -1)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.z_checkbox = QtWidgets.QCheckBox(self.centralwidget)
|
||||
self.z_checkbox.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
|
||||
self.z_checkbox.setFocusPolicy(QtCore.Qt.NoFocus)
|
||||
self.z_checkbox.setLayoutDirection(QtCore.Qt.LeftToRight)
|
||||
self.z_checkbox.setObjectName("z_checkbox")
|
||||
self.horizontalLayout_2.addWidget(self.z_checkbox)
|
||||
@@ -189,7 +183,10 @@ class Ui_MainWindow(object):
|
||||
self.z_spin.setProperty("value", 1.0)
|
||||
self.z_spin.setObjectName("z_spin")
|
||||
self.horizontalLayout_2.addWidget(self.z_spin)
|
||||
self.formLayout_4.setLayout(4, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2)
|
||||
self.formLayout_4.setLayout(2, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout_2)
|
||||
self.flip_button = QtWidgets.QPushButton(self.centralwidget)
|
||||
self.flip_button.setObjectName("flip_button")
|
||||
self.formLayout_4.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.flip_button)
|
||||
self.verticalLayout.addLayout(self.formLayout_4)
|
||||
self.line_4 = QtWidgets.QFrame(self.centralwidget)
|
||||
self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
|
||||
@@ -215,27 +212,29 @@ class Ui_MainWindow(object):
|
||||
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, 1360, 22))
|
||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1360, 26))
|
||||
self.menubar.setObjectName("menubar")
|
||||
self.menuOptions = QtWidgets.QMenu(self.menubar)
|
||||
self.menuOptions.setObjectName("menuOptions")
|
||||
self.menuDeveloper_mode = QtWidgets.QMenu(self.menuOptions)
|
||||
self.menuDeveloper_mode.setObjectName("menuDeveloper_mode")
|
||||
self.menuAnimation = QtWidgets.QMenu(self.menubar)
|
||||
self.menuAnimation.setObjectName("menuAnimation")
|
||||
self.menuDrone = QtWidgets.QMenu(self.menubar)
|
||||
self.menuDrone.setObjectName("menuDrone")
|
||||
self.menuDeveloper_mode_2 = QtWidgets.QMenu(self.menuDrone)
|
||||
self.menuDeveloper_mode_2.setObjectName("menuDeveloper_mode_2")
|
||||
self.menuMusic = QtWidgets.QMenu(self.menubar)
|
||||
self.menuMusic.setObjectName("menuMusic")
|
||||
self.menuMusic_2 = QtWidgets.QMenu(self.menuOptions)
|
||||
self.menuMusic_2.setObjectName("menuMusic_2")
|
||||
self.menuTable = QtWidgets.QMenu(self.menubar)
|
||||
self.menuTable.setObjectName("menuTable")
|
||||
self.menuDrone_2 = QtWidgets.QMenu(self.menubar)
|
||||
self.menuDrone_2.setObjectName("menuDrone_2")
|
||||
self.menuSend = QtWidgets.QMenu(self.menuDrone_2)
|
||||
self.menuSend.setObjectName("menuSend")
|
||||
self.menuRestart = QtWidgets.QMenu(self.menuDrone_2)
|
||||
self.menuRestart.setObjectName("menuRestart")
|
||||
self.menuRetrive = QtWidgets.QMenu(self.menuDrone_2)
|
||||
self.menuRetrive.setObjectName("menuRetrive")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
self.action_send_animations = QtWidgets.QAction(MainWindow)
|
||||
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.action_send_aruco_map = QtWidgets.QAction(MainWindow)
|
||||
self.action_send_aruco_map.setObjectName("action_send_aruco_map")
|
||||
self.action_update_client_repo = QtWidgets.QAction(MainWindow)
|
||||
self.action_update_client_repo.setObjectName("action_update_client_repo")
|
||||
self.actionSend_launch_file_for_clever = QtWidgets.QAction(MainWindow)
|
||||
@@ -280,38 +279,69 @@ class Ui_MainWindow(object):
|
||||
self.action_restart_chrony.setObjectName("action_restart_chrony")
|
||||
self.action_send_fcu_parameters = QtWidgets.QAction(MainWindow)
|
||||
self.action_send_fcu_parameters.setObjectName("action_send_fcu_parameters")
|
||||
self.menuDeveloper_mode.addAction(self.action_send_any_file)
|
||||
self.menuDeveloper_mode.addAction(self.action_send_any_command)
|
||||
self.menuOptions.addAction(self.action_send_animations)
|
||||
self.menuOptions.addAction(self.action_send_configurations)
|
||||
self.menuOptions.addAction(self.action_send_launch_file)
|
||||
self.menuOptions.addAction(self.action_send_Aruco_map)
|
||||
self.menuOptions.addAction(self.action_send_calibrations)
|
||||
self.menuOptions.addAction(self.action_send_fcu_parameters)
|
||||
self.action_toggle_select = QtWidgets.QAction(MainWindow)
|
||||
self.action_toggle_select.setObjectName("action_toggle_select")
|
||||
self.action_select_all = QtWidgets.QAction(MainWindow)
|
||||
self.action_select_all.setObjectName("action_select_all")
|
||||
self.action_deselect_all = QtWidgets.QAction(MainWindow)
|
||||
self.action_deselect_all.setObjectName("action_deselect_all")
|
||||
self.action_edit_server_config = QtWidgets.QAction(MainWindow)
|
||||
self.action_edit_server_config.setObjectName("action_edit_server_config")
|
||||
self.action_edit_any_config = QtWidgets.QAction(MainWindow)
|
||||
self.action_edit_any_config.setObjectName("action_edit_any_config")
|
||||
self.action_update_server_git = QtWidgets.QAction(MainWindow)
|
||||
self.action_update_server_git.setObjectName("action_update_server_git")
|
||||
self.action_retrive_any_file = QtWidgets.QAction(MainWindow)
|
||||
self.action_retrive_any_file.setObjectName("action_retrive_any_file")
|
||||
self.action_restart_server = QtWidgets.QAction(MainWindow)
|
||||
self.action_restart_server.setObjectName("action_restart_server")
|
||||
self.action_configure_columns = QtWidgets.QAction(MainWindow)
|
||||
self.action_configure_columns.setObjectName("action_configure_columns")
|
||||
self.menuMusic_2.addAction(self.action_select_music_file)
|
||||
self.menuMusic_2.addAction(self.action_play_music)
|
||||
self.menuMusic_2.addAction(self.action_stop_music)
|
||||
self.menuOptions.addAction(self.menuMusic_2.menuAction())
|
||||
self.menuOptions.addSeparator()
|
||||
self.menuOptions.addAction(self.menuDeveloper_mode.menuAction())
|
||||
self.menuOptions.addAction(self.action_edit_server_config)
|
||||
self.menuOptions.addAction(self.action_edit_any_config)
|
||||
self.menuOptions.addSeparator()
|
||||
self.menuOptions.addAction(self.action_select_all_rows)
|
||||
self.menuAnimation.addAction(self.action_set_start_to_current_position)
|
||||
self.menuAnimation.addAction(self.action_reset_start)
|
||||
self.menuDeveloper_mode_2.addAction(self.action_restart_clever)
|
||||
self.menuDeveloper_mode_2.addAction(self.action_restart_clever_show)
|
||||
self.menuDeveloper_mode_2.addAction(self.action_update_client_repo)
|
||||
self.menuDeveloper_mode_2.addAction(self.action_reboot_all)
|
||||
self.menuDrone.addAction(self.action_set_z_offset_to_ground)
|
||||
self.menuDrone.addAction(self.action_reset_z_offset)
|
||||
self.menuDrone.addSeparator()
|
||||
self.menuDrone.addAction(self.action_restart_chrony)
|
||||
self.menuDrone.addAction(self.action_remove_row)
|
||||
self.menuDrone.addSeparator()
|
||||
self.menuDrone.addAction(self.menuDeveloper_mode_2.menuAction())
|
||||
self.menuMusic.addAction(self.action_select_music_file)
|
||||
self.menuMusic.addAction(self.action_play_music)
|
||||
self.menuMusic.addAction(self.action_stop_music)
|
||||
self.menuOptions.addAction(self.action_update_server_git)
|
||||
self.menuOptions.addAction(self.action_restart_server)
|
||||
self.menuTable.addAction(self.action_toggle_select)
|
||||
self.menuTable.addAction(self.action_select_all)
|
||||
self.menuTable.addAction(self.action_deselect_all)
|
||||
self.menuTable.addSeparator()
|
||||
self.menuTable.addAction(self.action_remove_row)
|
||||
self.menuTable.addSeparator()
|
||||
self.menuTable.addAction(self.action_configure_columns)
|
||||
self.menuSend.addAction(self.action_send_animations)
|
||||
self.menuSend.addAction(self.action_send_configurations)
|
||||
self.menuSend.addAction(self.action_send_launch_file)
|
||||
self.menuSend.addAction(self.action_send_aruco_map)
|
||||
self.menuSend.addAction(self.action_send_calibrations)
|
||||
self.menuSend.addAction(self.action_send_fcu_parameters)
|
||||
self.menuSend.addSeparator()
|
||||
self.menuSend.addAction(self.action_send_any_file)
|
||||
self.menuSend.addAction(self.action_send_any_command)
|
||||
self.menuRestart.addAction(self.action_restart_chrony)
|
||||
self.menuRestart.addAction(self.action_restart_clever)
|
||||
self.menuRestart.addAction(self.action_restart_clever_show)
|
||||
self.menuRestart.addSeparator()
|
||||
self.menuRestart.addAction(self.action_reboot_all)
|
||||
self.menuRetrive.addAction(self.action_retrive_any_file)
|
||||
self.menuDrone_2.addAction(self.menuSend.menuAction())
|
||||
self.menuDrone_2.addAction(self.menuRetrive.menuAction())
|
||||
self.menuDrone_2.addAction(self.menuRestart.menuAction())
|
||||
self.menuDrone_2.addSeparator()
|
||||
self.menuDrone_2.addAction(self.action_reset_z_offset)
|
||||
self.menuDrone_2.addAction(self.action_set_z_offset_to_ground)
|
||||
self.menuDrone_2.addAction(self.action_set_start_to_current_position)
|
||||
self.menuDrone_2.addAction(self.action_reset_start)
|
||||
self.menuDrone_2.addSeparator()
|
||||
self.menuDrone_2.addAction(self.action_update_client_repo)
|
||||
self.menubar.addAction(self.menuOptions.menuAction())
|
||||
self.menubar.addAction(self.menuDrone.menuAction())
|
||||
self.menubar.addAction(self.menuAnimation.menuAction())
|
||||
self.menubar.addAction(self.menuMusic.menuAction())
|
||||
self.menubar.addAction(self.menuTable.menuAction())
|
||||
self.menubar.addAction(self.menuDrone_2.menuAction())
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
@@ -334,23 +364,24 @@ class Ui_MainWindow(object):
|
||||
self.emergency_land_button.setText(_translate("MainWindow", "Emergency land"))
|
||||
self.disarm_all_button.setText(_translate("MainWindow", "Disarm ALL"))
|
||||
self.disarm_selected_button.setText(_translate("MainWindow", "Disarm selected"))
|
||||
self.flip_button.setText(_translate("MainWindow", "Flip"))
|
||||
self.takeoff_button.setText(_translate("MainWindow", "Takeoff"))
|
||||
self.leds_button.setText(_translate("MainWindow", "Test leds"))
|
||||
self.takeoff_button.setText(_translate("MainWindow", "Takeoff"))
|
||||
self.z_checkbox.setText(_translate("MainWindow", " Z ="))
|
||||
self.z_spin.setSuffix(_translate("MainWindow", " m"))
|
||||
self.flip_button.setText(_translate("MainWindow", "Flip"))
|
||||
self.reboot_fcu.setText(_translate("MainWindow", "Reboot FCU"))
|
||||
self.calibrate_gyro.setText(_translate("MainWindow", "Calibrate gyro"))
|
||||
self.calibrate_level.setText(_translate("MainWindow", "Calibrate level"))
|
||||
self.menuOptions.setTitle(_translate("MainWindow", "Server"))
|
||||
self.menuDeveloper_mode.setTitle(_translate("MainWindow", "Developer mode"))
|
||||
self.menuAnimation.setTitle(_translate("MainWindow", "Animation"))
|
||||
self.menuDrone.setTitle(_translate("MainWindow", "Drone"))
|
||||
self.menuDeveloper_mode_2.setTitle(_translate("MainWindow", "Developer mode"))
|
||||
self.menuMusic.setTitle(_translate("MainWindow", "Music"))
|
||||
self.menuMusic_2.setTitle(_translate("MainWindow", "Music"))
|
||||
self.menuTable.setTitle(_translate("MainWindow", "Table"))
|
||||
self.menuDrone_2.setTitle(_translate("MainWindow", "Drone"))
|
||||
self.menuSend.setTitle(_translate("MainWindow", "Send"))
|
||||
self.menuRestart.setTitle(_translate("MainWindow", "Restart"))
|
||||
self.menuRetrive.setTitle(_translate("MainWindow", "Retrive"))
|
||||
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"))
|
||||
self.action_send_aruco_map.setText(_translate("MainWindow", "Send aruco map"))
|
||||
self.action_update_client_repo.setText(_translate("MainWindow", "Update clever-show git"))
|
||||
self.actionSend_launch_file_for_clever.setText(_translate("MainWindow", "Send launch file for clever"))
|
||||
self.action_send_launch_file.setText(_translate("MainWindow", "Send launch files"))
|
||||
@@ -369,8 +400,31 @@ class Ui_MainWindow(object):
|
||||
self.action_send_any_file.setText(_translate("MainWindow", "Send any file"))
|
||||
self.action_send_any_command.setText(_translate("MainWindow", "Send any command"))
|
||||
self.action_stop_music.setText(_translate("MainWindow", "Stop music"))
|
||||
self.action_remove_row.setText(_translate("MainWindow", "Remove from table"))
|
||||
self.action_remove_row.setText(_translate("MainWindow", "Remove drone"))
|
||||
self.action_remove_row.setShortcut(_translate("MainWindow", "Ctrl+Del"))
|
||||
self.action_send_calibrations.setText(_translate("MainWindow", "Send camera calibrations"))
|
||||
self.action_reboot_all.setText(_translate("MainWindow", "Reboot all"))
|
||||
self.action_reboot_all.setText(_translate("MainWindow", "Reboot system"))
|
||||
self.action_restart_chrony.setText(_translate("MainWindow", "Restart chrony"))
|
||||
self.action_send_fcu_parameters.setText(_translate("MainWindow", "Send FCU parameters"))
|
||||
self.action_toggle_select.setText(_translate("MainWindow", "Toggle select"))
|
||||
self.action_toggle_select.setShortcut(_translate("MainWindow", "Ctrl+A"))
|
||||
self.action_select_all.setText(_translate("MainWindow", "Select all"))
|
||||
self.action_select_all.setShortcut(_translate("MainWindow", "Shift+A"))
|
||||
self.action_deselect_all.setText(_translate("MainWindow", "Deselect all"))
|
||||
self.action_deselect_all.setShortcut(_translate("MainWindow", "Alt+A"))
|
||||
self.action_edit_server_config.setText(_translate("MainWindow", "Edit server config"))
|
||||
self.action_edit_any_config.setText(_translate("MainWindow", "Edit any config"))
|
||||
self.action_update_server_git.setText(_translate("MainWindow", "Update server git"))
|
||||
self.action_retrive_any_file.setText(_translate("MainWindow", "Retrive any file"))
|
||||
self.action_restart_server.setText(_translate("MainWindow", "Restart server"))
|
||||
self.action_configure_columns.setText(_translate("MainWindow", "Configure columns"))
|
||||
|
||||
|
||||
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_())
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1360</width>
|
||||
<height>761</height>
|
||||
<height>816</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -76,7 +76,7 @@
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignHCenter|Qt::AlignTop</set>
|
||||
</property>
|
||||
<item row="2" column="0">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="start_text">
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
@@ -89,14 +89,14 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="0" column="1">
|
||||
<widget class="QSpinBox" name="start_delay_spin">
|
||||
<property name="suffix">
|
||||
<string> s</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="music_text">
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
@@ -106,7 +106,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="music_delay_spin">
|
||||
<property name="suffix">
|
||||
<string> s</string>
|
||||
@@ -119,7 +119,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="music_play_text">
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
@@ -129,7 +129,7 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="music_checkbox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
@@ -144,7 +144,7 @@
|
||||
<enum>Qt::DefaultContextMenu</enum>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::RightToLeft</enum>
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="autoFillBackground">
|
||||
<bool>false</bool>
|
||||
@@ -224,14 +224,14 @@
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="1" column="1">
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="land_selected_button">
|
||||
<property name="text">
|
||||
<string>Land selected</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="land_all_button">
|
||||
<property name="text">
|
||||
<string>Land ALL</string>
|
||||
@@ -286,17 +286,14 @@
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="verticalSpacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="3" column="1">
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="disarm_all_button">
|
||||
<property name="text">
|
||||
<string>Disarm ALL</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item row="1" column="1">
|
||||
<widget class="QPushButton" name="disarm_selected_button">
|
||||
<property name="text">
|
||||
<string>Disarm selected</string>
|
||||
@@ -320,10 +317,10 @@
|
||||
<property name="formAlignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<item row="7" column="1">
|
||||
<widget class="QPushButton" name="flip_button">
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="leds_button">
|
||||
<property name="text">
|
||||
<string>Flip</string>
|
||||
<string>Test leds</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -337,26 +334,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QPushButton" name="leds_button">
|
||||
<property name="text">
|
||||
<string>Test leds</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<item row="2" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="z_checkbox">
|
||||
<property name="cursor">
|
||||
<cursorShape>ArrowCursor</cursorShape>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
@@ -383,6 +367,13 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="flip_button">
|
||||
<property name="text">
|
||||
<string>Flip</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
@@ -435,71 +426,89 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1360</width>
|
||||
<height>22</height>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuOptions">
|
||||
<property name="title">
|
||||
<string>Server</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuDeveloper_mode">
|
||||
<widget class="QMenu" name="menuMusic_2">
|
||||
<property name="title">
|
||||
<string>Developer mode</string>
|
||||
<string>Music</string>
|
||||
</property>
|
||||
<addaction name="action_send_any_file"/>
|
||||
<addaction name="action_send_any_command"/>
|
||||
<addaction name="action_select_music_file"/>
|
||||
<addaction name="action_play_music"/>
|
||||
<addaction name="action_stop_music"/>
|
||||
</widget>
|
||||
<addaction name="action_send_animations"/>
|
||||
<addaction name="action_send_configurations"/>
|
||||
<addaction name="action_send_launch_file"/>
|
||||
<addaction name="action_send_Aruco_map"/>
|
||||
<addaction name="action_send_calibrations"/>
|
||||
<addaction name="action_send_fcu_parameters"/>
|
||||
<addaction name="menuMusic_2"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="menuDeveloper_mode"/>
|
||||
<addaction name="action_edit_server_config"/>
|
||||
<addaction name="action_edit_any_config"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_select_all_rows"/>
|
||||
<addaction name="action_update_server_git"/>
|
||||
<addaction name="action_restart_server"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuAnimation">
|
||||
<widget class="QMenu" name="menuTable">
|
||||
<property name="title">
|
||||
<string>Animation</string>
|
||||
<string>Table</string>
|
||||
</property>
|
||||
<addaction name="action_set_start_to_current_position"/>
|
||||
<addaction name="action_reset_start"/>
|
||||
<addaction name="action_toggle_select"/>
|
||||
<addaction name="action_select_all"/>
|
||||
<addaction name="action_deselect_all"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_remove_row"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_configure_columns"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuDrone">
|
||||
<widget class="QMenu" name="menuDrone_2">
|
||||
<property name="title">
|
||||
<string>Drone</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuDeveloper_mode_2">
|
||||
<widget class="QMenu" name="menuSend">
|
||||
<property name="title">
|
||||
<string>Developer mode</string>
|
||||
<string>Send</string>
|
||||
</property>
|
||||
<addaction name="action_send_animations"/>
|
||||
<addaction name="action_send_configurations"/>
|
||||
<addaction name="action_send_launch_file"/>
|
||||
<addaction name="action_send_aruco_map"/>
|
||||
<addaction name="action_send_calibrations"/>
|
||||
<addaction name="action_send_fcu_parameters"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_send_any_file"/>
|
||||
<addaction name="action_send_any_command"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuRestart">
|
||||
<property name="title">
|
||||
<string>Restart</string>
|
||||
</property>
|
||||
<addaction name="action_restart_chrony"/>
|
||||
<addaction name="action_restart_clever"/>
|
||||
<addaction name="action_restart_clever_show"/>
|
||||
<addaction name="action_update_client_repo"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_reboot_all"/>
|
||||
</widget>
|
||||
<addaction name="action_set_z_offset_to_ground"/>
|
||||
<widget class="QMenu" name="menuRetrive">
|
||||
<property name="title">
|
||||
<string>Retrive</string>
|
||||
</property>
|
||||
<addaction name="action_retrive_any_file"/>
|
||||
</widget>
|
||||
<addaction name="menuSend"/>
|
||||
<addaction name="menuRetrive"/>
|
||||
<addaction name="menuRestart"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_reset_z_offset"/>
|
||||
<addaction name="action_set_z_offset_to_ground"/>
|
||||
<addaction name="action_set_start_to_current_position"/>
|
||||
<addaction name="action_reset_start"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_restart_chrony"/>
|
||||
<addaction name="action_remove_row"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="menuDeveloper_mode_2"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuMusic">
|
||||
<property name="title">
|
||||
<string>Music</string>
|
||||
</property>
|
||||
<addaction name="action_select_music_file"/>
|
||||
<addaction name="action_play_music"/>
|
||||
<addaction name="action_stop_music"/>
|
||||
<addaction name="action_update_client_repo"/>
|
||||
</widget>
|
||||
<addaction name="menuOptions"/>
|
||||
<addaction name="menuDrone"/>
|
||||
<addaction name="menuAnimation"/>
|
||||
<addaction name="menuMusic"/>
|
||||
<addaction name="menuTable"/>
|
||||
<addaction name="menuDrone_2"/>
|
||||
</widget>
|
||||
<action name="action_send_animations">
|
||||
<property name="text">
|
||||
@@ -511,7 +520,7 @@
|
||||
<string>Send configurations</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_send_Aruco_map">
|
||||
<action name="action_send_aruco_map">
|
||||
<property name="text">
|
||||
<string>Send aruco map</string>
|
||||
</property>
|
||||
@@ -606,7 +615,10 @@
|
||||
</action>
|
||||
<action name="action_remove_row">
|
||||
<property name="text">
|
||||
<string>Remove from table</string>
|
||||
<string>Remove drone</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+Del</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_send_calibrations">
|
||||
@@ -616,7 +628,7 @@
|
||||
</action>
|
||||
<action name="action_reboot_all">
|
||||
<property name="text">
|
||||
<string>Reboot all</string>
|
||||
<string>Reboot system</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_restart_chrony">
|
||||
@@ -629,6 +641,60 @@
|
||||
<string>Send FCU parameters</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_toggle_select">
|
||||
<property name="text">
|
||||
<string>Toggle select</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+A</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_select_all">
|
||||
<property name="text">
|
||||
<string>Select all</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Shift+A</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_deselect_all">
|
||||
<property name="text">
|
||||
<string>Deselect all</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Alt+A</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_edit_server_config">
|
||||
<property name="text">
|
||||
<string>Edit server config</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_edit_any_config">
|
||||
<property name="text">
|
||||
<string>Edit any config</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_update_server_git">
|
||||
<property name="text">
|
||||
<string>Update server git</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_retrive_any_file">
|
||||
<property name="text">
|
||||
<string>Retrive any file</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_restart_server">
|
||||
<property name="text">
|
||||
<string>Restart server</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_configure_columns">
|
||||
<property name="text">
|
||||
<string>Configure columns</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>start_delay_spin</tabstop>
|
||||
|
||||
@@ -26,7 +26,7 @@ import messaging_lib as messaging
|
||||
import config as cfg
|
||||
|
||||
import copter_table_models as table
|
||||
from copter_table import CopterTableWidget
|
||||
from copter_table import CopterTableWidget, HeaderEditDialog
|
||||
from visual_land_dialog import VisualLandDialog
|
||||
from config_editor_models import ConfigDialog
|
||||
|
||||
@@ -38,6 +38,8 @@ def multi_glob(*patterns):
|
||||
def b_partial(func, *args, **kwargs): # call argument blocker partial
|
||||
return lambda *a: func(*args, **kwargs)
|
||||
|
||||
def restart():
|
||||
os.execl(sys.executable, os.path.abspath(__file__), *sys.argv)
|
||||
|
||||
def confirmation_required(text="Are you sure?", label="Confirm operation?"):
|
||||
def inner(f):
|
||||
@@ -100,11 +102,15 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.player = QtMultimedia.QMediaPlayer()
|
||||
|
||||
def init_ui(self):
|
||||
self.init_table()
|
||||
|
||||
# Connecting
|
||||
self.ui.check_button.clicked.connect(self.selfcheck_selected)
|
||||
self.ui.start_button.clicked.connect(self.send_start_time_selected)
|
||||
self.ui.pause_button.clicked.connect(self.pause_resume_selected)
|
||||
|
||||
self.ui.z_checkbox.clicked.connect(self.ui.z_spin.setEnabled)
|
||||
|
||||
self.ui.land_all_button.clicked.connect(b_partial(Client.broadcast_message, "land"))
|
||||
self.ui.land_selected_button.clicked.connect(b_partial(self.send_to_selected, "land"))
|
||||
self.ui.disarm_all_button.clicked.connect(b_partial(Client.broadcast_message, "disarm"))
|
||||
@@ -117,32 +123,40 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.reboot_fcu.clicked.connect(b_partial(self.send_to_selected, "reboot_fcu"))
|
||||
self.ui.calibrate_gyro.clicked.connect(self.calibrate_gyro_selected)
|
||||
self.ui.calibrate_level.clicked.connect(self.calibrate_level_selected)
|
||||
self.ui.action_remove_row.triggered.connect(self.remove_selected)
|
||||
self.ui.action_send_animations.triggered.connect(self.send_animations)
|
||||
self.ui.action_send_calibrations.triggered.connect(self.send_calibrations)
|
||||
self.ui.action_send_configurations.triggered.connect(self.send_config)
|
||||
self.ui.action_send_Aruco_map.triggered.connect(self.send_aruco)
|
||||
self.ui.action_send_launch_file.triggered.connect(self.send_launch)
|
||||
self.ui.action_send_fcu_parameters.triggered.connect(self.send_fcu_parameters)
|
||||
self.ui.action_send_any_file.triggered.connect(self.send_any_file)
|
||||
self.ui.action_send_any_command.triggered.connect(self.send_any_command)
|
||||
self.ui.action_restart_clever.triggered.connect(
|
||||
b_partial(self.send_to_selected, "service_restart", kwargs={"name": "clever"}))
|
||||
self.ui.action_restart_clever_show.triggered.connect(self.restart_clever_show)
|
||||
self.ui.action_update_client_repo.triggered.connect(b_partial(self.send_to_selected, "update_repo"))
|
||||
self.ui.action_reboot_all.triggered.connect(b_partial(self.send_to_selected, "reboot_all"))
|
||||
self.ui.action_set_start_to_current_position.triggered.connect(b_partial(self.send_to_selected, "move_start"))
|
||||
self.ui.action_reset_start.triggered.connect(b_partial(self.send_to_selected, "reset_start"))
|
||||
self.ui.action_set_z_offset_to_ground.triggered.connect(b_partial(self.send_to_selected, "set_z_to_ground"))
|
||||
self.ui.action_reset_z_offset.triggered.connect(b_partial(self.send_to_selected, "reset_z_offset"))
|
||||
self.ui.action_restart_chrony.triggered.connect(self.restart_chrony)
|
||||
|
||||
self.ui.action_select_music_file.triggered.connect(self.select_music_file)
|
||||
self.ui.action_play_music.triggered.connect(self.play_music)
|
||||
self.ui.action_stop_music.triggered.connect(self.stop_music)
|
||||
|
||||
self.ui.action_select_all_rows.triggered.connect(self.model.select_all)
|
||||
self.ui.action_restart_server.triggered.connect(restart)
|
||||
|
||||
self.init_table()
|
||||
self.ui.action_select_all.triggered.connect(partial(self.ui.copter_table.select_all, Qt.Checked))
|
||||
self.ui.action_deselect_all.triggered.connect(partial(self.ui.copter_table.select_all, Qt.Unchecked))
|
||||
self.ui.action_toggle_select.triggered.connect(self.ui.copter_table.toggle_select)
|
||||
self.ui.action_remove_row.triggered.connect(self.remove_selected)
|
||||
self.ui.action_configure_columns.triggered.connect(self.configure_columns)
|
||||
|
||||
self.ui.action_send_animations.triggered.connect(self.send_animations)
|
||||
self.ui.action_send_calibrations.triggered.connect(self.send_calibrations)
|
||||
self.ui.action_send_configurations.triggered.connect(self.send_config)
|
||||
self.ui.action_send_aruco_map.triggered.connect(self.send_aruco)
|
||||
self.ui.action_send_launch_file.triggered.connect(self.send_launch)
|
||||
self.ui.action_send_fcu_parameters.triggered.connect(self.send_fcu_parameters)
|
||||
self.ui.action_send_any_file.triggered.connect(self.send_any_file)
|
||||
self.ui.action_send_any_command.triggered.connect(self.send_any_command)
|
||||
|
||||
self.ui.action_restart_clever.triggered.connect(
|
||||
b_partial(self.send_to_selected, "service_restart", kwargs={"name": "clever"}))
|
||||
self.ui.action_restart_clever_show.triggered.connect(self.restart_clever_show)
|
||||
self.ui.action_restart_chrony.triggered.connect(self.restart_chrony)
|
||||
self.ui.action_reboot_all.triggered.connect(b_partial(self.send_to_selected, "reboot_all"))
|
||||
|
||||
self.ui.action_set_start_to_current_position.triggered.connect(b_partial(self.send_to_selected, "move_start"))
|
||||
self.ui.action_reset_start.triggered.connect(b_partial(self.send_to_selected, "reset_start"))
|
||||
self.ui.action_set_z_offset_to_ground.triggered.connect(b_partial(self.send_to_selected, "set_z_to_ground"))
|
||||
self.ui.action_reset_z_offset.triggered.connect(b_partial(self.send_to_selected, "reset_z_offset"))
|
||||
|
||||
self.ui.action_update_client_repo.triggered.connect(b_partial(self.send_to_selected, "update_repo"))
|
||||
|
||||
def init_table(self):
|
||||
# Remove standard table widget
|
||||
@@ -153,6 +167,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.copter_table.setObjectName("copter_table")
|
||||
# Insert to layout at right
|
||||
self.ui.horizontalLayout.insertWidget(0, self.ui.copter_table, 0)
|
||||
self.ui.copter_table.setFocus()
|
||||
|
||||
def init_model(self):
|
||||
# Connect model signals to UI
|
||||
@@ -239,31 +254,16 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
@pyqtSlot(object, dict)
|
||||
def update_table_data(self, client, telems: dict):
|
||||
cols_dict = {
|
||||
"git_version": 1,
|
||||
"animation_id": 2,
|
||||
"battery": 3,
|
||||
"fcu_status": 4,
|
||||
"calibration_status": 5,
|
||||
"mode": 6,
|
||||
"selfcheck": 7,
|
||||
"current_position": 8,
|
||||
"start_position": 9,
|
||||
"task": 10,
|
||||
"time": 11,
|
||||
"config_version": 12,
|
||||
}
|
||||
|
||||
for key, value in telems.items():
|
||||
col = cols_dict.get(key, None)
|
||||
if col is None:
|
||||
logging.error("No column {} present!".format(key))
|
||||
continue
|
||||
|
||||
row_data = self.model.get_row_by_attr("client", client)
|
||||
row_num = self.model.get_row_index(row_data)
|
||||
if row_num is not None:
|
||||
self.model.update_data(row_num, col, value, Qt.EditRole)
|
||||
try:
|
||||
col = self.model.index(key)
|
||||
except ValueError:
|
||||
logging.error(f"No column {key} present!")
|
||||
else:
|
||||
row_data = self.model.get_row_by_attr("client", client)
|
||||
row_num = self.model.get_row_index(row_data)
|
||||
if row_num is not None:
|
||||
self.model.update_data(row_num, col, value, Qt.EditRole)
|
||||
|
||||
@pyqtSlot()
|
||||
def remove_selected(self):
|
||||
@@ -548,8 +548,11 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
@pyqtSlot()
|
||||
def visual_land(self):
|
||||
dialog = VisualLandDialog(self.model)
|
||||
dialog.start()
|
||||
VisualLandDialog(self.model).start()
|
||||
|
||||
@pyqtSlot()
|
||||
def configure_columns(self):
|
||||
HeaderEditDialog(self.ui.copter_table, self.server.config).exec()
|
||||
|
||||
def register_callbacks(self):
|
||||
@messaging.message_callback("telemetry")
|
||||
|
||||
Reference in New Issue
Block a user