In order to easily assess the fast shutter during operations, I added code to the DIAG_MAIN guardian that is watching for orm power drops, and if it finds one, it writes out a text file that can be ingested by the lockloss tool.
The medm button that calls up the plot is on ISC_GUARDIANS.adl for now.
Related files In /opt/rtcds/userapps/release/sys/h1/scripts:
===================================================
fastsutterlockloss : wrapper file that launches lockloss
channels_to_look_at_FastShutter.txt : lockloss channel file for the fast shutter
FASTSHUTTERTIMES.txt FASTSHUTTERTIMES_1.txt FASTSHUTTERTIMES_2.txt FASTSHUTTERTIMES_3.txt : files containing the timing information for the last four arm power drops.
Related code in DIAG_MAIN:
==========================
# this check finds an arm power drop, and creates a text file for plotting the fast shutter performance
fastshutterMemory = {
'LOCKED' : 0,
'ARM_ON' : 1000,
'ARM_OFF' : 800,
'TIME_LAST': 0}
@SYSDIAG.register_test
def HAM6FASTSHUTTER():
armon =fastshutterMemory['ARM_ON']
armoff=fastshutterMemory['ARM_OFF']
lockedpast=fastshutterMemory['LOCKED']
timelast=fastshutterMemory['TIME_LAST']
arm=ezca['LSC-TR_X_NORM_INMON']
timestr=gpstime.tconvert()
if arm > armon:
locked=1
elif arm < armoff:
locked=0
else:
locked=lockedpast
# upon dropping arm power: record time window for plotting
if locked==0 and lockedpast==1:
dur=int(float(timestr)-float(timelast)+1)
filefs='/opt/rtcds/userapps/release/sys/h1/scripts/FASTSHUTTERTIMES.txt'
filefs1='/opt/rtcds/userapps/release/sys/h1/scripts/FASTSHUTTERTIMES_1.txt'
filefs2='/opt/rtcds/userapps/release/sys/h1/scripts/FASTSHUTTERTIMES_2.txt'
filefs3='/opt/rtcds/userapps/release/sys/h1/scripts/FASTSHUTTERTIMES_3.txt'
os.system('mv '+filefs2+' '+filefs3)
os.system('mv '+filefs1+' '+filefs2)
os.system('mv '+filefs+' '+filefs1)
f = open(filefs, 'w')
f.write('plot -w ['+str(-dur)+',1] '+timestr+'
')
f.close()
yield "New Fast Shutter plot availabe!"
fastshutterMemory['LOCKED'] =locked
fastshutterMemory['TIME_LAST']=timestr