00001 #!/usr/local/bin/python 00002 # 00003 # Copyright 2004 00004 # by 00005 # The Board of Trustees of the 00006 # Leland Stanford Junior University. 00007 # All rights reserved. 00008 # 00009 00010 00011 __facility__ = "Trigger" 00012 __abstract__ = "Tower widget implementation for trigger display" 00013 __author__ = "Martin Kocian, SLAC" 00014 __date__ = ("$Date: 2005/06/15 23:42:30 $").split(' ')[1] 00015 __version__ = "$Revision: 2.2 $" 00016 __release__ = "$Name: R04-12-00 $" 00017 __credits__ = "SLAC" 00018 from qt import * 00019 from towerwidget import towerwidget 00020 import time 00021 from listmean import listmean 00022 from imagedata import * 00023 CLOCKTICK=50.e-9 00024 00025 class towerwidgetImpl(towerwidget): 00026 def __init__(self,lat,temid,parent=None,name=None,fl=0): 00027 towerwidget.__init__(self,parent,name,fl) 00028 self.__numsamples=10 00029 self.__parent=parent 00030 self.__temid=temid 00031 self.__tic=lat.downTEM(temid).TIC 00032 self.__oldcounter=self.__tic.busy_lrs_counter 00033 self.barw.bar.setMajor(110) 00034 # if self.__oldcounter==16777215: 00035 # self.__tic.busy_lrs_counter=0 00036 # self.__oldcounter=0 00037 self.__valuelist=[] 00038 self.__mask=0x3 00039 self.__mask=-1 00040 self.image0=QPixmap(image0_data) 00041 self.image1=QPixmap(image1_data) 00042 self.__oldtime=time.time() 00043 if not name: 00044 self.setName("towerwidgetImpl") 00045 #QObject.connect(self.encal,SIGNAL("toggled(bool)"),self.calmask) 00046 #QObject.connect(self.entkr,SIGNAL("toggled(bool)"),self.tkrmask) 00047 QObject.connect(self.resetb,SIGNAL("clicked()"),self.resetpressed) 00048 def changeSampling(self,sampling): 00049 sample=[100,50,20,10,5,2,1] 00050 self.__numsamples=sample[sampling] 00051 def resetpressed(self): 00052 self.__tic.busy_lrs_counter=0 00053 self.__oldcounter=0 00054 00055 def calmask(self,onoff): 00056 if onoff==False: 00057 if self.__mask==0x3: 00058 self.__mask=0x6 00059 else: 00060 self.__mask=0x7 00061 else: 00062 if self.__mask==0x6: 00063 self.__mask=0x3 00064 else: 00065 self.__mask=0x5 00066 self.__tic.busy_lrs_mask=self.__mask 00067 self.valuelist=[] 00068 00069 def tkrmask(self,onoff): 00070 if onoff==False: 00071 if self.__mask==0x3: 00072 self.__mask=0x5 00073 else: 00074 self.__mask=0x7 00075 else: 00076 if self.__mask==0x5: 00077 self.__mask=0x3 00078 else: 00079 self.__mask=0x6 00080 self.__tic.busy_lrs_mask=self.__mask 00081 self.valuelist=[] 00082 00083 00084 def update(self): 00085 newtime=time.time() 00086 timediff=newtime-self.__oldtime 00087 self.__oldtime=newtime 00088 counter=self.__tic.busy_lrs_counter 00089 if self.__mask!=self.__tic.busy_lrs_mask: 00090 self.__mask=self.__tic.busy_lrs_mask 00091 if not self.__mask&1 or not self.__mask&4: 00092 self.entkr.setPixmap(self.image0) 00093 else: 00094 self.entkr.setPixmap(self.image1) 00095 if not self.__mask&2 or not self.__mask&4: 00096 self.encal.setPixmap(self.image0) 00097 else: 00098 self.encal.setPixmap(self.image1) 00099 # if counter==16777215: 00100 # self.__tic.busy_lrs_counter=0 00101 # self.__oldcounter=0 00102 # else: 00103 newval=0. 00104 if timediff>0: 00105 newval=100*float(counter-self.__oldcounter)*CLOCKTICK/timediff 00106 average=listmean(self.__valuelist,newval,self.__numsamples) 00107 if counter==16777215: 00108 self.barw.setTitle("Full") 00109 self.barw.bar.displayValue(150) 00110 else: 00111 self.barw.setTitle("%0.1f"%average+"%") 00112 self.barw.bar.displayValue(average) 00113 self.__oldcounter=counter