-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathClimb.cpp
59 lines (48 loc) · 1.36 KB
/
Climb.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "Subsystem.h"
#include "WPIObjMgr.h"
#include "Config.h"
class Climb : public Spyder::Subsystem
{
Spyder::ConfigVar<UINT32> ExtSol;
Spyder::ConfigVar<UINT32> RetSol;
Spyder::TwoIntConfig climbExt;
Spyder::TwoIntConfig climbRet;
public:
Climb() : Spyder::Subsystem("Climb"), ExtSol("climb_sol_ext",3), RetSol("climb_sol_ret", 4),
climbExt("bind_climb_extend", 3, 3), climbRet("bind_climb_retract", 3, 4) //FIXME: get appropreate button numbers
{
}
virtual ~Climb()
{
}
virtual void Init(Spyder::RunModes runmode)
{
}
virtual void Periodic(Spyder::RunModes runmode)
{
switch(runmode)
{
case Spyder::M_DISABLED:
Spyder::GetSolenoid(ExtSol.GetVal())->Set(false);
Spyder::GetSolenoid(RetSol.GetVal())->Set(true);
break;
case Spyder::M_TELEOP:
if(Spyder::GetJoystick(climbExt.GetVar(1))->GetRawButton(climbExt.GetVar(2))==true) {
Spyder::GetSolenoid(ExtSol.GetVal())->Set(true);
Spyder::GetSolenoid(RetSol.GetVal())->Set(false);
}
else if(Spyder::GetJoystick(climbRet.GetVar(1))->GetRawButton(climbRet.GetVar(2))==true) {
Spyder::GetSolenoid(ExtSol.GetVal())->Set(false);
Spyder::GetSolenoid(RetSol.GetVal())->Set(true);
}
break;
default:
Spyder::GetSolenoid(ExtSol.GetVal())->Set(false);
Spyder::GetSolenoid(RetSol.GetVal())->Set(true);
}
}
virtual void RobotInit()
{
}
};
Climb climb;