import sys import time import serial ser = serial.Serial( port='/dev/XPort', baudrate = 9600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1 ) def getrs232line(a): ser.flushInput() myrs = ser.readline() lx = [x.strip() for x in myrs.split(',')] if lx[0] == '': myrs = ser.readline() lx = [x.strip() for x in myrs.split(',')] while len(lx) != 10: myrs = ser.readline() lx = [x.strip() for x in myrs.split(',')] return lx[a] def getrs232info(): ser.flushInput() myrs = ser.readline() lx = [x.strip() for x in myrs.split(',')] if lx[0] == '': myrs = ser.readline() lx = [x.strip() for x in myrs.split(',')] while len(lx) != 10: myrs = ser.readline() lx = [x.strip() for x in myrs.split(',')] return lx #for eacharg in sys.argv: # sys.stderr.write(sys.argv[1]) # Gibt Rs232 String aus if sys.argv[1] == "info": print(getrs232info()) #setzt Uhrzeit aus der CControl elif sys.argv[1] == "setuhr": ser.write(time.strftime("u%H%M")) #Ausgabe der aktuellen Laufzeit elif sys.argv[1] == "time": s = getrs232line(9)[:-1] print(s) #Ausgabe der aktiven Kanals oder null elif sys.argv[1] == "kanal": s = getrs232line(0) print(s) #Ausgabe Uhrzeit (rudimntaer) elif sys.argv[1] == "uhr": s = getrs232line(8) print(s) #Ausgabe Drucksensor (funktion?) elif sys.argv[1] == "druck": s = getrs232line(7) print(s) #Ausgabe Temperatur am sensor elif sys.argv[1] == "temp": s = getrs232line(6) t = (float(s)-50)/2 print(t) #Ausgabe Motor und Ventile elif sys.argv[1] == "motor": s = getrs232line(1) print(s) elif sys.argv[1] == "ventil1": s = getrs232line(2) print(s) elif sys.argv[1] == "ventil2": s = getrs232line(3) print(s) elif sys.argv[1] == "ventil3": s = getrs232line(4) print(s) elif sys.argv[1] == "ventil4": s = getrs232line(5) print(s) #Kanal aus oder an elif sys.argv[1] == "aus": b = getrs232line(0) if b != "0": ser.write(b) print("0") elif sys.argv[1] == "on1": b = getrs232line(0) if b != "1": ser.write("1") print("1") elif sys.argv[1] == "on2": b = getrs232line(0) if b != "2": ser.write("2") print("2") elif sys.argv[1] == "on3": b = getrs232line(0) if b != "3": ser.write("3") print("3") elif sys.argv[1] == "on4": b = getrs232line(0) if b != "4": ser.write("4") print("4")