Guest User

PyQt paintEvent

a guest
Nov 1st, 2023
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.38 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. # Form implementation generated from reading ui file 'untitled.ui'
  4. #
  5. # Created by: PyQt5 UI code generator 5.15.9
  6. #
  7. # WARNING: Any manual changes made to this file will be lost when pyuic5 is
  8. # run again. Do not edit this file unless you know what you are doing.
  9.  
  10.  
  11. from PyQt5 import QtCore, QtGui, QtWidgets
  12. from PyQt5.QtGui import QPainter
  13. import serial
  14. import time
  15.  
  16. import serial.tools.list_ports
  17.  
  18. #ser = serial.Serial("/dev/ttyACM0", 115200)
  19.  
  20. class Ui_MainWindow(object):
  21. def setupUi(self, MainWindow):
  22. MainWindow.setObjectName("MainWindow")
  23. MainWindow.setEnabled(True)
  24. MainWindow.resize(1023, 768)
  25. self.centralwidget = QtWidgets.QWidget(MainWindow)
  26. self.centralwidget.setObjectName("centralwidget")
  27.  
  28. self.is_drawing = False
  29.  
  30. self.detectGun = QtWidgets.QPushButton(self.centralwidget)
  31. self.detectGun.setGeometry(QtCore.QRect(5, 5, 130, 25))
  32. self.detectGun.setObjectName("detectGun")
  33.  
  34. self.detectGun.clicked.connect(self.list_guns)
  35.  
  36. self.listGun = QtWidgets.QComboBox(self.centralwidget)
  37. self.listGun.setGeometry(QtCore.QRect(5, 35, 130, 25))
  38. self.listGun.setObjectName("listGun")
  39.  
  40. self.testRum = QtWidgets.QPushButton(self.centralwidget)
  41. self.testRum.setGeometry(QtCore.QRect(5, 65, 130, 25))
  42. self.testRum.setObjectName("testRum")
  43.  
  44. self.testRum.clicked.connect(self.test_rum)
  45.  
  46. self.testSol = QtWidgets.QPushButton(self.centralwidget)
  47. self.testSol.setGeometry(QtCore.QRect(5, 95, 130, 25))
  48. self.testSol.setObjectName("testSol")
  49.  
  50. self.testSol.clicked.connect(self.test_sol)
  51.  
  52. self.testCam = QtWidgets.QPushButton(self.centralwidget)
  53. self.testCam.setGeometry(QtCore.QRect(5, 125, 130, 25))
  54. self.testCam.setObjectName("testCam")
  55.  
  56. self.testCam.clicked.connect(self.test_cam)
  57.  
  58. MainWindow.setCentralWidget(self.centralwidget)
  59. self.statusbar = QtWidgets.QStatusBar(MainWindow)
  60. self.statusbar.setObjectName("statusbar")
  61. MainWindow.setStatusBar(self.statusbar)
  62.  
  63. self.retranslateUi(MainWindow)
  64. QtCore.QMetaObject.connectSlotsByName(MainWindow)
  65.  
  66. def retranslateUi(self, MainWindow):
  67. _translate = QtCore.QCoreApplication.translate
  68. MainWindow.setWindowTitle(_translate("MainWindow", "openFIR testing GUI"))
  69. self.detectGun.setText(_translate("MainWindow", "detect guns"))
  70. self.testRum.setText(_translate("MainWindow", "test rumble"))
  71. self.testSol.setText(_translate("MainWindow", "test solenoid"))
  72. self.testCam.setText(_translate("MainWindow", "test camera"))
  73.  
  74. def list_guns(self, MainWindow):
  75. print("List serial connections: ")
  76. ports = serial.tools.list_ports.comports()
  77. self.listGun.clear()
  78. for p in ports:
  79. print(p.device)
  80. self.listGun.addItem(p.device)
  81. print(self.listGun.currentText())
  82.  
  83. def test_rum(self, MainWindow):
  84. print("testing rumble")
  85. ser = serial.Serial(self.listGun.currentText(), 115200)
  86. rumStr = "rum"
  87.  
  88. if ser.isOpen():
  89. ser.write(rumStr.encode('ascii'))
  90.  
  91.  
  92. def test_sol(self, MainWindow):
  93. print("testing solenoid")
  94. ser = serial.Serial(self.listGun.currentText(), 115200)
  95. solStr = "sol"
  96.  
  97. if ser.isOpen():
  98. ser.write(solStr.encode('ascii'))
  99.  
  100. def test_cam(self, MainWindow):
  101.  
  102. ser = serial.Serial(self.listGun.currentText(), 115200)
  103. camStr = "cam"
  104. i = 0
  105.  
  106. if ser.isOpen():
  107.  
  108. while (i < 25):
  109. ser.write(camStr.encode('ascii')) #send the string 'cam' to arduino to get it to send back 12 position points
  110. line = ser.readline().decode('utf-8').rstrip() #receive bytes to end of line from arduino, strip out formatting data
  111. my_list = line.split(",") #split byte data based on comma, and put into list
  112. res = [eval(i) for i in my_list] #turn bytes into int
  113. #print(my_list)
  114. test_list = [300,300,500,300,300,600,500,600,500,300,300,500] #test list of 12 coordinates
  115. print(test_list)
  116. #print(test_list[5])
  117.  
  118. #draw 6 circles
  119.  
  120. #drawEllipse(test_list[0],test_list[1],35,35)
  121. #drawEllipse(test_list[2],test_list[3],35,35)
  122. #drawEllipse(test_list[4],test_list[5],35,35)
  123. #drawEllipse(test_list[6],test_list[7],35,35)
  124. #drawEllipse(test_list[8],test_list[9],35,35)
  125. #drawEllipse(test_list[10],test_list[11],35,35)
  126.  
  127. #drawLine(test_list[0],test_list[1],test_list[2],test_list[3]) #connect 1 to 2
  128. #drawLine(test_list[0],test_list[1],test_list[4],test_list[5]) #connect 1 to 3
  129. #drawLine(test_list[4],test_list[5],test_list[6],test_list[7]) #connect 3 to 4
  130. #drawLine(test_list[2],test_list[3],test_list[6],test_list[7]) #connect 2 to 4
  131.  
  132. time.sleep(0.2)
  133. i = i + 1
  134.  
  135. print("camera test done")
  136.  
  137. if __name__ == "__main__":
  138. import sys
  139. app = QtWidgets.QApplication(sys.argv)
  140. MainWindow = QtWidgets.QMainWindow()
  141. ui = Ui_MainWindow()
  142. ui.setupUi(MainWindow)
  143. MainWindow.show()
  144. sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment