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.1 $"
00015 __release__ = "$Name: P04-06-05 $"
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()
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