# model import serial class Model(object): def __init__(self): self.s = serial.Serial('/dev/ttyS0') # 1 = COM2, 0 = COM1, ... self.s.setRTS(False) def __del__(self): # schließt sicher die Schnittstelle self.s.close() # view from tkinter import * class View(Tk): def __init__(self,cbCTS,cbHalt): Tk.__init__(self) # Callbacks self.cbCTS = cbCTS self.protocol("WM_DELETE_WINDOW",cbHalt) # cbHalt wird aufgerufen, wenn das 'X' gedrückt wird # Fenster self.title("CTS") self.geometry('200x100+100+200') # Canvas self.c = Canvas(master=self,width=60,height=60) self.c.place(x=70,y=20) # Items item = self.c.create_oval(10,10,50,50,fill='#550000') self.c.itemconfig(item,tags=('LED')) # Timer starten self.after(0,self.poll) def poll(self): if self.cbCTS(): self.c.itemconfig('LED',fill='#ff0000') else: self.c.itemconfig('LED',fill='#550000') self.after(20,self.poll) # rekursiver Aufruf # controller class Controller(object): def __init__(self): self.model = Model() self.view = View(self.model.s.getCTS,self.Halt) self.view.mainloop() def Halt(self): # Aufräumarbeiten self.model.s.close() # Schnittstelle schließen self.view.quit() # mainloop beenden self.view.destroy() # Fenster beseitigen # Hauptprogramm c = Controller()