Events#

Introduction#

The Events blocks in VEXcode V5 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 – Runs the attached stack of blocks when the project starts.

  • when autonomous – Runs the attached stack of blocks when the Brain recieves an autonomous signal.

  • when driver control – Runs the attached stack of blocks when the Brain recieves a driver control signal.

  • when I receive event – Runs the attached stack when a specific event is broadcast.

  • broadcast event – Triggers an event without pausing execution.

  • broadcast event and wait – Triggers an event and pauses execution until the event’s tasks complete.

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

parameter

description

This block has no parameters.

Example

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

when autonomous#

The when autonomous block runs the attached stack of blocks when the Brain recieves an autonomous signal.

This block is only used for Competition projects.

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

parameter

description

This block has no parameters.

when driver control#

The when driver control block runs the attached stack of blocks when the Brain recieves a driver control signal.

This block is only used for Competition projects.

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

parameter

description

This block has no parameters.

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
  [Display a message and turn at the same time when the screen is pressed.]
  wait until <screen pressed?>
  broadcast [turn v]
  when I receive [turn v]
  print [Received!] on screen ▶
  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
  [Turn left when the screen is pressed.]
  forever
  if <screen pressed?> then
  broadcast [screen_press v]
  else
  turn [right v]
  when I receive [screen_press v]
  turn [left 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
  [Move after the Brain's screen is pressed.]
  wait until <screen pressed?>
  broadcast [forward_and_turn v] and wait
  print [Movement done.] on screen ▶
  when I receive [forward_and_turn v]
  drive [forward v] for [100] [mm v] ▶
  turn [right v] for [90] degrees ▶