# GUI

from tkinter import *
from calli_inter import Interface

class GUI(object):
    def __init__(self, inter):
        # Referenzattribute
        self.inter = inter
        # Fenster
        self.fenster = Tk()
        self.fenster.title("CTS")
        self.fenster.geometry('200x100+100+200')
        self.fenster.protocol("WM_DELETE_WINDOW",self.fensterSchliessen)
        # Canvas
        self.c = Canvas(master=self.fenster,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.fenster.after(0,self.poll)

    def poll(self):
        try:
            readState = self.inter.read()

            if readState:
                self.c.itemconfig('LED',fill='#ff0000')
            else:
                self.c.itemconfig('LED',fill='#550000')
        except:
            print('Exception')
        self.fenster.after(20,self.poll)        # rekursiver Aufruf

    def fensterSchliessen(self):
        self.inter.close()                      # Schnittstelle schließen
        self.fenster.quit()                     # mainloop beenden
        self.fenster.destroy()                  # Fenster beseitigen


# Hauptprogramm
inter = Interface()

gui = GUI(inter)
gui.fenster.mainloop()