evento#

Inicializando la clase de evento#

Un evento se crea utilizando el siguiente constructor:

El constructor event(callback) utiliza dos parámetros:

Parámetro

Descripción

devolución de llamada

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

// Define the function print()
void print(){
  brain.screen.print("Event was broadcast");
}
// Construct an Event "Event" with the
// event class.
event Event = event(print);

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 de evento.

Métodos de clase#

colocar()#

El comando set(callback) 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.

Devoluciones: Ninguna.

transmisión()#

El comando broadcast() transmite el evento y hace que se ejecuten todas las funciones de devolución de llamada registradas.

Devoluciones: Ninguna.

void runOnBroadcast1() {
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Broadcast1 Running");
}

void runOnBroadcast2() {
  Brain.Screen.setCursor(2, 1);
  Brain.Screen.print("Broadcast2 Running");
}

int main() {

  // Register callback functions to event.
  Event(runOnBroadcast1);
  Event(runOnBroadcast2);
  
  // Brief wait to ensure event is registered
  wait(15, msec);

  // Broadcast the event.
  Event.broadcast();
}

transmitirYEspera()#

El comando broadcastAndWait() 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.

void runOnBroadcast1() {
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Broadcast1 Running");
}

void runOnBroadcast2() {
  Brain.Screen.setCursor(2, 1);
  Brain.Screen.print("Broadcast2 Running");
}

int main() {
  // Register callback functions to event.
  Event(runOnBroadcast1);
  Event(runOnBroadcast2);
  
  // Brief wait to ensure event is registered
  wait(15, msec);

  // Broadcast the event and wait for completion.
  Event.broadcastAndWait();

  Brain.Screen.setCursor(3, 1);
  Brain.Screen.print("Listeners finished running");
}