mirror of
https://github.com/yoboujon/dumber.git
synced 2025-06-08 13:50:49 +02:00
merge depuis la branche evoxx-amelioration-moniteur-qt
This commit is contained in:
commit
afdf84cd94
4 changed files with 69 additions and 34 deletions
38
.gitignore
vendored
38
.gitignore
vendored
|
@ -43,6 +43,18 @@ GUI
|
||||||
# Image rpi
|
# Image rpi
|
||||||
*.img
|
*.img
|
||||||
|
|
||||||
|
# Fichiers Images
|
||||||
|
*.jpg
|
||||||
|
*.jpeg
|
||||||
|
*.png
|
||||||
|
*.tiff
|
||||||
|
*.bmp
|
||||||
|
*.gif
|
||||||
|
|
||||||
|
# Fichiers documentation
|
||||||
|
*.pdf
|
||||||
|
*.chm
|
||||||
|
|
||||||
# Archives
|
# Archives
|
||||||
*.zip
|
*.zip
|
||||||
*.tar
|
*.tar
|
||||||
|
@ -54,19 +66,6 @@ GUI
|
||||||
*.7z
|
*.7z
|
||||||
*.rar
|
*.rar
|
||||||
|
|
||||||
# Images
|
|
||||||
*.jpg
|
|
||||||
*.png
|
|
||||||
*.gif
|
|
||||||
*.bmp
|
|
||||||
*.jpeg
|
|
||||||
*.tiff
|
|
||||||
*.svg
|
|
||||||
|
|
||||||
# Documents
|
|
||||||
*.pdf
|
|
||||||
*.chm
|
|
||||||
|
|
||||||
# Trucs de MDK
|
# Trucs de MDK
|
||||||
*.uvgui*
|
*.uvgui*
|
||||||
*.bak
|
*.bak
|
||||||
|
@ -78,12 +77,9 @@ GUI
|
||||||
/software/raspberry/superviseur-robot/superviseur/dist/
|
/software/raspberry/superviseur-robot/superviseur/dist/
|
||||||
/software/raspberry/testeur/testeur/build/
|
/software/raspberry/testeur/testeur/build/
|
||||||
/software/raspberry/testeur/testeur/dist/
|
/software/raspberry/testeur/testeur/dist/
|
||||||
/software/dumber3/Release/
|
|
||||||
/software/dumber3/Debug/
|
|
||||||
/software/dumber3/Tests/
|
|
||||||
/software/dumber3/workspace/
|
|
||||||
|
|
||||||
/hardware/meca/Dumber_2022/Pieces/
|
|
||||||
/hardware/meca/Dumber_2022/OldVersions/
|
|
||||||
|
|
||||||
/doc/Doc\ robot/doxygen/
|
/doc/Doc\ robot/doxygen/
|
||||||
|
/software/robot/Debug/
|
||||||
|
/software/robot/Release/
|
||||||
|
/hardware/meca/Dumber_2022/Pieces/OldVersions/
|
||||||
|
/hardware/meca/Dumber_2022/OldVersions/
|
||||||
|
/hardware/meca/Dumber_2022/Pieces/export/
|
||||||
|
|
|
@ -270,7 +270,7 @@ class Ui_MainWindow(object):
|
||||||
self.label_connectionStatus.setText(_translate("MainWindow", "Not connected"))
|
self.label_connectionStatus.setText(_translate("MainWindow", "Not connected"))
|
||||||
self.checkBox_watchdog.setText(_translate("MainWindow", "Start with &watchdog"))
|
self.checkBox_watchdog.setText(_translate("MainWindow", "Start with &watchdog"))
|
||||||
self.pushButton_start.setText(_translate("MainWindow", "Start r&obot"))
|
self.pushButton_start.setText(_translate("MainWindow", "Start r&obot"))
|
||||||
self.groupBox_mouvments.setTitle(_translate("MainWindow", "Mouvments"))
|
self.groupBox_mouvments.setTitle(_translate("MainWindow", "Movements"))
|
||||||
self.pushButton_up.setText(_translate("MainWindow", "&Up"))
|
self.pushButton_up.setText(_translate("MainWindow", "&Up"))
|
||||||
self.pushButton_left.setText(_translate("MainWindow", "&Left"))
|
self.pushButton_left.setText(_translate("MainWindow", "&Left"))
|
||||||
self.pushButton_stop.setText(_translate("MainWindow", "&Stop"))
|
self.pushButton_stop.setText(_translate("MainWindow", "&Stop"))
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
"""Monitor-python : a monitor tool for robot control, using QT5
|
||||||
|
Usage: monitor-python.py
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
from email.message import Message
|
from email.message import Message
|
||||||
from email.policy import Policy
|
from email.policy import Policy
|
||||||
import os
|
import os
|
||||||
|
@ -17,6 +22,20 @@ from globvar import GlobVar
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
|
|
||||||
|
__author__ = "Sebastien DI MERCURIO"
|
||||||
|
__copyright__ = "Copyright 2024, INSA Toulouse"
|
||||||
|
__credits__ = ["Sebastien DI MERCURIO"]
|
||||||
|
__license__ = "GPL"
|
||||||
|
__version__ = "1.1"
|
||||||
|
__maintainer__ = "Sebastien DI MERCURIO"
|
||||||
|
__email__ = "dimercur@insa-toulouse.fr"
|
||||||
|
__status__ = "Production"
|
||||||
|
|
||||||
|
"""
|
||||||
|
The main application class.
|
||||||
|
|
||||||
|
Instantiate it for opening main window
|
||||||
|
"""
|
||||||
class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
_msg_dialog= None
|
_msg_dialog= None
|
||||||
_batteryTimer=None
|
_batteryTimer=None
|
||||||
|
@ -28,8 +47,6 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
#self.DisableUIWidgets("Network")
|
|
||||||
|
|
||||||
self.lineEdit_address.setText(GlobVar.address)
|
self.lineEdit_address.setText(GlobVar.address)
|
||||||
self.lineEdit_port.setText(str(GlobVar.port))
|
self.lineEdit_port.setText(str(GlobVar.port))
|
||||||
|
|
||||||
|
@ -54,6 +71,9 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
self._FPSTimer = QtCore.QTimer()
|
self._FPSTimer = QtCore.QTimer()
|
||||||
self._FPSTimer.timeout.connect(self.OnFPSTimeout)
|
self._FPSTimer.timeout.connect(self.OnFPSTimeout)
|
||||||
|
|
||||||
|
self.DisableUIWidgets("Network")
|
||||||
|
self.DisableUIWidgets("Robot")
|
||||||
|
|
||||||
def connectSignalSlots(self):
|
def connectSignalSlots(self):
|
||||||
# Buttons
|
# Buttons
|
||||||
self.pushButton_start.pressed.connect(self.OnButtonPress_Start)
|
self.pushButton_start.pressed.connect(self.OnButtonPress_Start)
|
||||||
|
@ -90,27 +110,43 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
|
|
||||||
def EnableUIWidgets(self, area):
|
def EnableUIWidgets(self, area):
|
||||||
if area == "Network":
|
if area == "Network":
|
||||||
self.groupBox_activation.setDisabled(False)
|
# Widget for robot connection
|
||||||
|
self.checkBox_watchdog.setDisabled(False)
|
||||||
|
self.pushButton_start.setDisabled(False)
|
||||||
|
|
||||||
|
# Widget for camera and position
|
||||||
self.label_Image.setDisabled(False)
|
self.label_Image.setDisabled(False)
|
||||||
self.pushButton_confirmArena.setDisabled(False)
|
self.pushButton_confirmArena.setDisabled(False)
|
||||||
self.checkBox_enableCamera.setDisabled(False)
|
self.checkBox_enableCamera.setDisabled(False)
|
||||||
self.checkBox_enableFPS.setDisabled(False)
|
self.checkBox_enableFPS.setDisabled(False)
|
||||||
self.checkBox_enablePosition.setDisabled(False)
|
self.checkBox_enablePosition.setDisabled(False)
|
||||||
else:
|
self.label_RobotID.setDisabled(False)
|
||||||
|
self.label_RobotAngle.setDisabled(False)
|
||||||
|
self.label_RobotPos.setDisabled(False)
|
||||||
|
self.label_RobotDirection.setDisabled(False)
|
||||||
|
else: # area Robot
|
||||||
|
# Widget for robot mouvement and battery
|
||||||
self.groupBox_mouvments.setDisabled(False)
|
self.groupBox_mouvments.setDisabled(False)
|
||||||
self.groupBox_AnswerandBattery.setDisabled(False)
|
self.groupBox_AnswerandBattery.setDisabled(False)
|
||||||
|
|
||||||
def DisableUIWidgets(self, area):
|
def DisableUIWidgets(self, area):
|
||||||
if area == "Network":
|
if area == "Network":
|
||||||
self.groupBox_activation.setDisabled(True)
|
# Widget for robot connection
|
||||||
|
self.checkBox_watchdog.setDisabled(True)
|
||||||
|
self.pushButton_start.setDisabled(True)
|
||||||
|
|
||||||
|
# Widget for camera and position
|
||||||
self.label_Image.setDisabled(True)
|
self.label_Image.setDisabled(True)
|
||||||
self.pushButton_confirmArena.setDisabled(True)
|
self.pushButton_confirmArena.setDisabled(True)
|
||||||
self.checkBox_enableCamera.setDisabled(True)
|
self.checkBox_enableCamera.setDisabled(True)
|
||||||
self.checkBox_enableFPS.setDisabled(True)
|
self.checkBox_enableFPS.setDisabled(True)
|
||||||
self.checkBox_enablePosition.setDisabled(True)
|
self.checkBox_enablePosition.setDisabled(True)
|
||||||
self.groupBox_AnswerandBattery.setDisabled(True)
|
self.label_RobotID.setDisabled(True)
|
||||||
self.groupBox_mouvments.setDisabled(True)
|
self.label_RobotAngle.setDisabled(True)
|
||||||
else:
|
self.label_RobotPos.setDisabled(True)
|
||||||
|
self.label_RobotDirection.setDisabled(True)
|
||||||
|
else: # area Robot
|
||||||
|
# Widget for robot mouvement and battery
|
||||||
self.groupBox_mouvments.setDisabled(True)
|
self.groupBox_mouvments.setDisabled(True)
|
||||||
self.groupBox_AnswerandBattery.setDisabled(True)
|
self.groupBox_AnswerandBattery.setDisabled(True)
|
||||||
|
|
||||||
|
@ -127,6 +163,8 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
def OnButtonPress_Start (self):
|
def OnButtonPress_Start (self):
|
||||||
if self.pushButton_start.text() == "Start r&obot":
|
if self.pushButton_start.text() == "Start r&obot":
|
||||||
if self.networkThread.robotOpenCom() == NetworkAnswers.ACK:
|
if self.networkThread.robotOpenCom() == NetworkAnswers.ACK:
|
||||||
|
self.networkThread.robotReset()
|
||||||
|
|
||||||
# com opened successfully, start robot
|
# com opened successfully, start robot
|
||||||
if self.checkBox_watchdog.isChecked():
|
if self.checkBox_watchdog.isChecked():
|
||||||
# start with watchdog
|
# start with watchdog
|
||||||
|
@ -144,7 +182,7 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
msg.warning(self,'Invalid answer', 'Server answer was not acknowledged. Maybe robot is still running', msg.Ok)
|
msg.warning(self,'Invalid answer', 'Server answer was not acknowledged. Maybe robot is still running', msg.Ok)
|
||||||
|
|
||||||
self.pushButton_start.setText("Start r&obot")
|
self.pushButton_start.setText("Start r&obot")
|
||||||
#self.DisableUIWidgets("Robot")
|
self.DisableUIWidgets("Robot")
|
||||||
|
|
||||||
@QtCore.pyqtSlot()
|
@QtCore.pyqtSlot()
|
||||||
def OnButtonPress_ConfirmArena(self):
|
def OnButtonPress_ConfirmArena(self):
|
||||||
|
@ -341,7 +379,8 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow):
|
||||||
|
|
||||||
self.label_connectionStatus.setText("Not connected")
|
self.label_connectionStatus.setText("Not connected")
|
||||||
self.pushButton_start.setText("Start r&obot")
|
self.pushButton_start.setText("Start r&obot")
|
||||||
#self.DisableUIWidgets("Network")
|
self.DisableUIWidgets("Network")
|
||||||
|
self.DisableUIWidgets("Robot")
|
||||||
|
|
||||||
# Callback for answer event from network manager
|
# Callback for answer event from network manager
|
||||||
@QtCore.pyqtSlot(int)
|
@QtCore.pyqtSlot(int)
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<string>Robot Monitor</string>
|
<string>Robot Monitor</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="centralwidget">
|
<widget class="QWidget" name="centralwidget">
|
||||||
<widget class="QWidget" name="">
|
<widget class="QWidget" name="layoutWidget">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>20</x>
|
<x>20</x>
|
||||||
|
@ -341,7 +341,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBox_mouvments">
|
<widget class="QGroupBox" name="groupBox_mouvments">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Mouvments</string>
|
<string>Movements</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignCenter</set>
|
<set>Qt::AlignCenter</set>
|
||||||
|
|
Loading…
Add table
Reference in a new issue