2015-02-06 13:45:01 -05:00
|
|
|
#ifndef AUTODRIVE_H
|
|
|
|
#define AUTODRIVE_H
|
|
|
|
|
|
|
|
#include "Commands/Command.h"
|
2015-03-09 10:53:35 -04:00
|
|
|
#include "../../DentRobot.h"
|
2015-02-06 13:45:01 -05:00
|
|
|
#include "../../DentRobot.h"
|
|
|
|
#include "WPILib.h"
|
|
|
|
|
2015-03-01 17:19:00 -05:00
|
|
|
/**
|
|
|
|
* @brief Drives the robot without a joystick
|
|
|
|
*
|
|
|
|
* Drives the robot given a timeout and joystick values
|
|
|
|
*/
|
2015-02-06 13:45:01 -05:00
|
|
|
class AutoDrive: public Command{
|
2015-02-13 21:41:38 -05:00
|
|
|
private:
|
2015-03-02 08:28:03 -05:00
|
|
|
double x, //<! The x value of the simulated joystick value
|
2015-03-17 16:33:25 -04:00
|
|
|
y, //<! The y value of the simulated joystick value
|
|
|
|
z; //<! The z value of the simulated joystick value
|
|
|
|
bool gyro;
|
2015-02-06 13:45:01 -05:00
|
|
|
public:
|
2015-03-01 17:19:00 -05:00
|
|
|
/**
|
|
|
|
* @brief Constructs AutoDrive
|
|
|
|
*
|
2015-03-09 09:48:18 -04:00
|
|
|
* @param duration Timeout in seconds
|
|
|
|
* @param xtmp Joystick x value (default: 0.0)
|
|
|
|
* @param ytmp Joystick y value (default: 0.75)
|
2015-03-17 16:33:25 -04:00
|
|
|
* @param ztmp Joystick z value (default: 0.0)
|
|
|
|
* @param useGyro Use the gyro when driving
|
2015-03-01 17:19:00 -05:00
|
|
|
*/
|
2015-03-17 16:33:25 -04:00
|
|
|
AutoDrive(double duration, double xtmp = 0.0, double ytmp = -0.75, double ztmp = 0.0, bool useGyro = true);
|
2015-03-01 17:19:00 -05:00
|
|
|
/**
|
|
|
|
* @brief Initializes the class
|
|
|
|
*/
|
2015-02-06 13:45:01 -05:00
|
|
|
void Initialize();
|
2015-03-01 17:19:00 -05:00
|
|
|
/**
|
|
|
|
* @brief Drives the robot
|
|
|
|
*/
|
2015-02-06 13:45:01 -05:00
|
|
|
void Execute();
|
2015-03-01 17:19:00 -05:00
|
|
|
/**
|
|
|
|
* @brief Checks if the command is finished
|
|
|
|
*
|
|
|
|
* @return True only if the timeout was reached
|
|
|
|
*/
|
2015-02-06 13:45:01 -05:00
|
|
|
bool IsFinished();
|
2015-03-01 17:19:00 -05:00
|
|
|
/**
|
|
|
|
* @brief Sets the drivetrain to stop
|
|
|
|
*/
|
2015-02-06 13:45:01 -05:00
|
|
|
void End();
|
2015-03-01 17:19:00 -05:00
|
|
|
/**
|
|
|
|
* @brief Calls End()
|
|
|
|
*/
|
2015-02-06 13:45:01 -05:00
|
|
|
void Interrupted();
|
|
|
|
};
|
|
|
|
#endif
|
2015-02-08 12:26:15 -05:00
|
|
|
// vim: ts=2:sw=2:et
|