2022-01-15 14:20:49 -07:00
|
|
|
package frc4388.robot.subsystems;
|
|
|
|
|
|
|
|
|
|
import edu.wpi.first.wpilibj.motorcontrol.Spark;
|
|
|
|
|
import edu.wpi.first.wpilibj2.command.SubsystemBase;
|
|
|
|
|
import frc4388.robot.Constants;
|
2022-01-15 15:21:46 -07:00
|
|
|
import edu.wpi.first.wpilibj.DigitalInput;
|
2022-01-25 17:17:07 -07:00
|
|
|
import com.revrobotics.CANSparkMax;
|
2022-01-15 14:20:49 -07:00
|
|
|
|
|
|
|
|
public class Serializer extends SubsystemBase{
|
2022-01-25 17:17:07 -07:00
|
|
|
private CANSparkMax m_serializerBelt;
|
|
|
|
|
private CANSparkMax m_serializerShooterBelt;
|
2022-01-15 15:21:46 -07:00
|
|
|
private DigitalInput m_serializerBeam;
|
2022-01-15 14:20:49 -07:00
|
|
|
private boolean serializerState;
|
|
|
|
|
|
2022-02-28 16:44:54 -07:00
|
|
|
public Serializer(CANSparkMax serializerBelt, CANSparkMax serializerShooterBelt, DigitalInput serializerBeam) { //TODO: Only one motor lol
|
2022-01-15 15:21:46 -07:00
|
|
|
m_serializerBelt = serializerBelt;
|
|
|
|
|
m_serializerShooterBelt = serializerShooterBelt;
|
2022-02-26 15:41:54 -07:00
|
|
|
m_serializerBeam = serializerBeam;
|
2022-01-15 15:21:46 -07:00
|
|
|
|
|
|
|
|
serializerState = false;
|
|
|
|
|
setSerializerState(serializerState);
|
2022-01-25 17:17:07 -07:00
|
|
|
m_serializerBelt.set(0);
|
|
|
|
|
m_serializerShooterBelt.set(0);
|
|
|
|
|
|
2022-01-15 15:21:46 -07:00
|
|
|
}
|
2022-03-05 11:04:40 -07:00
|
|
|
/**
|
|
|
|
|
* Gets The State Of The Beam
|
|
|
|
|
* @return The State Of The Beam
|
|
|
|
|
*/
|
2022-01-15 15:21:46 -07:00
|
|
|
public boolean getBeam() {
|
2022-01-28 17:59:25 -07:00
|
|
|
return m_serializerBeam.get();
|
2022-01-15 15:21:46 -07:00
|
|
|
}
|
2022-03-05 11:04:40 -07:00
|
|
|
/**
|
|
|
|
|
* Sets The Serializer State With The Beam
|
|
|
|
|
* @param state Your State Of The Button
|
|
|
|
|
* @param beambroken The State of the Beam Senser
|
|
|
|
|
*/
|
|
|
|
|
public void setSerializerStateWithBeam(boolean state, boolean beambroken) {
|
|
|
|
|
boolean total = state || beambroken;
|
2022-01-15 15:21:46 -07:00
|
|
|
setSerializerState(total);
|
|
|
|
|
}
|
2022-03-05 11:04:40 -07:00
|
|
|
/**
|
|
|
|
|
* Sets The Serializer State With The Beam
|
|
|
|
|
* @param state Your State Of The Button
|
|
|
|
|
*/
|
2022-01-15 15:21:46 -07:00
|
|
|
public void setSerializerState(boolean state) {
|
2022-01-18 18:04:58 -07:00
|
|
|
setSerializerBeltState(state);
|
|
|
|
|
setSerializerShooterBeltState(state);
|
|
|
|
|
serializerState = state;
|
|
|
|
|
}
|
2022-03-05 11:04:40 -07:00
|
|
|
/**
|
|
|
|
|
* Sets the Serializer Belt State
|
|
|
|
|
* @param state Your State Of The Button
|
|
|
|
|
*/
|
2022-01-18 18:04:58 -07:00
|
|
|
public void setSerializerBeltState(boolean state) {
|
|
|
|
|
double serializerBeltSpeed = state ? Constants.SerializerConstants.SERIALIZER_BELT_SPEED : 0.d;
|
2022-01-15 15:21:46 -07:00
|
|
|
m_serializerBelt.set(serializerBeltSpeed);
|
2022-01-18 18:04:58 -07:00
|
|
|
}
|
2022-03-05 11:04:40 -07:00
|
|
|
/**
|
|
|
|
|
* Sets the Shooter Belt State
|
|
|
|
|
* @param state Your State Of The Button
|
|
|
|
|
*/
|
2022-01-18 18:04:58 -07:00
|
|
|
public void setSerializerShooterBeltState(boolean state) {
|
|
|
|
|
double serializerShooterBeltSpeed = state ? Constants.SerializerConstants.SERIALIZER_SHOOTER_BELT_SPEED : 0.d;
|
|
|
|
|
m_serializerShooterBelt.set(serializerShooterBeltSpeed);
|
2022-01-15 15:21:46 -07:00
|
|
|
}
|
|
|
|
|
|
2022-03-05 11:04:40 -07:00
|
|
|
/**
|
|
|
|
|
* Gets the Serializer State
|
|
|
|
|
* @return The Serializer State
|
|
|
|
|
*/
|
2022-01-15 15:21:46 -07:00
|
|
|
public boolean getSerializerState() {
|
|
|
|
|
return serializerState;
|
|
|
|
|
}
|
2022-01-15 14:20:49 -07:00
|
|
|
}
|