I have updated the IMC_LOCK guardian to open the ISS second loop if the diffracted power changes by more than 30% when first closed, then close it again. The check lives in the CLOSE_ISS state, where the necessary things are done to close the second loop. When the second loop closes, the guardian now waits for 30 seconds to see if the ISS diffracted power changes by more than 30% (high or low), and if it does, request OPEN_ISS to open it again. The node will stall briefly, but then it will move to close the second loop again by going through the LOCKED and CLOSE_ISS states. This update should fix our recurring issue where the input power differs lock to lock due to the second loop engaging its DC coupling at an irregular place and changing our input power, sometimes by up to 1.5W.
I encountered an issue when testing this change where if the node had a notification, in this case the IMC WFS needed centering, the unstall_nodes decorator used by ISC_LOCK to revive its subordinates wouldn't work. This meant that IMC_LOCK would see the diffracted power had changed too much, correctly move to OPEN_ISS, then get stuck. To remedy this, TJ and I decided the best course of action was to move this notification into DIAG_MAIN. I then raised the threshold for the IMC WFS checker in IMC_LOCK to 0.7, up from 0.5, so that IMC_LOCK would only show a notification if the WFS are very off-centered.
All of these changes have been appropriately updated in svn.
I've lowered this retrigger threshold to 15%, since when we relocked early this morning the diffracted power jumped up by ~20% and we now have 0.5W less input power.