Evento#

Inicializando la clase de evento#

El constructor Event crea un objeto Evento.

Este constructor utiliza dos parámetros:

Parámetro

Descripción

devolución de llamada

Opcional. Una función previamente definida que se llamará como un hilo cuando se transmita el evento.

arg

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!")