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

test_playback.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__ = "Online"
00012 __abstract__ = "Event file playback test"
00013 __author__   = "A. Perazzo <perazzo@SLAC.Stanford.edu> SLAC - GLAST I&T/Online"
00014 __date__     = ("$Date: 2005/02/08 22:20:05 $").split(' ')[1]
00015 __version__  = "$Revision: 2.5 $"
00016 __release__  = "$Name: R04-12-00 $"
00017 __credits__  = "SLAC"
00018 
00019 import LATTE.copyright_SLAC
00020 
00021 from threading import Thread, Lock
00022 
00023 import LATTE.client.gOptions as gOptions
00024 import LATTE.client.gCmdCli as gCmdCli
00025 import LATTE.client.gEvtCli as gEvtCli
00026 import LATTE.database.gGLT as gGLT
00027 
00028 class Playback:
00029   __Debug = 0xf
00030 
00031   def __init__(self, server):
00032     self.__server = server
00033     self.__cmdcli = gCmdCli.CmdCli()
00034     self.__evtcli = gEvtCli.EvtCli(Playback.__Debug)
00035     self.__glt = gGLT.GGLT(self.__cmdcli)
00036     self.__lock = Lock()
00037     self.__lock.acquire()
00038     self.__abort = False
00039 
00040   def connect(self):
00041     self.__cmdcli.connect(self.__server)
00042     self.__evtcli.connect(self.__server)
00043 
00044   def disconnect(self):
00045     self.__cmdcli.disconnect()
00046     self.__evtcli.disconnect()
00047 
00048   def trigger(self, howmany):
00049     self.__glt.marker = 5
00050     self.__glt.cmd_self_trigger = 1
00051     self.__lock.acquire()
00052     for t in range(howmany):
00053       self.__glt.marker = 0
00054       self.__glt.cmd_self_trigger = 1
00055       self.__lock.acquire()
00056     self.__abort = True
00057     self.__glt.marker = 5
00058     self.__glt.cmd_self_trigger = 1
00059     self.__lock.acquire()
00060 
00061   def listen(self):
00062     evtHandler = Thread(None, self.__listen)
00063     evtHandler.start()
00064 
00065   def __listen(self):
00066     while self.__abort is False:
00067       status = self.__evtcli.readEvent()
00068       if status != 0:
00069         print "*** playback error in event"
00070       self.__lock.release()
00071 
00072 def test_playback():
00073   options = gOptions.Options(['server', 'nevents'])
00074   try:
00075     options.parse()
00076   except Exception, msg:
00077     options.usage(str(msg))
00078     return
00079   playback = Playback(options.server)
00080   playback.connect()
00081   playback.listen()
00082   playback.trigger(int(options.nevents))
00083   playback.disconnect()
00084 
00085 
00086 if __name__ == '__main__':
00087   test_playback()

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