Anfänger braucht Hilfe bei Qt4
Viele Grüße
Code: Alles auswählen
import time
import serial #serielle Comm
import sys
import os
from PyQt4 import QtGui, QtCore
from kt2193_gui import Ui_Hauptdialog as Dlg
class MeinDialog(QtGui.QDialog, Dlg):
def __init__(self):
QtGui.QDialog.__init__(self)
self.setupUi(self)
# Slots einrichten
self.connect(self.buttonOK, QtCore.SIGNAL("clicked()"), self.onOK)
self.connect(self.buttonWait, QtCore.SIGNAL("clicked()"), self.onWait)
self.connect(self.buttonInit, QtCore.SIGNAL("clicked()"), self.onInit)
self.connect(self.buttonQuit, QtCore.SIGNAL("clicked()"), self.onQuit)
self.connect(self.pgpButton, QtCore.SIGNAL("clicked()"), self.onPGP)
#self.onInit() #Initialisierung bei Programmstart
self.serin.setReadOnly(True) #nur lesen einschalten
self.serout.setReadOnly(True) #nur lesen einschalten
#############################################################
def onPGP(self):
x = self.pgpedit.text()
self.serin.append(x + " geladen")
self.serin.append("warte auf Adapter ...")
print "PGP: " + x
self.PGPbar.setText(x)
self.pgpButton.setEnabled(False)
self.pgpedit.setReadOnly(True)
######hier keine Aktualisierung
self.onWaitAdapter()
#sleep(2)
return x
#self.close() #schliesse Fenster
########################################################
#############################################################
def onWaitAdapter(self):
ser = serial.Serial('/dev/ttyUSB0', 38400, timeout=1)
str = ""
while 1:
ch = ser.read()
print ch
time.sleep(0.05)
if(ch == '\r'):
print str
self.serin.append(str)
if(str == "Start"):
print "Start"
break
str += ch
print str
ser.close()
#print ser.isOpen()
#ser.write("CENT_IBVB\r") # write Test CENT_IB to Adapter
return str #beende Sub
#self.close() #schliesse Fenster
########################################################
#############################################################
def onOK(self):
# Daten auslesen
d = {}
print "Vorname: %s" % self.serout.text()
fobj = open("test.txt", "r") #Test oeffne Datei read
for line in fobj: #For Schleife zum Lineauslesen
print line #print Zeilenweise
fobj.close() #schliesse Datei
fobj = open("ausgabe.txt", "w") #oeffne Datei zum schreiben
for i in range(5): #(range(stop) range(start, stop) range(start, stop, step)
fobj.write("TEst" + "\n")# schreibe Test
fobj.close() #schliesse Datei
#os.system("ls") #Befehl ausfuehren
self.close() #schliesse Sub
########################################################
#############################################################
def onWait(self):
ser = serial.Serial('/dev/ttyUSB0', 38400, timeout=1)
self.serin.setText("") #Text loeschen
self.serout.setText("") #Text loeschen
ser.write("CENT_IBVB\r") # write Test CENT_IB to Adapter
self.serout.setText("Centralis IB_VB Test")
str = ""
while 1:
ch = ser.read()
if(ch == '\r'):
print str
self.serin.setText(str)
ser.write(str)
str = ""
if(ch == "\x40"):
break
str += ch
print str
ser.close()
#print ser.isOpen()
return str #beende Sub
#self.close() #schliesse Fenster
########################################################
########################################################
def onInit(self):
self.serin.setText("") #Text loeschen
self.serout.setText("") #Text loeschen
self.progressBar.setValue(10)
RS232 = "/dev/ttyUSB0"
ser = serial.Serial(RS232, 38400, timeout=1)
self.progressBar.setValue(20)
ret = os.access(RS232, os.F_OK);
if ret == True:
self.statRS232.setChecked(True)
else:
self.statRS232.setChecked(False)
self.progressBar.setValue(30)
ret1 = os.access(RS232, os.R_OK);
ret2 = os.access(RS232, os.W_OK);
if ret1 == True and ret2 == True:
self.statrw.setChecked(True)
else:
self.statrw.setChecked(False)
self.progressBar.setValue(40)
ser.write("init\r") # write the Init to Adapter
self.serout.setText("Adapter Initialisierung...")
self.progressBar.setValue(50)
time.sleep(1)
self.progressBar.setValue(60)
s = ser.read(10) # read up to 10 bytes (timeout)
if s == "OK\r\n":
self.statadapter.setChecked(True)
self.serin.append("OK")
self.progressBar.setValue(70)
ser.write("status\r") # write the Init to Adapter
time.sleep(0.05)
s = ser.read(10) # read up to 10 bytes (timeout)
if s == "fail\r\n":
self.serin.append("Status Adapter PASS")
else:
self.serin.append("Status Adapter FAIL")
# self.serout.clear()
else:
self.statadapter.setChecked(False)
self.serin.setPlainText("Timeout: " + s)
self.progressBar.setValue(80)
ser.write("ver\r") # write the Init to Adapter
ant_ver = ser.read(50) # read up to 50 bytes (timeout)
self.serin.append(ant_ver)
time.sleep(0.5)
self.progressBar.setValue(99)
time.sleep(2)
self.progressBar.setValue(0)
self.serout.clear()
self.serout.setText("Adapter Initialisierung fertig")
self.statusbar.setText(ant_ver + " Online")
#print s
#print "F_OK - return value %s"% ret
ser.close() # close port
time.sleep(2)
self.progressBar.setValue(0)
return
########################################################
#########################################################
def onQuit(self):
print "Quit"
self.close()
#########################################################
app = QtGui.QApplication(sys.argv)
dialog = MeinDialog()
dialog.setFixedSize(720, 540)
dialog.show()
sys.exit(app.exec_())