Skip to content

Commit 15f18f5

Browse files
author
Gauthier
committed
Edition initiale depuis Snoopy
1 parent 15cec4d commit 15f18f5

19 files changed

+200
-95
lines changed

cn5x.py cn5X.py

+52-10
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
#!/usr/bin/env python
22
# -*- coding: UTF-8 -*-
33

4+
import sys, os
45
from PyQt5 import QtWidgets, QtGui
56
import mainWindow
67
from connexion import *
8+
from msgbox import *
79

810
defaultBaudRate = 115200
911

@@ -14,20 +16,37 @@ def __init__(self, parent=None):
1416
self.ui = mainWindow.Ui_mainWindow()
1517
self.ui.setupUi(self)
1618

19+
pathname = os.path.abspath(os.path.dirname(sys.argv[0]))
20+
os.chdir(pathname)
21+
22+
# Chargement de la police des labels de status machine
23+
QtGui.QFontDatabase.addApplicationFont('fonts/LEDCalculator.ttf')
24+
1725
# gestion du port série
1826
self.serial = serialCom()
1927

20-
# Evenements du bouton d'arrêt d'urgence
21-
self.ui.btnUrgence.pressed.connect(self.action_arretUrgence)
22-
2328
# Label du bouton connect
2429
self.ui.btnConnect.setText("Connecter")
25-
# un clic sur le bouton appellera la méthode 'action_bouton'
26-
self.ui.btnConnect.clicked.connect(self.action_btnConnect)
2730

2831
# on rempli la liste des ports série
29-
for p in serialCom.comList:
30-
self.ui.cmbPort.addItem(p.device + ' - ' + p.description)
32+
if len(serialCom.comList) > 0:
33+
for p in serialCom.comList:
34+
self.ui.cmbPort.addItem(p.device + ' - ' + p.description)
35+
self.ui.cmbBauds.setEnabled(True)
36+
self.ui.btnConnect.setEnabled(True)
37+
else:
38+
self.ui.cmbBauds.setEnabled(False)
39+
self.ui.btnConnect.setEnabled(False)
40+
m = msgBox(
41+
title = "Attention !",
42+
text = "Aucun port de communication disponible !",
43+
info = sys.argv[0] + " n'a pas trouvé de port série permettant de communiquer avec grbl.",
44+
icon = msgIconList.Information,
45+
detail = "\nclass serialCom:\nL'appel de \"serial.tools.list_ports.comports()\" n'a renvoyé aucun port.",
46+
stdButton = msgButtonList.Close
47+
)
48+
m.afficheMsg()
49+
3150
# Et la liste des vitesses
3251
curIndex = -1
3352
for v in serialCom.baudRates:
@@ -37,20 +56,43 @@ def __init__(self, parent=None):
3756
self.ui.cmbBauds.setCurrentIndex(curIndex)
3857
print(self.ui.cmbBauds.currentIndex())
3958

59+
# on affiche un texte en bas de la fenêtre (status bar)
60+
self.ui.statusBar.showMessage("coucou")
61+
62+
# Evenements du bouton d'arrêt d'urgence
63+
self.ui.btnUrgence.pressed.connect(self.action_arretUrgence)
4064
# un clic sur un élément de la liste appellera la méthode 'on_item_changed'
4165
self.ui.cmbPort.currentIndexChanged.connect(self.on_cmbPort_changed)
4266

43-
# on affiche un texte en bas de la fenêtre (status bar)
44-
self.ui.statusBar.showMessage("coucou")
67+
# Connexions de routines du menu application
68+
self.ui.mnuAppOuvrir.triggered.connect(self.on_mnuAppOuvrir)
69+
self.ui.mnuAppQuitter.triggered.connect(self.on_mnuAppQuitter)
70+
# un clic sur le bouton "(De)Connecter" appellera la méthode 'action_btnConnect'
71+
self.ui.btnConnect.clicked.connect(self.action_btnConnect)
72+
73+
def on_mnuAppOuvrir(self):
74+
pass
75+
76+
def on_mnuAppQuitter(self):
77+
self.ui.statusBar.showMessage("Bye-bye...")
78+
print("Bye-bye...")
79+
self.close()
4580

4681
def action_arretUrgence(self):
4782
print("Arrêt d'urgence détecté !")
4883
if not(self.ui.btnUrgence.isChecked()):
4984
print("On est en train de stoper !!!")
5085
self.ui.btnUrgence.setIcon(QtGui.QIcon('images/btnUrgenceOff.svg'))
86+
self.ui.btnStart.setEnabled(False)
87+
self.ui.btnStop.setEnabled(False)
88+
self.ui.btnUrgence.setToolTip("Dévérouiller l'arrêt d'urgence")
5189
else:
5290
print("On relance :-)")
5391
self.ui.btnUrgence.setIcon(QtGui.QIcon('images/btnUrgence.svg'))
92+
self.ui.btnStart.setEnabled(True)
93+
self.ui.btnStop.setEnabled(True)
94+
self.ui.btnUrgence.setToolTip("Arrêt d'urgence")
95+
5496

5597
def action_btnConnect(self):
5698
if self.ui.btnConnect.text() == "Connecter":
@@ -69,7 +111,7 @@ def action_btnConnect(self):
69111
self.ui.btnConnect.setText("Connecter") # La prochaine action du bouton sera pour connecter
70112

71113
def on_cmbPort_changed(self):
72-
print(self.ui.cmbPort.currentIndex())
114+
print(self.ui.cmbPort.currentIndex())
73115
print(self.ui.cmbPort.currentText())
74116

75117
if __name__ == '__main__':

connexion.py

100755100644
+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def __init__(self, port="", bauds=115200):
1919
self.comPort.parity = serial.PARITY_NONE
2020
self.comPort.bytesize = serial.EIGHTBITS
2121
self.comPort.stopbits = serial.STOPBITS_ONE
22-
22+
2323
def connect(self):
2424
# Méthode pour connecter le port série sélectionné précédemment
2525
if not self.comPort.is_open:

fonts/LEDCalculator.ttf

100755100644
File mode changed.

fonts/fontsRessources.qrc

100755100644
File mode changed.

images/btnOFF.svg

100755100644
File mode changed.

images/btnON.svg

100755100644
File mode changed.

images/btnStart.svg

100755100644
File mode changed.

images/btnStartDown.svg

100755100644
File mode changed.

images/btnStartLight.svg

100755100644
File mode changed.

images/btnStop.svg

100755100644
File mode changed.

images/btnStopDown.svg

100755100644
File mode changed.

images/btnStopLight.svg

100755100644
File mode changed.

images/btnUrgence.svg

100755100644
File mode changed.

images/btnUrgenceOff.svg

100755100644
File mode changed.

images/btnUrgence_old.svg

100755100644
File mode changed.

images/imagesRessources.qrc

100755100644
File mode changed.

mainWindow.py

