Events#
When Started#
The When Started block is used to run the attached stack of blocks when the project is started.
when started :: hat events
A when started event will run when the project is started from the start button in VEXcode.
All new projects will automatically include a when started block.
In this example, the When Started block is used to start the project. When the start button is selected, the robot will drive forward, turn right, and drive forward again.
when started :: hat events
drive [forward v] for (200) [mm v] ▶
turn [right v] for (90) degrees ▶
drive [forward v] for (200) [mm v] ▶
When Autonomous#
Autonomous mode is used with the Field Control System during competitions. For more information about the V5 Blocks Competition Template, go here.
The When Autonomous block is used to run the attached stack of blocks when an “autonomous” mode signal is received from a competition field or competition switch.
when autonomous :: hat events
In this example, the When Autonomous block is triggered when the “autonomous” mode signal is received, making the robot turn to the right for ninety degrees.
when autonomous :: hat events
turn [right v] for (90) degrees ▶
When Driver Control#
Drive control mode is used with the Field Control System during competitions. For more information about the V5 Blocks Competition Template, go here.
The When Drive Control block is used to run the attached stack of blocks when a “driver control” mode signal is received from a competition field or competition switch.
when driver control :: hat events
In this example, the When Driver Control block is triggered when the “driver control” mode signal is received, enabling the controller.
when driver control :: hat events
Controller [Enable v]
When Bumper#
The Bumper Switch is a 3-Wire Sensor that can be used with V5 Brains. For more information about the Bumper Switch, read Using the V5 3-Wire Bumper Switch v2 & Limit Switch.
The When Bumper block is used to run the attached stack of blocks when the selected Bumper Switch sensor is pressed or released.
when [BumperB v] [pressed v] :: hat events
Choose which Bumper to use.
Select which action will trigger the event - pressed or released.
In this example, when the Bumper Switch sensor is pressed, a message will be printed on the Brain.
when [BumperB v] [pressed v] :: hat events
print [Bumper has been pressed.] on [Brain v] ◀ and set cursor to next row
When Limit#
The Limit Switch is a 3-Wire Sensor that can be used with V5 Brains. For more information about the Limit Switch, read Using the V5 3-Wire Bumper Switch v2 & Limit Switch.
The When Limit block is used to run the attached stack of blocks when the selected Limit Switch sensor is pressed or released.
when [LimitSwitchA v] [pressed v] :: hat events
Choose which Limit Switch to use.
Select which action will trigger the event - pressed or released.
In this example, when the Limit Switch sensor is pressed, a message will be printed on the Brain.
when [LimitSwitchA v] [pressed v] :: hat events
print [Limit Switch has been pressed.] on [Brain v] ◀ and set cursor to next row
When Controller Axis#
For Controller blocks to appear in VEXcode, a V5 Controller must first be connected to VEXcode V5.
Refer to these articles for more information:
The When Controller Axis block is used to run the attached stack of blocks when the selected V5 Controller joystick axis is moved.
when Controller axis [1 v] is changed :: hat events
Choose which V5 Controller joystick axis to use.
In this example, moving the 4th joystick axis on the V5 Controller will print a message.
when Controller axis [4 v] is changed :: hat events
print [Controller axis 4 moved.] on [Brain v] ◀ and set cursor to next row
When Brain Screen#
The When Brain Screen block is used to run the attached stack of blocks when the V5 Brain’s touchscreen is pressed or released.
when Brain screen [pressed v] :: hat events
Select which action will trigger the event block: pressed or released.
In this example, pressing the V5 Brain’s touchscreen will make a message appear on the screen.
when Brain screen [pressed v] :: hat events
print [You pressed the touchscreen!] on [Brain v] ◀ and set cursor to next row
When Timer#
The When Timer block is used to run the attached stack of blocks when the Brain’s timer is equal to the given value.
when timer > [1] seconds :: hat events
The Brain’s timer begins at the beginning of each project or whenever the Brain’s timer is reset.
Choose an amount of time. The when timer event will run once the Brain’s timer is equal to the entered amount.
when timer > [3.25] seconds :: hat events
In this example, after 5 seconds have passed, the Robot will print the message to the Print Console.
when timer > [5] seconds :: hat events
print [5 seconds have passed.] ▶
When I Receive#
The When I Receive block is used to run the attached stack of blocks when the selected message is received from a broadcasted message.
when I receive [message1 v] :: hat events
Choose which message to listen for. A new message can also be created.
In this example, the code will continuously check if the Left Sensor Bumper was pressed. Once pressed, the When I Recieve block will trigger once the bumper_press
message is received.
Broadcast#
The Broadcast block is used to broadcast a message to activate any stacks that begin with a When I Receive block listening for the broadcasted message.
broadcast [message1 v]
The stack that sends the broadcast will continue to run blocks at the same time as other stacks that receive the broadcasted message.
Choose which message to broadcast. A new message can also be created.
In this example, the code will continuously check if the Left Sensor Bumper was pressed. Once pressed, the Broadcast block will trigger the When I Receive block with the message bumper_press
.
Broadcast and Wait#
The Broadcast and Wait block is used to broadcast a message to activate any stacks that begin with a When I Receive block listening for the broadcasted message while also pausing the rest of the stack.
This block broadcasts a message to activate any stacks that begin with a when I receive block listening for the broadcasted message while also pausing the rest of the stack.
broadcast [message1 v] and wait
The stack that sends the broadcast and wait will pause until the other stacks that receive the broadcasted message have completed.
Choose which message to broadcast. A new message can also be created.
In this example, the code will continuously check if the Left Sensor Bumper was pressed. Once pressed, the Broadcast and Wait block will trigger the When I Receive block with the message bumper_press
. No code underneath the When Started block will execute until everything underneath the bumper_press
When I Receive block is finished.
When Optical Sensor#
The Optical Sensor must be connected to the V5 Brain and configured in VEXcode V5 before it is able to be used in projects. For more information about the Optical Sensor, read Using the Optical Sensor with VEX V5.
The When Optical Sensor block is used to run the attached stack of blocks when the selected Optical Sensor detects or loses an object.
when [Optical7 v] [detects v] an object :: hat events
Choose an Optical Sensor.
Choose whether the When Optical detects/loses event is triggered when the sensor detects an object, or loses an object.
In this example, once the Optical Sensor has detected an object, a message will be printed to the Brain.
when [Optical7 v] [detects v] an object :: hat events
print [Optical Sensor has detected an object.] on [Brain v] ◀ and set cursor to next row
When Optical Sensor Detects a Gesture#
When Optical Sensor#
The Optical Sensor must be connected to the V5 Brain and configured in VEXcode V5 before it is able to be used in projects. For more information about the Optical Sensor, read Using the Optical Sensor with VEX V5.
The When Optical Sensor Detects a Gesture block is used to run the attached stack of blocks when the selected Optical Sensor detects a gesture.
when [Optical7 v] gesture [up v] :: hat events
Important: The When Optical Sensor Detects a Gesture will not work unless the Optical Set Mode block is used to set the Optical Sensor to detect gestures.
set [Optical7 v] to [color v] mode
Choose an Optical Sensor.
Choose which gesture will trigger the event block.
In this example, once the Optical Sensor has detected a left gesture, a message will be printed to the Brain.
when [Optical7 v] gesture [left v] :: hat events
print [Left gesture detected.] on [Brain v] ◀ and set cursor to next row
When GPS Heading Changed#
The GPS (Game Positioning System) Sensor needs to first be configured to be used in VEXcode V5. For a guide on how to configure the GPS Sensor, read Configuring the GPS Sensor in VEXcode V5. For more information on how the GPS Sensor works, read Using the GPS Sensor with VEX V5.
The When Optical Sensor Detects a Gesture block is used to run the attached stack of blocks when a GPS Sensor detects a heading change.
when [GPS15 v] heading changed :: hat events
Choose a GPS Sensor.
In this example, once the GPS Sensor detects a heading change, it will re-orient itself back to face a heading of 0 degrees.
when [GPS15 v] heading changed :: hat events
turn to heading (0) degrees ▶