8
8
#include " tap/control/toggle_command_mapping.hpp"
9
9
10
10
#include " robots/robot_constants.hpp"
11
+ #include " utils/power_limiter/barrel_cooldown.hpp"
11
12
12
13
#include " drivers.hpp"
13
14
#include " drivers_singleton.hpp"
14
15
15
16
// Chassis includes ----------------------------------------
16
17
#include " subsystems/chassis/chassis_subsystem.hpp"
17
- #include " subsystems/chassis/command_sentry_position.hpp"
18
+ #include " subsystems/chassis/command_beyblade_chassis_keyboard.hpp"
19
+ #include " subsystems/chassis/command_move_chassis_joystick.hpp"
20
+ #include " subsystems/chassis/command_move_chassis_keyboard.hpp"
21
+ #include " subsystems/chassis/command_move_chassis_turret_relative_joystick.hpp"
18
22
19
23
// Agitator includes ----------------------------------------
20
24
#include " subsystems/agitator/agitator_subsystem.hpp"
25
+ #include " subsystems/agitator/command_agitator_continuous.hpp"
26
+ #include " subsystems/agitator/command_unjam_agitator.hpp"
21
27
22
28
// Flywheel includes ----------------------------------------
29
+ #include " subsystems/flywheel/command_flywheel_off.hpp"
30
+ #include " subsystems/flywheel/command_rotate_flywheel.hpp"
23
31
#include " subsystems/flywheel/flywheel_subsystem.hpp"
24
32
25
33
// Turret includes ------------------------------------------
26
34
#include " subsystems/odometry/odometry_subsystem.hpp"
27
- #include " subsystems/turret/command_sentry_aim.hpp"
35
+ #include " subsystems/turret/command_move_turret_aimbot.hpp"
36
+ #include " subsystems/turret/command_move_turret_joystick.hpp"
37
+ #include " subsystems/turret/command_move_turret_mouse.hpp"
28
38
#include " subsystems/turret/turret_subsystem.hpp"
29
39
30
40
// Sound includes -----------------------------------------
@@ -43,6 +53,8 @@ using namespace subsystems::sound;
43
53
44
54
using namespace commands ;
45
55
56
+ using power_limiter::BarrelId;
57
+
46
58
/*
47
59
* NOTE: We are using the DoNotUse_getDrivers() function here
48
60
* because this file defines all subsystems and command
@@ -64,13 +76,86 @@ OdometrySubsystem odometry(drivers(), &chassis, &turret);
64
76
SoundSubsystem sound (drivers());
65
77
66
78
// Command definitions -----------------------------------------------------------
67
- CommandSentryPosition sentryPositionCommand (drivers(), &chassis);
68
- CommandSentryAim sentryAimCommand (drivers(), &turret);
79
+ CommandMoveChassisJoystick moveChassisCommandJoystick (drivers(), &chassis, &turret);
80
+ CommandMoveChassisTurretRelativeJoystick moveChassisTurretRelativeCommandJoystick (
81
+ drivers (),
82
+ &chassis,
83
+ &turret);
84
+ CommandMoveChassisKeyboard moveChassisCommandKeyboard (drivers(), &chassis, &turret);
85
+ CommandBeybladeChassisKeyboard beybladeChassisCommandKeyboard (drivers(), &chassis, &turret);
86
+
87
+ CommandAgitatorContinuous agitator1ContinuousCommand (drivers(), &agitator1, BarrelId::STANDARD1);
88
+ CommandAgitatorContinuous agitator2ContinuousCommand (drivers(), &agitator2, BarrelId::STANDARD2);
89
+ CommandUnjamAgitator unjamAgitator1Command (drivers(), &agitator1);
90
+ CommandUnjamAgitator unjamAgitator2Command (drivers(), &agitator2);
91
+
92
+ CommandRotateFlywheel rotateFlywheelKeyboardCommand (drivers(), &flywheel);
93
+ CommandRotateFlywheel rotateFlywheelNoAgitatorCommand (drivers(), &flywheel);
94
+ CommandRotateFlywheel rotateFlywheelWithAgitatorCommand (drivers(), &flywheel);
95
+ CommandFlywheelOff flywheelOffCommand (drivers(), &flywheel);
96
+
97
+ CommandMoveTurretJoystick moveTurretCommandJoystick (drivers(), &turret);
98
+ CommandMoveTurretJoystick moveTurretWhenChassisIsTurretRelativeCommandJoystick (drivers(), &turret);
99
+ CommandMoveTurretMouse moveTurretCommandMouse (drivers(), &turret);
100
+ CommandMoveTurretAimbot moveTurretCommandAimbot (drivers(), &turret);
69
101
70
102
CommandPlaySound playStartupSoundCommand (drivers(), &sound, SOUND_STARTUP);
71
103
104
+ // Keyboard mappings ------------------------------------------------------------
105
+ ToggleCommandMapping keyRToggled (
106
+ drivers (),
107
+ {&beybladeChassisCommandKeyboard},
108
+ RemoteMapState ({Remote::Key::R}));
109
+
110
+ ToggleCommandMapping keyGToggled (
111
+ drivers (),
112
+ {&rotateFlywheelKeyboardCommand},
113
+ RemoteMapState ({Remote::Key::G}));
114
+
115
+ HoldCommandMapping leftMouseDown (
116
+ drivers (),
117
+ {&agitator1ContinuousCommand, &agitator2ContinuousCommand},
118
+ RemoteMapState (RemoteMapState::MouseButton::LEFT));
119
+
120
+ HoldCommandMapping keyXHeld (
121
+ drivers (),
122
+ {&unjamAgitator1Command, &unjamAgitator2Command},
123
+ RemoteMapState ({Remote::Key::X}));
124
+
125
+ HoldCommandMapping rightMouseDown (
126
+ drivers (),
127
+ {&moveTurretCommandAimbot},
128
+ RemoteMapState (RemoteMapState::MouseButton::RIGHT));
129
+
130
+ // Joystick mappings ------------------------------------------------------------
131
+ HoldCommandMapping rightSwitchUp (
132
+ drivers (),
133
+ {&moveChassisTurretRelativeCommandJoystick,
134
+ &moveTurretWhenChassisIsTurretRelativeCommandJoystick},
135
+ RemoteMapState (Remote::Switch::RIGHT_SWITCH, Remote::SwitchState::UP));
136
+
137
+ HoldCommandMapping rightSwitchMid (
138
+ drivers (),
139
+ {&moveChassisCommandJoystick, &moveTurretCommandJoystick},
140
+ RemoteMapState (Remote::Switch::RIGHT_SWITCH, Remote::SwitchState::MID));
141
+
142
+ HoldCommandMapping rightSwitchDown (
143
+ drivers (),
144
+ {&flywheelOffCommand},
145
+ RemoteMapState (Remote::Switch::RIGHT_SWITCH, Remote::SwitchState::DOWN));
146
+
147
+ HoldCommandMapping leftSwitchMid (
148
+ drivers (),
149
+ {&rotateFlywheelNoAgitatorCommand},
150
+ RemoteMapState (Remote::Switch::LEFT_SWITCH, Remote::SwitchState::MID));
151
+
152
+ HoldCommandMapping leftSwitchUp (
153
+ drivers (),
154
+ {&agitator1ContinuousCommand, &agitator2ContinuousCommand, &rotateFlywheelWithAgitatorCommand},
155
+ RemoteMapState (Remote::Switch::LEFT_SWITCH, Remote::SwitchState::UP));
156
+
72
157
// Register subsystems here -----------------------------------------------
73
- void registerStandardSubsystems (src::Drivers *drivers)
158
+ void registerSubsystems (src::Drivers *drivers)
74
159
{
75
160
drivers->commandScheduler .registerSubsystem (&chassis);
76
161
drivers->commandScheduler .registerSubsystem (&agitator1);
@@ -96,8 +181,9 @@ void initializeSubsystems()
96
181
// Set default commands here -----------------------------------------------
97
182
void setDefaultCommands (src::Drivers *)
98
183
{
99
- chassis.setDefaultCommand (&sentryPositionCommand);
100
- turret.setDefaultCommand (&sentryAimCommand);
184
+ chassis.setDefaultCommand (&moveChassisCommandKeyboard);
185
+ flywheel.setDefaultCommand (&flywheelOffCommand);
186
+ turret.setDefaultCommand (&moveTurretCommandMouse);
101
187
}
102
188
103
189
void runStartupCommands (src::Drivers *drivers)
@@ -106,15 +192,30 @@ void runStartupCommands(src::Drivers *drivers)
106
192
}
107
193
108
194
// Register IO mappings here -----------------------------------------------
109
- void registerMappings (src::Drivers *drivers) {}
195
+ void registerMappings (src::Drivers *drivers)
196
+ {
197
+ // Keyboard mappings ------------------------------------------------------------
198
+ drivers->commandMapper .addMap (&keyRToggled);
199
+ drivers->commandMapper .addMap (&leftMouseDown);
200
+ drivers->commandMapper .addMap (&keyXHeld);
201
+ drivers->commandMapper .addMap (&rightMouseDown);
202
+ drivers->commandMapper .addMap (&keyGToggled);
203
+
204
+ // Joystick mappings ------------------------------------------------------------
205
+ drivers->commandMapper .addMap (&rightSwitchUp);
206
+ drivers->commandMapper .addMap (&rightSwitchMid);
207
+ drivers->commandMapper .addMap (&rightSwitchDown);
208
+ drivers->commandMapper .addMap (&leftSwitchMid);
209
+ drivers->commandMapper .addMap (&leftSwitchUp);
210
+ }
110
211
} // namespace sentry_control
111
212
112
213
namespace control
113
214
{
114
215
void initSubsystemCommands (src::Drivers *drivers)
115
216
{
116
217
sentry_control::initializeSubsystems ();
117
- sentry_control::registerStandardSubsystems (drivers);
218
+ sentry_control::registerSubsystems (drivers);
118
219
sentry_control::setDefaultCommands (drivers);
119
220
sentry_control::runStartupCommands (drivers);
120
221
sentry_control::registerMappings (drivers);
0 commit comments