RunLoadingSM If current state is Pulsing Execute During function for Pulsing. If an event is active If event is event Pulse On Timeout Turn off LEDs Start one shot timer for pulse off Consume event If event is event Pulse Off Timeout if pulse counter < 10 Turn on LEDs Start one shot timer for pulse on Consume event else Next state is wait4LoadingTimeout consume event Else Return CurrentEvent If current state is Wait4LoadingTimeout Execute During function for Wait4LoadingTimeout. If an event is active If event is event Loading Wait timer Timeout Return event Loaded COW Else Return CurrentEvent DuringStateIdle On entry Initialize loading wait timer