Events#

Introduction#

The Events blocks in VEXcode IQ (2nd gen) allow for event-driven coding, enabling different parts of a project to run in response to triggers such as project start, received events, or user interactions. Below is a list of available blocks:

when started#

The when started block runs its stack when the project begins. You can have multiple when started blocks to run multiple stacks of blocks at once.

The When started hat block.#
    when started :: hat events

parameter

description

This block has no parameters.

Example

  when started :: hat events
  [Turn around at the start of the project.]
  turn to heading [180] degrees ▶

when I receive event#

The when I receive event block starts a stack when a matching event is broadcast. You can have multiple when I receive event blocks to run multiple stacks of blocks at once.

The When I receive event hat block.#
    when I receive [my_event v]

parameter

description

event

The event to be triggered. Users can select an existing event, create a new one, rename the selected event, or delete it.

Example

  when started :: hat events
  [Display a message and turn at the same time.]
  wait until <Brain [Check v] button pressed?>
  broadcast [turn v]
  when I receive [turn v]
  print [Received!] on [Brain v] ▶
  turn [right v] for [90] degrees ▶

broadcast event#

The broadcast event block triggers any matching when I receive event hat block. It does not pause the execution of the stack and continues running the next block immediately.

The Broadcast event stack block.#
    broadcast [message1 v]

parameter

description

event

The event to trigger. Users can select an existing event, create a new one, rename the selected event, or delete it.

Example

  when started :: hat events
  [Play a sound when a button is pressed while turning.]
  forever
  if <Brain [Left v] button pressed?> then
  broadcast [button_press v]
  else
  turn [right v]
  when I receive [button_press v]
  play sound [alarm v]

broadcast event and wait#

The broadcast event and wait block triggers an event, then pauses execution of the current stack until all triggered when I receive event block stacks have completed.

The Broadcast event and wait stack block.#
    broadcast [message1 v] and wait

parameter

description

event

The event to trigger. Users can select an existing event, create a new one, rename the selected event, or delete it.

Example

  when started :: hat events
  [Move after the Brain's Check button is pressed.]
  wait until <Brain [Check v] button pressed?>
  broadcast [forward_and_turn v] and wait
  print [Movement done.] on [Brain v] ▶
  when I receive [forward_and_turn v]
  drive [forward v] for [100] [mm v] ▶
  turn [right v] for [90] degrees ▶