diff --git a/src/Commands/DriveShifter.cpp b/src/Commands/DriveShifter.cpp new file mode 100644 index 0000000..a4ad989 --- /dev/null +++ b/src/Commands/DriveShifter.cpp @@ -0,0 +1,29 @@ +#include +#include "Subsystems/OI.h" +#include "Robot.h" +#include "Subsystems/Drive.h" +#include + + +DriveShifter::DriveShifter() : + CommandBase("DriveShifter"){ + Requires(robot->drive); + } + +void DriveShifter::Initialize(){ + CommandBase::Initialize(); + robot->drive->SetLowGear(); +} + +bool DriveShifter::IsFinished(){ + return false; +} + +void DriveShifter::Interrupted(){ + CommandBase::Interrupted(); + robot->drive->SetHighGear(); +} + +void DriveShifter::Execute(){ + +} diff --git a/src/Commands/DriveShifter.h b/src/Commands/DriveShifter.h new file mode 100644 index 0000000..639a3f0 --- /dev/null +++ b/src/Commands/DriveShifter.h @@ -0,0 +1,22 @@ +/* + * DriveShifter.h + * + * Created on: Dec 28, 2015 + * Author: John C + */ + +#ifndef SRC_SUBSYSTEMS_DRIVESHIFTER_H_ +#define SRC_SUBSYSTEMS_DRIVESHIFTER_H_ + +#include + +class DriveShifter: public CommandBase { +public: + DriveShifter(); + void Initialize() override; + bool IsFinished() override; + void Interrupted() override; + void Execute() override; +}; + +#endif /* SRC_SUBSYSTEMS_DRIVESHIFTER_H_ */ diff --git a/src/Robot.cpp b/src/Robot.cpp index a1e5f65..962b037 100644 --- a/src/Robot.cpp +++ b/src/Robot.cpp @@ -12,6 +12,7 @@ #include "Commands/DriveTank.h" #include "Commands/DriveLowGear.h" #include "Commands/DriveHighGear.h" +#include "Commands/DriveShifter.h" Robot::Robot() { // define robot pointer @@ -30,9 +31,11 @@ void Robot::RobotInit() { driveCommand = new DriveTank; driveLowGear = new DriveLowGear; driveHighGear = new DriveHighGear; + driveShifter = new DriveShifter; oi->GetDriverButton(5)->WhenPressed(driveHighGear); oi->GetDriverButton(7)->WhenPressed(driveLowGear); + oi->GetDriverButton(8)->WhileHeld(driveShifter); } // disabled init implementation diff --git a/src/Robot.h b/src/Robot.h index 4ead2ac..89488f3 100644 --- a/src/Robot.h +++ b/src/Robot.h @@ -13,7 +13,7 @@ class Robot: public IterativeRobot { Drive* drive; OI* oi; - Command *driveCommand, *driveLowGear, *driveHighGear; + Command *driveCommand, *driveLowGear, *driveHighGear, *driveShifter; void RobotInit() override; diff --git a/src/Subsystems/OI.cpp b/src/Subsystems/OI.cpp index 629374d..36a7c18 100644 --- a/src/Subsystems/OI.cpp +++ b/src/Subsystems/OI.cpp @@ -1,14 +1,14 @@ #include #include #include "OI.h" +#include +#include "Commands/DriveShifter.h" OI::OI() : Subsystem("OI") { driverJoystick = new Joystick(0); - } OI::~OI() { delete driverJoystick; - } float OI::GetLeftAxis() { @@ -17,7 +17,6 @@ float OI::GetLeftAxis() { } float OI::GetRightAxis() { return driverJoystick->GetRawAxis(3); - } float OI::GetRightTurn() { diff --git a/src/Subsystems/OI.h b/src/Subsystems/OI.h index 6e64b1e..f037ac0 100644 --- a/src/Subsystems/OI.h +++ b/src/Subsystems/OI.h @@ -13,7 +13,6 @@ class OI: public Subsystem { JoystickButton* GetDriverButton(uint32_t number); private: Joystick* driverJoystick; - }; #endif /* SRC_SUBSYSTEMS_OI_H_ */