pub trait Robot {
fn new(peripherals: Peripherals) -> Self;
fn initialize(&'static self, _ctx: Context) { ... }
fn autonomous(&'static self, _ctx: Context) { ... }
fn opcontrol(&'static self, _ctx: Context) { ... }
fn disabled(&'static self, _ctx: Context) { ... }
}
Expand description
A trait representing a competition-ready VEX Robot.
Required Methods
fn new(peripherals: Peripherals) -> Self
fn new(peripherals: Peripherals) -> Self
Runs at startup, constructing your robot. This should be non-blocking, since the FreeRTOS scheduler doesn’t start until it returns.
Provided Methods
fn initialize(&'static self, _ctx: Context)
fn initialize(&'static self, _ctx: Context)
Runs immediately after Robot::new
. The FreeRTOS scheduler is running
by this point.
The purpose of this method is to provide a hook to run things on startup
which require a reference to all or part of the robot structure; since
it takes &'static self
as its parameter, the lifetime of the robot
object is guaranteed to be static (i.e., forever), and so the
implementation may pass references around (e.g., to new tasks) at will
without issue.
fn autonomous(&'static self, _ctx: Context)
fn autonomous(&'static self, _ctx: Context)
Runs during the autonomous period.