2026-02-20 18:30:35 -05:00
|
|
|
#
|
|
|
|
|
# Copyright (c) FIRST and other WPILib contributors.
|
|
|
|
|
# Open Source Software; you can modify and/or share it under the terms of
|
|
|
|
|
# the WPILib BSD license file in the root directory of this project.
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
import wpilib
|
|
|
|
|
import commands2
|
|
|
|
|
import commands2.cmd
|
|
|
|
|
|
|
|
|
|
import constants
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class HatchSubsystem(commands2.Subsystem):
|
|
|
|
|
def __init__(self) -> None:
|
|
|
|
|
|
|
|
|
|
self.hatchSolenoid = wpilib.DoubleSolenoid(
|
|
|
|
|
constants.kHatchSolenoidModule,
|
|
|
|
|
constants.kHatchSolenoidModuleType,
|
|
|
|
|
*constants.kHatchSolenoidPorts
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def grabHatch(self) -> commands2.Command:
|
|
|
|
|
"""Grabs the hatch"""
|
|
|
|
|
return commands2.cmd.runOnce(
|
2026-03-17 17:10:58 -07:00
|
|
|
lambda: self.hatchSolenoid.set(wpilib.DoubleSolenoid.Value.FORWARD), self
|
2026-02-20 18:30:35 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def releaseHatch(self) -> commands2.Command:
|
|
|
|
|
"""Releases the hatch"""
|
|
|
|
|
return commands2.cmd.runOnce(
|
2026-03-17 17:10:58 -07:00
|
|
|
lambda: self.hatchSolenoid.set(wpilib.DoubleSolenoid.Value.REVERSE), self
|
2026-02-20 18:30:35 -05:00
|
|
|
)
|