def scenario_2(): """ Declare system with the inheritance based API """ class MyEvent(Event): def on_start(self, context, event): print(context, '=>', event) print('STARTED') def on_cycle_begin(self, context, event): print('LOOP STARTED') def on_cycle_end(self, context, event): print('LOOP FINISHED') context.stop() def on_stop(self, context, event): print('FINISHED') context.exit() def on_exit(self, context, event): print('EXITING') context = Context() event = MyEvent(context) # Make event active event.activate() # Start looping context.start()
def scenario_1(): """ Declare events with the decorator based API """ # Create containers context = Context() event = Event(context) @event def on_start(context, event): print(context, '=>', event) print('STARTED') @event def on_cycle_begin(context, event): print('LOOP STARTED') @event def on_cycle_end(context, event): print('LOOP FINISHED') context.stop() @event def on_stop(context, event): print('FINISHED') context.exit() @event def on_exit(context, event): print('EXITING') # Make event active event.activate() # Start looping context.start()
# Key press events when `event2` is active @four_keys2 def on_key_pressed_1(context, event, sensor): print('KEY PRESSED: 1 => TURN LED: OFF') led2.off() @four_keys2 def on_key_pressed_2(context, event, sensor): print('KEY PRESSED: 2 => TURN LED: ON') led2.on() @four_keys2 def on_key_pressed_3(context, event, sensor): print('KEY PRESSED: 3 => SWITCHING MODE: event1') context.switch(event1) # Key press events either `event1` or `event2` active @four_keys1 @four_keys2 def on_key_pressed_4(context, event, sensor): print('KEY PRESSED: 4 => EXITING...') context.exit() # Start event loop print('STARTING (from event1)') context.switch(event1) context.start()
@four_keys2 def on_key_pressed_1(context, event, sensor): print('KEY PRESSED: 1 => TURN LED: OFF') led2.off() @four_keys2 def on_key_pressed_2(context, event, sensor): print('KEY PRESSED: 2 => TURN LED: ON') led2.on() @four_keys2 def on_key_pressed_3(context, event, sensor): print('KEY PRESSED: 3 => SWITCHING MODE: event1') context.switch(event1) # Key press events either `event1` or `event2` active @four_keys1 @four_keys2 def on_key_pressed_4(context, event, sensor): print('KEY PRESSED: 4 => EXITING...') context.exit() # Start event loop print('STARTING (from event1)') context.switch(event1) context.start()