2025-01-28 17:56:40 -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.
2025-02-27 18:39:15 -05:00
package frc.robot.commands.requin ;
2025-01-28 17:56:40 -05:00
import edu.wpi.first.wpilibj2.command.Command ;
2025-02-11 19:51:37 -05:00
import frc.robot.subsystems.Bougie ;
2025-01-28 17:56:40 -05:00
import frc.robot.subsystems.Requin ;
/* You should consider using the more terse Command factories API instead https://docs.wpilib.org/en/stable/docs/software/commandbased/organizing-command-based.html#defining-commands */
2025-01-28 19:34:18 -05:00
public class BalayeuseAlgue extends Command {
2025-01-28 17:56:40 -05:00
private Requin requin ;
2025-02-11 19:51:37 -05:00
private Bougie bougie ;
2025-01-28 17:56:40 -05:00
/** Creates a new Balayeuse. */
2025-02-22 15:21:04 -05:00
public BalayeuseAlgue ( Requin requin , Bougie bougie ) {
2025-01-28 17:56:40 -05:00
this . requin = requin ;
2025-02-11 19:51:37 -05:00
this . bougie = bougie ;
2025-02-20 20:17:56 -05:00
addRequirements ( requin , bougie ) ;
2025-01-28 17:56:40 -05:00
// Use addRequirements() here to declare subsystem dependencies.
}
// Called when the command is initially scheduled.
@Override
public void initialize ( ) { }
// Called every time the scheduler runs while the command is scheduled.
@Override
public void execute ( ) {
2025-03-03 20:32:11 -05:00
double cibleMin = 700 ;
double cibleMax = 900 ;
if ( requin . amp ( ) > = 78 . 2 ) {
requin . xRequin = true ;
}
2025-03-03 09:43:24 -05:00
if ( requin . xRequin ) {
bougie . Vert ( ) ;
requin . balaye ( 0 ) ;
2025-03-03 20:32:11 -05:00
}
if ( ! requin . xRequin ) {
if ( requin . encodeur ( ) < = cibleMax & & requin . encodeur ( ) > = cibleMin ) {
requin . rotationer ( 0 ) ;
requin . balaye ( - 0 . 4 ) ;
2025-03-03 09:43:24 -05:00
}
2025-03-03 20:32:11 -05:00
else if ( requin . encodeur ( ) > = cibleMax ) {
requin . rotationer ( - 0 . 1 ) ;
2025-03-03 09:43:24 -05:00
}
2025-03-03 20:32:11 -05:00
else {
requin . rotationer ( 0 . 3 ) ;
2025-03-03 09:43:24 -05:00
}
2025-03-03 20:32:11 -05:00
}
2025-02-19 17:21:37 -05:00
}
2025-01-28 17:56:40 -05:00
// Called once the command ends or is interrupted.
@Override
public void end ( boolean interrupted ) {
requin . rotationer ( 0 ) ;
2025-01-28 18:02:53 -05:00
requin . balaye ( 0 ) ;
2025-03-03 20:32:11 -05:00
requin . xRequin = false ;
2025-01-28 17:56:40 -05:00
}
// Returns true when the command should end.
@Override
public boolean isFinished ( ) {
return false ;
}
}