diff --git a/python_payload/event.py b/python_payload/event.py index 9cf6342896a0672162ad0fa78b97fa6196eeb098..6a39ff489063357e5f3497f97e22adbd94118eaf 100644 --- a/python_payload/event.py +++ b/python_payload/event.py @@ -16,6 +16,12 @@ class Engine(): self.next_timed = None self.last_input_state = None + def add(self,event): + if isinstance(event,EventTimed): + self.add_timed(event) + elif isinstance(event,Event): + self.add_input(event) + def add_timed(self,event): self.events_timed.append(event) self.events_timed = sorted(self.events_timed, key = lambda event: event.deadline) @@ -95,6 +101,8 @@ class Event(): self.condition = condition if not condition: self.condition = lambda x: True + + the_engine.add(self) #print (data) @@ -109,21 +117,24 @@ class Event(): class EventTimed(Event): def __init__(self,ms,name="timer", *args, **kwargs): #super().__init__(name,data,action) + self.deadline = time.ticks_add(time.ticks_ms(),ms) + super().__init__(*args, **kwargs) self.name=name - self.deadline = time.ticks_add(time.ticks_ms(),ms) self.type=EVENTTYPE_TIMED def __repr__(self): return ("event on tick {} ({})".format(self.deadline,self.name)) - -e = Engine() -e.add_timed(EventTimed(200,name="bar",action=lambda data: print("GNANGNAGNA"))) -e.add_timed(EventTimed(100,name="foo")) -e.add_input(Event(name="baz", + +global the_engine +the_engine = Engine() + +EventTimed(200,name="bar",action=lambda data: print("GNANGNAGNA")) +EventTimed(100,name="foo") +Event(name="baz", action=lambda data: print(data), - condition=lambda data: data.get('type')=="captouch") + condition=lambda data: data.get('type')=="captouch" ) -print (e.events_timed) +print (the_engine.events_timed) #e.eventloop()