2015-01-16 19:29:55 -05:00
|
|
|
#ifndef DRIVETRAIN_H
|
|
|
|
#define DRIVETRAIN_H
|
|
|
|
|
|
|
|
#include "WPILib.h"
|
2015-03-09 09:48:18 -04:00
|
|
|
/**
|
|
|
|
* @brief Drives the robot
|
2015-07-31 12:52:15 -04:00
|
|
|
*
|
2015-03-09 09:48:18 -04:00
|
|
|
* 4 wheel mecanum drive
|
|
|
|
*/
|
2015-07-31 12:52:15 -04:00
|
|
|
class Drivetrain: public Subsystem {
|
|
|
|
private:
|
2015-09-17 15:59:58 -04:00
|
|
|
CANTalon *rightRear, //<! Back right motor
|
2015-07-31 12:52:15 -04:00
|
|
|
*leftRear; //<! Back left motor
|
|
|
|
Gyro *gyro; //<! Gyro
|
|
|
|
public:
|
|
|
|
/**
|
|
|
|
* @brief Constructs Drivetrain
|
|
|
|
*/
|
|
|
|
Drivetrain();
|
|
|
|
/**
|
|
|
|
* @brief Current motor to test
|
|
|
|
*/
|
|
|
|
enum e_motors {
|
|
|
|
BACKRIGHT, //<! Back right motor
|
|
|
|
BACKLEFT //<! Back left motor
|
|
|
|
};
|
|
|
|
/**
|
|
|
|
* @brief No action
|
|
|
|
*/
|
|
|
|
void InitDefaultCommand();
|
|
|
|
/**
|
2015-09-17 15:59:58 -04:00
|
|
|
* @brief Drives the robot with arcade
|
2015-07-31 12:52:15 -04:00
|
|
|
*
|
|
|
|
* @param x Joystick x value (-1.0 to 1.0)
|
|
|
|
* @param y Joystick y value (-1.0 to 1.0)
|
|
|
|
* @param z Joystick z value (-1.0 to 1.0)
|
|
|
|
* @param sensitivity Sensitivity (0.0 to 1.0)
|
|
|
|
* @param driveStraight Overrides z value to correct for motor lag (default: false)
|
|
|
|
*/
|
2015-09-17 15:59:58 -04:00
|
|
|
void DriveArcade(double x, double y, double z, double sensitivity, bool driveStraight = false);
|
2015-07-31 12:52:15 -04:00
|
|
|
/**
|
|
|
|
* @brief Tests one motor
|
|
|
|
*
|
|
|
|
* @param motor Motor to test
|
|
|
|
* @param power Power to set motor
|
|
|
|
*/
|
|
|
|
void TestMotor(e_motors motor, double power);
|
|
|
|
/**
|
|
|
|
* @brief Sets the gyro value to 0.0
|
|
|
|
*/
|
|
|
|
void ResetGyro();
|
2015-01-16 19:29:55 -05:00
|
|
|
};
|
|
|
|
#endif
|
2015-02-08 12:26:15 -05:00
|
|
|
// vim: ts=2:sw=2:et
|