@@ -77,7 +77,10 @@ class RobotContainer {
77
77
/* ** --- commands --- ***/
78
78
// drive by a joystick (controller1)
79
79
val XboxDriveCommand = XboxDrive (drivetrain, controller1)
80
- val XboxDriveSpecial = XboxDrive (drivetrain, controller1)
80
+ val XboxDriveSpecial = XboxDriveSpecial (drivetrain, controller1)
81
+ val driveModeToggle = DriveModeToggleSubsystem (drivetrain, controller1,
82
+ listOf (XboxDriveCommand , XboxDriveSpecial ), 0
83
+ )
81
84
82
85
/* * -- 0 point autos -- **/
83
86
val noAuto = DriveDoubleSupplier (drivetrain, { 0.0 }, { 0.0 })
@@ -227,7 +230,11 @@ class RobotContainer {
227
230
/* setup default commands */
228
231
drivetrain.defaultCommand = XboxDriveCommand
229
232
// drivetrain.defaultCommand = XboxDriveSpecial
230
-
233
+ driveModeToggle.defaultCommand = ChangeDriveMode (driveModeToggle) {
234
+ Constants .kDriveModeChangingOn && controller1.aButton
235
+ }
236
+
237
+
231
238
/* default gate - run forward on X, backwards on A
232
239
* If left bumper held, run until a ball is seen by the sensor
233
240
*/
@@ -268,23 +275,32 @@ class RobotContainer {
268
275
269
276
lights.defaultCommand = setAlliance
270
277
271
- /* toggle vision mode when start is pressed on controller0 */
272
- visionToggle.defaultCommand = VisionModeChange (visionToggle, {
273
- val visionMode = {if (controller0.getStartButtonPressed()) {
274
- when (visionToggle.visionMode) {
275
- VisionModes .BALL -> VisionModes .HIGHGOAL
276
- VisionModes .HIGHGOAL -> VisionModes .BALL
278
+ /* toggle vision mode with D-Pad (pov) and toggle
279
+ auto intake with start and back on controller0.
280
+ controller1 can also change vision mode */
281
+ visionToggle.defaultCommand = VisionModeChange (visionToggle) {
282
+ val visionMode = {
283
+ when (controller1.pov) {
284
+ 90 -> VisionModes .HIGHGOAL // right
285
+ 270 -> VisionModes .BALL // left
286
+ else -> when (controller0.pov) {
287
+ 90 -> VisionModes .HIGHGOAL // right
288
+ 270 -> VisionModes .BALL // left
289
+ else -> visionToggle.visionMode
290
+ }
277
291
}
278
- } else {
279
- visionToggle.visionMode
280
- } }
292
+ }
281
293
282
- val autoIntakeOn = {if (controller0.getBackButtonPressed()) {
283
- ! visionToggle.visionIntakeOn
284
- } else visionToggle.visionIntakeOn }
294
+ val autoIntakeOn = {
295
+ when {
296
+ controller0.startButtonPressed -> true
297
+ controller0.backButtonPressed -> false
298
+ else -> visionToggle.visionIntakeOn
299
+ }
300
+ }
285
301
286
302
Pair (visionMode(), autoIntakeOn())
287
- })
303
+ }
288
304
289
305
/* set options for autonomous */
290
306
m_autoCommandChooser.setDefaultOption(" Power Port Vision Autonomous" , visionAuto())
0 commit comments