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 __facility__ = "Online" 00011 __abstract__ = "GLAST LAT Housekeeping server infrastructure" 00012 __author__ = "Jim Panetta <panetta@slac.stanford.edu> SLAC - GLAST I&T" 00013 __date__ = "07/28/04" 00014 __version__ = "$Revision: 1.2 $" 00015 __release__ = "$Name: R04-12-00 $" 00016 __credits__ = "SLAC" 00017 00018 import LATTE.copyright_SLAC 00019 import time 00020 00021 from LATTE.monitoring.Retriever import Retriever 00022 from LATTE.monitoring.Trendable import Trendable 00023 from LATTE.monitoring.HskPacketDecoder import packetFactory 00024 import time 00025 00026 class HskPacketRetriever(Retriever): 00027 """Retrieve HSK ccsds packets from ethernet connection 00028 """ 00029 def __init__(self, hskCli): 00030 Retriever.__init__(self) 00031 self.__client = hskCli 00032 00033 def retrievePacket(self): 00034 packet = [] 00035 (err, payload) = self.__client.readTelem() 00036 if err == 0: 00037 hskClass = packetFactory(payload) 00038 else: 00039 print "got an error from readTelem: %d", err 00040 return None 00041 00042 # create the packet 00043 00044 # kludge up the timestamp, as the returned timestamp from HSK relative to VxWorks boot 00045 # timestamp = hskClass.seconds() + hskClass.subSeconds()/10000000 00046 timestamp = time.time() # time() returns seconds since epoch, UTC 00047 00048 for mnem, tag in hskClass.mnemList: 00049 value = hskClass.__dict__[mnem] 00050 packet.append( Trendable( mnem, timestamp, { 'Raw Value' : value } ) ) 00051 return packet 00052 00053 00054