# -*-coding: iso-8859-1-*- # 17.1.2010, mk import busmodel_v25 import busview_v25 import tkMessageBox # Controller class Controller(object): def __init__(self): self.bus = busmodel_v25.Bus() self.bus.OnChange = self.OnBusChange self.bus.OnError = self.OnBusError self.regA = busmodel_v25.Register() self.regA.bus = self.bus self.regA.name = 'A' self.regA.OnChange = self.OnRegAChange self.regB = busmodel_v25.Register() self.regB.bus = self.bus self.regB.name = 'B' self.regB.OnChange = self.OnRegBChange self.regC = busmodel_v25.Register() self.regC.bus = self.bus self.regC.name = 'C' self.regC.OnChange = self.OnRegCChange self.view = busview_v25.View() self.view.regA.OnChange = self.setRegA self.view.regB.OnChange = self.setRegB self.view.regC.OnChange = self.setRegC self.view.p1.OnChange = self.OnPfeil1Change self.view.p2.OnChange = self.OnPfeil2Change self.view.p3.OnChange = self.OnPfeil3Change self.view.p4.OnChange = self.OnPfeil4Change self.view.p5.OnChange = self.OnPfeil5Change self.view.p6.OnChange = self.OnPfeil6Change # Initialisierung self.regA.setWert(17) self.regB.setWert(13) self.regC.setWert(217) # mainloop self.view.mainloop() def OnBusChange(self,wert): self.view.bus.setWert(wert) def OnBusError(self,liste): # Konflikt anzeigen self.bus.setWert(None) # Bus auf Fehlerwert tkMessageBox.showerror('Buskonflikt',self.bus.schreiber[0].name+ ' und '+self.bus.schreiber[1].name+ ' schreiben beide auf den Bus') # Konfliktauflösung liste[-1].setEnable(0) self.bus.setWert(liste[0].wert) # Bus auf alten Wert def OnRegAChange(self,art,wert): if art == 0: self.view.regA.setWert(wert) elif art == 1: self.view.p2.setZustand(wert) elif art == 2: self.view.p1.setZustand(wert) def setRegA(self,name,wert): self.regA.setWert(wert) def OnRegBChange(self,art,wert): if art == 0: self.view.regB.setWert(wert) elif art == 1: self.view.p4.setZustand(wert) elif art == 2: self.view.p3.setZustand(wert) def setRegB(self,name,wert): self.regB.setWert(wert) def OnRegCChange(self,art,wert): if art == 0: self.view.regC.setWert(wert) elif art == 1: self.view.p6.setZustand(wert) elif art == 2: self.view.p5.setZustand(wert) def setRegC(self,name,wert): self.regC.setWert(wert) def OnPfeil1Change(self,name,wert): self.regA.setLoad(wert) def OnPfeil2Change(self,name,wert): self.regA.setEnable(wert) def OnPfeil3Change(self,name,wert): self.regB.setLoad(wert) def OnPfeil4Change(self,name,wert): self.regB.setEnable(wert) def OnPfeil5Change(self,name,wert): self.regC.setLoad(wert) def OnPfeil6Change(self,name,wert): self.regC.setEnable(wert) # Hauptprogramm c = Controller()