I am trying to automate serial connection without clicking on button. When the gui load, serial should be read immediately and refreshed at interval without using the mouse to trigger any button (that is auto read in and updated).
How possible is this? See script and GUI below..
import schedule
import serial
import sys
from PyQt5 import uic, QtWidgets
qtCreatorFile = "gui.ui"
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
estudiantes = [' ',' ',' ',' ']
ser = serial.Serial('COM9', baudrate=9600, timeout=1)
class MyApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.Boton.clicked.connect(self.ingresos)
#self.ingresos()
def ingresos(self):
dato = ser.readline().decode('ascii')
#datos = (self.Box4.toPlainText())
#dato = str(datos)
estudiantes.insert(0,dato)
estudiantes.pop()
self.Box1.setText(estudiantes[0])
self.Box2.setText(estudiantes[1])
self.Box3.setText(estudiantes[2])
self.Box4.setText(estudiantes[3])
#self.Box1.setText("estudiantes")
# =============================================
def job():
# print("I'm working...")
dato = ser.readline().decode('ascii')
#datos = (self.Box4.toPlainText())
#dato = str(datos)
estudiantes.insert(0,dato)
estudiantes.pop()
self.Box1.setText(estudiantes[0])
self.Box2.setText(estudiantes[1])
self.Box3.setText(estudiantes[2])
self.Box4.setText(estudiantes[3])
#self.Box1.setText("estudiantes")
# .......................
schedule.every(0.05).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)
# .... Time definition ....
# 0.05 = 05 Seconds
# 0.50 = 50 Seconds
# 5.00 = 05 Minutes
# =============================================
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
The PyQt5 GUI .ui file is HERE....