100755100644
+44-42
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def setupUi(self, mainWindow):
7373
self.groupBox.setGeometry(QtCore.QRect(300, 0, 281, 331))
7474
self.groupBox.setObjectName("groupBox")
7575
self.frame_3 = QtWidgets.QFrame(self.groupBox)
76-
self.frame_3.setGeometry(QtCore.QRect(0, 20, 203, 201))
76+
self.frame_3.setGeometry(QtCore.QRect(0, 20, 251, 197))
7777
self.frame_3.setStyleSheet("background-color: rgb(224, 224, 168);")
7878
self.frame_3.setFrameShape(QtWidgets.QFrame.NoFrame)
7979
self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
@@ -82,13 +82,13 @@ def setupUi(self, mainWindow):
8282
self.gridLayout_2.setContentsMargins(6, 6, 6, 6)
8383
self.gridLayout_2.setSpacing(4)
8484
self.gridLayout_2.setObjectName("gridLayout_2")
85-
self.label_3 = QtWidgets.QLabel(self.frame_3)
85+
self.label_6 = QtWidgets.QLabel(self.frame_3)
8686
font = QtGui.QFont()
8787
font.setFamily("LED Calculator")
8888
font.setPointSize(20)
89-
self.label_3.setFont(font)
90-
self.label_3.setObjectName("label_3")
91-
self.gridLayout_2.addWidget(self.label_3, 0, 0, 1, 1)
89+
self.label_6.setFont(font)
90+
self.label_6.setObjectName("label_6")
91+
self.gridLayout_2.addWidget(self.label_6, 5, 0, 1, 1)
9292
self.lblPosX = QtWidgets.QLabel(self.frame_3)
9393
self.lblPosX.setMinimumSize(QtCore.QSize(170, 0))
9494
font = QtGui.QFont()
@@ -98,6 +98,13 @@ def setupUi(self, mainWindow):
9898
self.lblPosX.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
9999
self.lblPosX.setObjectName("lblPosX")
100100
self.gridLayout_2.addWidget(self.lblPosX, 0, 1, 1, 1)
101+
self.label_3 = QtWidgets.QLabel(self.frame_3)
102+
font = QtGui.QFont()
103+
font.setFamily("LED Calculator")
104+
font.setPointSize(20)
105+
self.label_3.setFont(font)
106+
self.label_3.setObjectName("label_3")
107+
self.gridLayout_2.addWidget(self.label_3, 0, 0, 1, 1)
101108
self.label_4 = QtWidgets.QLabel(self.frame_3)
102109
font = QtGui.QFont()
103110
font.setFamily("LED Calculator")
@@ -130,13 +137,6 @@ def setupUi(self, mainWindow):
130137
self.lblPosZ.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
131138
self.lblPosZ.setObjectName("lblPosZ")
132139
self.gridLayout_2.addWidget(self.lblPosZ, 2, 1, 2, 1)
133-
self.label_6 = QtWidgets.QLabel(self.frame_3)
134-
font = QtGui.QFont()
135-
font.setFamily("LED Calculator")
136-
font.setPointSize(20)
137-
self.label_6.setFont(font)
138-
self.label_6.setObjectName("label_6")
139-
self.gridLayout_2.addWidget(self.label_6, 3, 0, 2, 1)
140140
self.lblPosA = QtWidgets.QLabel(self.frame_3)
141141
self.lblPosA.setMinimumSize(QtCore.QSize(170, 0))
142142
font = QtGui.QFont()
@@ -145,14 +145,7 @@ def setupUi(self, mainWindow):
145145
self.lblPosA.setFont(font)
146146
self.lblPosA.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
147147
self.lblPosA.setObjectName("lblPosA")
148-
self.gridLayout_2.addWidget(self.lblPosA, 4, 1, 2, 1)
149-
self.label_7 = QtWidgets.QLabel(self.frame_3)
150-
font = QtGui.QFont()
151-
font.setFamily("LED Calculator")
152-
font.setPointSize(20)
153-
self.label_7.setFont(font)
154-
self.label_7.setObjectName("label_7")
155-
self.gridLayout_2.addWidget(self.label_7, 5, 0, 2, 1)
148+
self.gridLayout_2.addWidget(self.lblPosA, 4, 1, 4, 1)
156149
self.lblPosB = QtWidgets.QLabel(self.frame_3)
157150
self.lblPosB.setMinimumSize(QtCore.QSize(170, 0))
158151
font = QtGui.QFont()
@@ -161,11 +154,19 @@ def setupUi(self, mainWindow):
161154
self.lblPosB.setFont(font)
162155
self.lblPosB.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
163156
self.lblPosB.setObjectName("lblPosB")
164-
self.gridLayout_2.addWidget(self.lblPosB, 6, 1, 1, 1)
157+
self.gridLayout_2.addWidget(self.lblPosB, 8, 1, 1, 1)
158+
self.label_7 = QtWidgets.QLabel(self.frame_3)
159+
font = QtGui.QFont()
160+
font.setFamily("LED Calculator")
161+
font.setPointSize(20)
162+
self.label_7.setFont(font)
163+
self.label_7.setObjectName("label_7")
164+
self.gridLayout_2.addWidget(self.label_7, 8, 0, 1, 1)
165165
self.groupBox_2 = QtWidgets.QGroupBox(self.tab)
166166
self.groupBox_2.setGeometry(QtCore.QRect(10, 120, 281, 211))
167167
self.groupBox_2.setObjectName("groupBox_2")
168168
self.btnStart = QtWidgets.QPushButton(self.groupBox_2)
169+
self.btnStart.setEnabled(False)
169170
self.btnStart.setGeometry(QtCore.QRect(10, 150, 50, 50))
170171
self.btnStart.setMinimumSize(QtCore.QSize(50, 50))
171172
self.btnStart.setMaximumSize(QtCore.QSize(50, 50))
@@ -178,7 +179,7 @@ def setupUi(self, mainWindow):
178179
self.btnStart.setIconSize(QtCore.QSize(50, 50))
179180
self.btnStart.setObjectName("btnStart")
180181
self.btnStop = QtWidgets.QPushButton(self.groupBox_2)
181-
self.btnStop.setEnabled(True)
182+
self.btnStop.setEnabled(False)
182183
self.btnStop.setGeometry(QtCore.QRect(80, 150, 50, 50))
183184
self.btnStop.setMinimumSize(QtCore.QSize(50, 50))
184185
self.btnStop.setMaximumSize(QtCore.QSize(50, 50))
@@ -213,23 +214,23 @@ def setupUi(self, mainWindow):
213214
self.tabWidget.addTab(self.tab_2, "")
214215
self.verticalLayout.addWidget(self.tabWidget)
215216
mainWindow.setCentralWidget(self.centralwidget)
216-
self.menubar = QtWidgets.QMenuBar(mainWindow)
217-
self.menubar.setGeometry(QtCore.QRect(0, 0, 1024, 20))
218-
self.menubar.setObjectName("menubar")
219-
self.menu_Application = QtWidgets.QMenu(self.menubar)
220-
self.menu_Application.setObjectName("menu_Application")
221-
mainWindow.setMenuBar(self.menubar)
217+
self.mnuBar = QtWidgets.QMenuBar(mainWindow)
218+
self.mnuBar.setGeometry(QtCore.QRect(0, 0, 1024, 22))
219+
self.mnuBar.setObjectName("mnuBar")
220+
self.mnuApplication = QtWidgets.QMenu(self.mnuBar)
221+
self.mnuApplication.setObjectName("mnuApplication")
222+
mainWindow.setMenuBar(self.mnuBar)
222223
self.statusBar = QtWidgets.QStatusBar(mainWindow)
223224
self.statusBar.setObjectName("statusBar")
224225
mainWindow.setStatusBar(self.statusBar)
225-
self.actionOuvrir_un_fichier_GCode = QtWidgets.QAction(mainWindow)
226-
self.actionOuvrir_un_fichier_GCode.setObjectName("actionOuvrir_un_fichier_GCode")
227-
self.action_Quitter = QtWidgets.QAction(mainWindow)
228-
self.action_Quitter.setObjectName("action_Quitter")
229-
self.menu_Application.addAction(self.actionOuvrir_un_fichier_GCode)
230-
self.menu_Application.addSeparator()
231-
self.menu_Application.addAction(self.action_Quitter)
232-
self.menubar.addAction(self.menu_Application.menuAction())
226+
self.mnuAppOuvrir = QtWidgets.QAction(mainWindow)
227+
self.mnuAppOuvrir.setObjectName("mnuAppOuvrir")
228+
self.mnuAppQuitter = QtWidgets.QAction(mainWindow)
229+
self.mnuAppQuitter.setObjectName("mnuAppQuitter")
230+
self.mnuApplication.addAction(self.mnuAppOuvrir)
231+
self.mnuApplication.addSeparator()
232+
self.mnuApplication.addAction(self.mnuAppQuitter)
233+
self.mnuBar.addAction(self.mnuApplication.menuAction())
233234

234235
self.retranslateUi(mainWindow)
235236
self.tabWidget.setCurrentIndex(0)
@@ -245,20 +246,21 @@ def retranslateUi(self, mainWindow):
245246
self.lblConnectStatus.setText(_translate("mainWindow", "<Non Connecté>"))
246247
self.btnConnect.setText(_translate("mainWindow", "(Dé)Connecter"))
247248
self.groupBox.setTitle(_translate("mainWindow", "Machine status"))
248-
self.label_3.setText(_translate("mainWindow", "X"))
249+
self.label_6.setText(_translate("mainWindow", "A"))
249250
self.lblPosX.setText(_translate("mainWindow", "+0.000"))
251+
self.label_3.setText(_translate("mainWindow", "X"))
250252
self.label_4.setText(_translate("mainWindow", "Y"))
251253
self.lblPosY.setText(_translate("mainWindow", "+0.000"))
252254
self.label_5.setText(_translate("mainWindow", "Z"))
253255
self.lblPosZ.setText(_translate("mainWindow", "+0.000"))
254-
self.label_6.setText(_translate("mainWindow", "A"))
255256
self.lblPosA.setText(_translate("mainWindow", "+0.000"))
256-
self.label_7.setText(_translate("mainWindow", "B"))
257257
self.lblPosB.setText(_translate("mainWindow", "+0.000"))
258+
self.label_7.setText(_translate("mainWindow", "B"))
258259
self.groupBox_2.setTitle(_translate("mainWindow", "GroupBox"))
260+
self.btnUrgence.setToolTip(_translate("mainWindow", "Dévérouiller l\'arrêt d\'urgence"))
259261
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("mainWindow", "Tab 1"))
260262
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("mainWindow", "Tab 2"))
261-
self.menu_Application.setTitle(_translate("mainWindow", "&Application"))
262-
self.actionOuvrir_un_fichier_GCode.setText(_translate("mainWindow", "&Ouvrir un fichier GCode..."))
263-
self.action_Quitter.setText(_translate("mainWindow", "&Quitter"))
263+
self.mnuApplication.setTitle(_translate("mainWindow", "&Application"))
264+
self.mnuAppOuvrir.setText(_translate("mainWindow", "&Ouvrir un fichier GCode..."))
265+
self.mnuAppQuitter.setText(_translate("mainWindow", "&Quitter"))
264266

0 commit comments

Comments
 (0)