mirror of
https://github.com/CopterExpress/clever-show.git
synced 2026-06-04 11:09:33 +00:00
Server: Update interface
This commit is contained in:
@@ -173,12 +173,12 @@ class Ui_MainWindow(object):
|
||||
self.menuOptions.setObjectName("menuOptions")
|
||||
self.menuDeveloper_mode = QtWidgets.QMenu(self.menuOptions)
|
||||
self.menuDeveloper_mode.setObjectName("menuDeveloper_mode")
|
||||
self.menuTable = QtWidgets.QMenu(self.menubar)
|
||||
self.menuTable.setObjectName("menuTable")
|
||||
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")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
@@ -214,28 +214,40 @@ class Ui_MainWindow(object):
|
||||
self.action_play_music.setObjectName("action_play_music")
|
||||
self.action_test_music_after = QtWidgets.QAction(MainWindow)
|
||||
self.action_test_music_after.setObjectName("action_test_music_after")
|
||||
self.menuDeveloper_mode.addAction(self.action_send_launch_file)
|
||||
self.menuDeveloper_mode.addAction(self.action_restart_clever)
|
||||
self.menuDeveloper_mode.addAction(self.action_restart_clever_show)
|
||||
self.menuDeveloper_mode.addAction(self.action_update_client_repo)
|
||||
self.actionFill = QtWidgets.QAction(MainWindow)
|
||||
self.actionFill.setObjectName("actionFill")
|
||||
self.action_send_any_file = QtWidgets.QAction(MainWindow)
|
||||
self.action_send_any_file.setObjectName("action_send_any_file")
|
||||
self.actionSend_any_command = QtWidgets.QAction(MainWindow)
|
||||
self.actionSend_any_command.setObjectName("actionSend_any_command")
|
||||
self.action_stop_music = QtWidgets.QAction(MainWindow)
|
||||
self.action_stop_music.setObjectName("action_stop_music")
|
||||
self.menuDeveloper_mode.addAction(self.action_send_any_file)
|
||||
self.menuDeveloper_mode.addAction(self.actionSend_any_command)
|
||||
self.menuOptions.addAction(self.action_send_animations)
|
||||
self.menuOptions.addAction(self.action_send_configurations)
|
||||
self.menuOptions.addAction(self.action_send_Aruco_map)
|
||||
self.menuOptions.addAction(self.action_send_launch_file)
|
||||
self.menuOptions.addSeparator()
|
||||
self.menuOptions.addAction(self.menuDeveloper_mode.menuAction())
|
||||
self.menuTable.addAction(self.action_select_all_rows)
|
||||
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.menuDrone.addAction(self.action_set_z_offset_to_ground)
|
||||
self.menuDrone.addAction(self.action_reset_z_offset)
|
||||
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_test_music_after)
|
||||
self.menuMusic.addAction(self.action_stop_music)
|
||||
self.menubar.addAction(self.menuOptions.menuAction())
|
||||
self.menubar.addAction(self.menuAnimation.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.retranslateUi(MainWindow)
|
||||
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
||||
@@ -243,7 +255,7 @@ class Ui_MainWindow(object):
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
_translate = QtCore.QCoreApplication.translate
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "Clever Drone Animation Player"))
|
||||
MainWindow.setWindowTitle(_translate("MainWindow", "Clever Drone Show"))
|
||||
self.music_text.setText(_translate("MainWindow", " Music after"))
|
||||
self.music_delay_spin.setSuffix(_translate("MainWindow", " s"))
|
||||
self.music_play_text.setText(_translate("MainWindow", " Play music"))
|
||||
@@ -263,21 +275,21 @@ class Ui_MainWindow(object):
|
||||
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", "Actions"))
|
||||
self.menuOptions.setTitle(_translate("MainWindow", "Server"))
|
||||
self.menuDeveloper_mode.setTitle(_translate("MainWindow", "Developer mode"))
|
||||
self.menuTable.setTitle(_translate("MainWindow", "Table"))
|
||||
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.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_update_client_repo.setText(_translate("MainWindow", "Update client repo"))
|
||||
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_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 file to clever"))
|
||||
self.action_send_launch_file.setText(_translate("MainWindow", "Send launch file to clever"))
|
||||
self.action_restart_clever.setText(_translate("MainWindow", "Restart clever service"))
|
||||
self.action_restart_clever_show.setText(_translate("MainWindow", "Restart clever-show service"))
|
||||
self.action_select_all_rows.setText(_translate("MainWindow", "Select All"))
|
||||
self.action_select_all_rows.setText(_translate("MainWindow", "Select all drones"))
|
||||
self.action_select_all_rows.setShortcut(_translate("MainWindow", "Ctrl+A"))
|
||||
self.action_set_start_to_current_position.setText(_translate("MainWindow", "Set start X Y to current position"))
|
||||
self.action_reset_start.setText(_translate("MainWindow", "Reset start position"))
|
||||
@@ -286,3 +298,7 @@ class Ui_MainWindow(object):
|
||||
self.action_select_music_file.setText(_translate("MainWindow", "Select music file"))
|
||||
self.action_play_music.setText(_translate("MainWindow", "Play music"))
|
||||
self.action_test_music_after.setText(_translate("MainWindow", "Test music after"))
|
||||
self.actionFill.setText(_translate("MainWindow", "fill"))
|
||||
self.action_send_any_file.setText(_translate("MainWindow", "Send any file"))
|
||||
self.actionSend_any_command.setText(_translate("MainWindow", "Send any command"))
|
||||
self.action_stop_music.setText(_translate("MainWindow", "Stop music"))
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Clever Drone Animation Player</string>
|
||||
<string>Clever Drone Show</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<property name="enabled">
|
||||
@@ -333,27 +333,22 @@
|
||||
</property>
|
||||
<widget class="QMenu" name="menuOptions">
|
||||
<property name="title">
|
||||
<string>Actions</string>
|
||||
<string>Server</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuDeveloper_mode">
|
||||
<property name="title">
|
||||
<string>Developer mode</string>
|
||||
</property>
|
||||
<addaction name="action_send_launch_file"/>
|
||||
<addaction name="action_restart_clever"/>
|
||||
<addaction name="action_restart_clever_show"/>
|
||||
<addaction name="action_update_client_repo"/>
|
||||
<addaction name="action_send_any_file"/>
|
||||
<addaction name="actionSend_any_command"/>
|
||||
</widget>
|
||||
<addaction name="action_send_animations"/>
|
||||
<addaction name="action_send_configurations"/>
|
||||
<addaction name="action_send_Aruco_map"/>
|
||||
<addaction name="action_send_launch_file"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="menuDeveloper_mode"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuTable">
|
||||
<property name="title">
|
||||
<string>Table</string>
|
||||
</property>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="action_select_all_rows"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuAnimation">
|
||||
@@ -367,8 +362,18 @@
|
||||
<property name="title">
|
||||
<string>Drone</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuDeveloper_mode_2">
|
||||
<property name="title">
|
||||
<string>Developer mode</string>
|
||||
</property>
|
||||
<addaction name="action_restart_clever"/>
|
||||
<addaction name="action_restart_clever_show"/>
|
||||
<addaction name="action_update_client_repo"/>
|
||||
</widget>
|
||||
<addaction name="action_set_z_offset_to_ground"/>
|
||||
<addaction name="action_reset_z_offset"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="menuDeveloper_mode_2"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuMusic">
|
||||
<property name="title">
|
||||
@@ -376,32 +381,31 @@
|
||||
</property>
|
||||
<addaction name="action_select_music_file"/>
|
||||
<addaction name="action_play_music"/>
|
||||
<addaction name="action_test_music_after"/>
|
||||
<addaction name="action_stop_music"/>
|
||||
</widget>
|
||||
<addaction name="menuOptions"/>
|
||||
<addaction name="menuAnimation"/>
|
||||
<addaction name="menuDrone"/>
|
||||
<addaction name="menuAnimation"/>
|
||||
<addaction name="menuMusic"/>
|
||||
<addaction name="menuTable"/>
|
||||
</widget>
|
||||
<action name="action_send_animations">
|
||||
<property name="text">
|
||||
<string>Send Animations</string>
|
||||
<string>Send animations</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_send_configurations">
|
||||
<property name="text">
|
||||
<string>Send Configurations</string>
|
||||
<string>Send configurations</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_send_Aruco_map">
|
||||
<property name="text">
|
||||
<string>Send Aruco map</string>
|
||||
<string>Send aruco map</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_update_client_repo">
|
||||
<property name="text">
|
||||
<string>Update client repo</string>
|
||||
<string>Update clever-show git</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSend_launch_file_for_clever">
|
||||
@@ -411,7 +415,7 @@
|
||||
</action>
|
||||
<action name="action_send_launch_file">
|
||||
<property name="text">
|
||||
<string>Send .launch file to clever</string>
|
||||
<string>Send launch file to clever</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_restart_clever">
|
||||
@@ -426,7 +430,7 @@
|
||||
</action>
|
||||
<action name="action_select_all_rows">
|
||||
<property name="text">
|
||||
<string>Select All</string>
|
||||
<string>Select all drones</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+A</string>
|
||||
@@ -467,6 +471,26 @@
|
||||
<string>Test music after</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionFill">
|
||||
<property name="text">
|
||||
<string>fill</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_send_any_file">
|
||||
<property name="text">
|
||||
<string>Send any file</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSend_any_command">
|
||||
<property name="text">
|
||||
<string>Send any command</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_stop_music">
|
||||
<property name="text">
|
||||
<string>Stop music</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>start_delay_spin</tabstop>
|
||||
|
||||
@@ -143,7 +143,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
self.ui.action_reset_z_offset.triggered.connect(self.reset_z_offset)
|
||||
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_test_music_after.triggered.connect(self.test_music_after)
|
||||
self.ui.action_stop_music.triggered.connect(self.stop_music)
|
||||
|
||||
# Set most safety-important buttons disabled
|
||||
self.ui.start_button.setEnabled(False)
|
||||
@@ -390,47 +390,53 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||
|
||||
@pyqtSlot()
|
||||
def select_music_file(self):
|
||||
path = QFileDialog.getOpenFileName(self, "Select music file", filter="Music files (*.mp3)")[0]
|
||||
path = QFileDialog.getOpenFileName(self, "Select music file", filter="Music files (*.mp3 *.wav)")[0]
|
||||
if path:
|
||||
media = QUrl.fromLocalFile(path)
|
||||
content = QtMultimedia.QMediaContent(media)
|
||||
self.player.setMedia(content)
|
||||
self.ui.action_select_music_file.setText(self.ui.action_select_music_file.text() + " (selected)")
|
||||
|
||||
@pyqtSlot()
|
||||
def play_music(self):
|
||||
if self.player.mediaStatus() == QtMultimedia.QMediaPlayer.InvalidMedia:
|
||||
logger.info("Can't play media")
|
||||
logging.info("Can't play media")
|
||||
return
|
||||
if self.player.mediaStatus() == QtMultimedia.QMediaPlayer.NoMedia:
|
||||
logger.info("No media file")
|
||||
logging.info("No media file")
|
||||
return
|
||||
|
||||
if self.player.state() == QtMultimedia.QMediaPlayer.StoppedState or \
|
||||
self.player.state() == QtMultimedia.QMediaPlayer.PausedState:
|
||||
self.ui.action_play_music.setText("Pause music")
|
||||
self.player.play()
|
||||
else:
|
||||
self.ui.action_play_music.setText("Play music")
|
||||
self.player.pause()
|
||||
|
||||
|
||||
@pyqtSlot()
|
||||
def stop_music(self):
|
||||
if self.player.mediaStatus() == QtMultimedia.QMediaPlayer.InvalidMedia:
|
||||
logging.info("Can't stop media")
|
||||
return
|
||||
if self.player.mediaStatus() == QtMultimedia.QMediaPlayer.NoMedia:
|
||||
logging.info("No media file")
|
||||
return
|
||||
self.player.stop()
|
||||
|
||||
@asyncio.coroutine
|
||||
def play_music_at_time(self, t):
|
||||
if self.player.mediaStatus() == QtMultimedia.QMediaPlayer.InvalidMedia:
|
||||
logger.info("Can't play media")
|
||||
logging.info("Can't play media")
|
||||
return
|
||||
if self.player.mediaStatus() == QtMultimedia.QMediaPlayer.NoMedia:
|
||||
logger.info("No media file")
|
||||
logging.info("No media file")
|
||||
return
|
||||
self.player.stop()
|
||||
yield from asyncio.sleep(t - time.time())
|
||||
#wait(t)
|
||||
logging.info("Playing music")
|
||||
self.player.play()
|
||||
|
||||
@pyqtSlot()
|
||||
def test_music_after(self):
|
||||
dt = self.ui.music_delay_spin.value()
|
||||
asyncio.ensure_future(self.play_music_at_time(dt+time.time()), loop=loop)
|
||||
logging.info('Wait {} seconds to play music'.format(dt))
|
||||
|
||||
@pyqtSlot()
|
||||
def emergency(self):
|
||||
client_row_min = 0
|
||||
|
||||
Reference in New Issue
Block a user