# -*- coding: cp1252 -*- ''' Created on 07.02.2012 @author: sth2mt ''' import time import FertigungsTest.Hardware.AD7999 as AD7999 ###ÄÄÄ class Treiber(object): ''' classdocs ''' # Achtung dies ist Pseudo Singleton -> variablen werden statisch verwendet. Aufgeraumt wird erst wenn alle instanzen weg sindwird nur einmal instaniiert !!!! ObjCount = 0 _Thread_name = "StartSchalter" stout = False O_AD7999 = None LT_START = 0x2F def __init__(self): ''' Constructor ''' Treiber.ObjCount += 1 self.printf("%i.Construktor %s Anzahl" % (Treiber.ObjCount,Treiber._Thread_name)) if Treiber.O_AD7999 == None: Treiber.O_AD7999= AD7999.Treiber() pass def __del__(self): ''' Destructor ''' self.printf("%i Destruktor %s" % (Treiber.ObjCount,Treiber._Thread_name)) if Treiber.ObjCount == 1: self.printf("Reste aufraumen") del(Treiber.O_AD7999) Treiber.O_AD7999 = None if Treiber.ObjCount > 0: Treiber.ObjCount -= 1 pass def GetAnalog(self): return Treiber.O_AD7999.readAnalog(Treiber.O_AD7999.MAINSWITCH) def GetZustand(self,bZustand): MittelWert = -1 while (MittelWert < 0): MittelWert=self.GetAnalog() for i in range (0,50,1): ADWert=self.GetAnalog() if ADWert >= 0: MittelWert = ((MittelWert*9) + ADWert)/ 10 self.printf(ADWert) if bZustand: if MittelWert < Treiber.LT_START: # 0xCC Wert gedrueckter Startschalter 4V self.printf("StartBt gedueckt? 0") return False else: self.printf("StartBt gedueckt? 1") return True else: if MittelWert >= Treiber.LT_START: self.printf("StartBt losgelassen? 1") return False else: self.printf("StartBt losgelassen? 0") return True def Get(self): return self.GetZustand(1) pass def Wait(self, Zustand, function): while ( (not function()) & (not self.GetZustand(Zustand)) ): time.sleep(0.1) return 0 pass def printf(self,string): if Treiber.stout: print string pass