# -*- coding: cp1252 -*- ''' Created on 20.10.2011 @author: sth2mt ''' import FertigungsTest.Hardware.DatenBus.I2CDev as i2c 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 = "LP3943" stout = False O_I2C = None def __init__(self): ''' Constructor ''' Treiber.ObjCount += 1 self.printf("%i.Construktor %s Anzahl" % (Treiber.ObjCount,Treiber._Thread_name)) if Treiber.O_I2C == None: #I2C Bus Nr 2 ->"/dev/i2c-2" Treiber.O_I2C = i2c.Treiber(2) 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_I2C) Treiber.O_I2C = None if Treiber.ObjCount > 0: Treiber.ObjCount -= 1 pass def read(self,iRegister): # Wert aus LP3943 auslesen if (iRegister < 0) & (iRegister >9): return -1 # Lesen 1 Byte pr_Buf=Treiber.O_I2C.f_Read8(0x64,iRegister, 1) return pr_Buf[0] pass def write(self,iRegister,c_char): # Wert in LP3943 schreiben if (iRegister < 2) & (iRegister >9): return -1 # Lesen 1 Byte return Treiber.O_I2C.f_Write8(0x64,iRegister,c_char, 1) pass def printf(self,string): if Treiber.stout: print string pass