Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | Related Pages

towerwidgetImpl.py

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

Generated on Fri Jul 21 13:26:33 2006 for LATTE R04-12-00 by doxygen 1.4.3