Per JimW's request (alog 23032), I edited the ISC_LOCK guardian such that it throws notification messages when the ISS 2nd loop fails in the engagement. I have reloaded ISC_LOCK and checked the code into the SVN.
The notification messages will be displayed (1) if the IMC_LOCK guardian falls back to the LOCKED state (which is the programmed failure sequence) and/or (2) if the engagement process takes more than 4 minutes. The below are the new version of the ENGAGE_ISS_2ND_LOOP state. The red lines are the ones I newly added.
* * * * * * in ENGAGE_ISS_2ND_LOOP * * * * * *
def main(self):
nodes['IMC_LOCK'] = 'ISS_ON'
self.wait_iss_minutes = 4.0 # in [min]
self.timer['ISSwait'] = self.wait_iss_minutes*60 # in [sec]
@get_watchdog_IMC_check_decorator(nodes)
@nodes.checker()
def run(self):
# notify when the ISS fails. 2015-Nov-3, KI
if nodes['IMC_LOCK'] == 'LOCKED' or nodes['IMC_LOCK'] == 'OPEN_ISS':
notify('!! 2nd loop engagement failed !!')
# notify when the ISS is taking too many minutes. 2015-Nov-3, KI
if self.timer['ISSwait']:
notify('ISS spent more than %d minutes. Check ISS'%(self.wait_iss_minutes))
# if IMC arrives at the requested state, move on.
return nodes['IMC_LOCK'].arrived
Later today, we confirmed that the ISC_LOCK guardian behaved as intended -- it displayed the messages when the ISS failed in the engagement. Also there were a few minor typos which are now fixed. The guardian code is checked into the SVN.