Evento#
Inicializando la clase de evento#
El constructor Event
crea un objeto Evento.
Este constructor utiliza dos parámetros:
Parámetro |
Descripción |
---|---|
|
Opcional. Una función previamente definida que se llamará como un hilo cuando se transmita el evento. |
|
Opcional. Una tupla que se utiliza para pasar argumentos a la función de devolución de llamada de evento. |
# Define the function broadcasted_event().
def broadcasted_event():
brain.screen.print("Event was broadcast")
# Construct an Event "event" with the
# Event class.
event = Event(broadcasted_event)
Este objeto “evento” se utilizará en todos los ejemplos posteriores a lo largo de esta documentación de API cuando se haga referencia a los métodos de la clase Evento.
Métodos de clase#
colocar()#
El método set(callback, arg)
establece una nueva devolución de llamada y argumentos para el evento.
Parámetros |
Descripción |
---|---|
llamar de vuelta |
La nueva función de devolución de llamada que se llamará cuando se active el evento. |
arg |
Opcional. Una tupla de argumentos para pasar a la función de devolución de llamada. |
Devoluciones: Ninguna.
# Define a function event_occurred()
def event_occurred():
brain.screen.set_cursor(1, 1)
brain.screen.print("event occurred")
# Set the event to run event_occurred() instead of print()
# when the event is broadcast.
event = Event(event_occurred)
event.set(event_occurred)
# Broadcast event and run print().
event.broadcast()
transmisión()#
El método broadcast()
transmite el evento y hace que se ejecuten todas las funciones de devolución de llamada registradas.
Devoluciones: Ninguna.
def button_pressed():
brain.play_sound(SoundType.ALARM)
wait(0.5,SECONDS)
# Broadcast the event when the button is held down
# and turn when it is not.
event = Event(button_pressed)
event.set(button_pressed)
while True:
if brain.buttonCheck.pressing():
event.broadcast()
else:
drivetrain.turn(RIGHT)
transmitir_y_esperar()#
El método broadcast_and_wait()
transmite el evento, hace que se ejecuten todas las funciones de devolución de llamada registradas y espera hasta que se hayan completado todas las funciones de devolución de llamada.
Devoluciones: Ninguna.
def forward_and_turn():
drivetrain.drive_for(FORWARD, 100, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
# Wait for a button to be pressed,then wait for
# the robot to be done moving and print a message.
event = Event(forward_and_turn)
event.set(forward_and_turn)
while not brain.buttonCheck.pressing():
wait(0.1,SECONDS)
event.broadcast_and_wait()
brain.screen.print("Done!")