Point and click the applet to start the countdown. Further clicks toggle between holding and countdown modes. When the countdown reaches zero, the status changes to fired and the abort button is disabled. After 10 seconds, the countdown restarts from its initial value with the abort button re-enabled.
In countdown and holding modes, the abort button may be pressed. This cancels the countdown and puts the system into aborted mode. After 10 seconds, the countdown restarts from its initial value with the abort button re-enabled.
When in the 10 second fired or aborted modes, mouse clicks toggle between that mode and holding.
IMPORTANT: if the abort button is pressed at the same time as the countdown reaches zero and control tries to fire the rocket, it's important the system resolves this command clash cleanly. In particular, the system must not deadlock nor get into a corrupt state! Exercise: prove this system is free from these hazards. Hint: use CSP.