#include <RobotBase.h>
Public Member Functions | |
bool | IsDisabled (void) |
bool | IsAutonomous (void) |
bool | IsOperatorControl (void) |
bool | IsSystemActive (void) |
bool | IsNewDataAvailable (void) |
Watchdog & | GetWatchdog (void) |
Static Public Member Functions | |
static void | startRobotTask (FUNCPTR factory) |
static void | robotTask (FUNCPTR factory) |
Protected Member Functions | |
virtual | ~RobotBase (void) |
RobotBase (void) |
RobotBase::~RobotBase | ( | void | ) | [protected, virtual] |
Free the resources for a RobotBase class. This includes deleting all classes that might have been allocated as Singletons to they would never be deleted except here.
RobotBase::RobotBase | ( | void | ) | [protected] |
Constructor for a generic robot program. User code should be placed in the constuctor that runs before the Autonomous or Operator Control period starts. The constructor will run to completion before Autonomous is entered.
This must be used to ensure that the communications code starts. In the future it would be nice to put this code into it's own task that loads on boot so ensure that it runs.
bool RobotBase::IsDisabled | ( | void | ) |
Determine if the Robot is currently disabled.
bool RobotBase::IsAutonomous | ( | void | ) |
Determine if the robot is currently in Autnomous mode.
bool RobotBase::IsOperatorControl | ( | void | ) |
Determine if the robot is currently in Operator Control mode.
bool RobotBase::IsSystemActive | ( | void | ) |
Check on the overall status of the system.
bool RobotBase::IsNewDataAvailable | ( | void | ) |
Indicates if new data is available from the driver station.
Watchdog & RobotBase::GetWatchdog | ( | void | ) |
Return the instance of the Watchdog timer. Get the watchdog timer so the user program can either disable it or feed it when necessary.
void RobotBase::startRobotTask | ( | FUNCPTR | factory | ) | [static] |
Start the robot code. This function starts the robot code running by spawning a task. Currently tasks seemed to be started by LVRT without setting the VX_FP_TASK flag so floating point context is not saved on interrupts. Therefor the program experiences hard to debug and unpredictable results. So the LVRT code starts this function, and it, in turn, starts the actual user program.
void RobotBase::robotTask | ( | FUNCPTR | factory | ) | [static] |
Static interface that will start the competition in the new task.