I have a test fixture which performs a blinkup to a DUT and also has safety interlocks such as an E-Stop button and lid-latch. While the factoryBlinkup() call is executing (specifically while it is blinking) I am able to press the E-Stop button and release it while the IMP is still performing blinkup and the current test will continue as if the E-Stop had not been pressed at all. In other words, it appears that hardware interrupts are disabled during the factoryBlinkup() execution. Is this true? If so, is there any way around this so that a pin state change can still be detected during the blinkup and subsequently stop the test, or at a minimum just allow me to see that the pin state changed during the blinkup so that I can stop the test after the blinking has complete even if the E-Stop had been released again?
Under normal conditions if either the E-Stop or Lid-Latch change state and are no longer met, their corresponding interrupt callback is called (onPress/onRelease) and our current running test is cancelled immediately. While these interlocks physically cut power and still meet safety requirements this way, we are not supposed to allow a test to continue once the E-Stop has been pressed, even if released again a few seconds later. This same scenario can happen with our lid-latch interlock if opened and closed again within a few seconds during blinkup. Both are using GPIO on an IMP005 and are hardware interrupt capable.
Any help with this is much appreciated.
Fixture Device: IMP005 fixture
DUT Device: IMP003 device