2
0
mirror of https://github.com/team2059/Dent synced 2024-12-18 20:52:29 -05:00
dent/OI.cpp

89 lines
2.7 KiB
C++

#include "OI.h"
#include "Commands/Elevator/Lower.h"
#include "Commands/Elevator/Raise.h"
#include "Commands/Collector/RollIn.h"
#include "Commands/Collector/RollOut.h"
#include "Commands/BinElevator/BinLower.h"
#include "Commands/BinElevator/BinRaise.h"
#include "Commands/BinElevator/BinCloseArms.h"
#include "Commands/BinElevator/BinOpenArms.h"
#include "Commands/Autonomous/CollectTote.h"
#include "Commands/Autonomous/ReleaseTote.h"
#include "Commands/Test/CheckRobot.h"
OI::OI(){
// Joysticks
leftController=new Joystick(0);
rightStick=new Joystick(1);
// Main buttons
leftA = new JoystickButton(leftController, 1);
leftB = new JoystickButton(leftController, 2);
leftX = new JoystickButton(leftController, 3);
leftY = new JoystickButton(leftController, 4);
// Left and right uttons
leftLB = new JoystickButton(leftController, 5);
leftRB = new JoystickButton(leftController, 6);
leftBack = new JoystickButton(leftController, 7);
leftStart = new JoystickButton(leftController, 8);
// Left, right stick press
leftLPress = new JoystickButton(leftController, 9);
leftRPress = new JoystickButton(leftController, 10);
// Commands
Raise *raise = new Raise(2.0);
Lower *lower = new Lower(2.0);
leftA->WhileHeld(raise);
leftA->CancelWhenPressed(lower);
leftB->WhenPressed(lower);
leftB->CancelWhenPressed(raise);
}
float OI::GetLeftAxis(std::string stick, std::string axis){
if(stick=="left"){
if(axis=="x"){
return leftController->GetRawAxis(0);
}else if(axis=="y"){
return -leftController->GetRawAxis(1);
}else if(axis=="trigger"){
//TODO: Figure out what axis this is
return leftController->GetRawAxis(4);
return -4;
}
}else if(stick=="right"){
if(axis=="x"){
return leftController->GetRawAxis(2);
}else if(axis=="y"){
return -leftController->GetRawAxis(3);
}else if(axis=="trigger"){
//TODO: Figure out what axis this is
return leftController->GetRawAxis(5);
return -4;
}
}
//TODO: Fix this placeholder for NULL
return -5;
}
bool OI::GetLeftButton(std::string button){
if(button=="a"){
return leftA->Get();
}else if(button=="b"){
return leftB->Get();
}else if(button=="x"){
return leftX->Get();
}else if(button=="y"){
return leftY->Get();
}else if(button=="lb"){
return leftLB->Get();
}else if(button=="rb"){
return leftRB->Get();
}else if(button=="back"){
return leftBack->Get();
}else if(button=="start"){
return leftStart->Get();
}else if(button=="lpress"){
return leftLPress->Get();
}else if(button=="rpress"){
return leftRPress->Get();
}
return false;
}
// vim: ts=2:sw=2:et