2025-01-27 19:26:11 -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-06 17:50:24 -05:00
package frc.robot.commands ;
2025-01-27 19:26:11 -05:00
2025-02-26 19:42:28 -05:00
import java.util.function.DoubleSupplier ;
import edu.wpi.first.networktables.DoubleSubscriber ;
import edu.wpi.first.networktables.NetworkTable ;
import edu.wpi.first.networktables.NetworkTableInstance ;
2025-01-27 19:26:11 -05:00
import edu.wpi.first.wpilibj2.command.Command ;
2025-02-20 20:25:59 -05:00
2025-01-27 19:26:11 -05:00
import frc.robot.subsystems.Elevateur ;
2025-01-29 18:55:06 -05:00
import frc.robot.subsystems.Pince ;
2025-01-27 19:26:11 -05:00
/* 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 */
public class L2 extends Command {
private Elevateur elevateur ;
2025-01-29 18:55:06 -05:00
private Pince pince ;
2025-02-26 19:42:28 -05:00
NetworkTableInstance networktable = NetworkTableInstance . getDefault ( ) ;
NetworkTable tabelevateur = networktable . getTable ( " tabelevateur " ) ;
2025-02-26 20:12:22 -05:00
private DoubleSubscriber encodeur1 = tabelevateur . getDoubleTopic ( " encodeurelevateurbasL2 " ) . subscribe ( - 1 ) ;
private DoubleSubscriber encodeur2 = tabelevateur . getDoubleTopic ( " encodeurelevateurhautL2 " ) . subscribe ( - 0 . 9 ) ;
private DoubleSubscriber encodeur3 = tabelevateur . getDoubleTopic ( " encodeurpincebasL2 " ) . subscribe ( - 1 ) ;
private DoubleSubscriber encodeur4 = tabelevateur . getDoubleTopic ( " encodeurpinceautL2 " ) . subscribe ( - 0 . 9 ) ;
2025-01-27 19:26:11 -05:00
/** Creates a new L2. */
2025-01-29 18:55:06 -05:00
public L2 ( Elevateur elevateur , Pince pince ) {
2025-01-27 19:26:11 -05:00
this . elevateur = elevateur ;
2025-01-29 18:55:06 -05:00
this . pince = pince ;
addRequirements ( elevateur , pince ) ;
2025-01-27 19:26:11 -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-02-26 19:42:28 -05:00
double encodeurbase = encodeur1 . get ( ) ;
double encodeurhaute = encodeur2 . get ( ) ;
double encodeurbasp = encodeur3 . get ( ) ;
double encodeurhautp = encodeur4 . get ( ) ;
if ( elevateur . position ( ) < = encodeurbase & & elevateur . position ( ) > = - encodeurhaute ) {
2025-01-27 19:26:11 -05:00
elevateur . vitesse ( 0 ) ;
}
2025-02-26 19:42:28 -05:00
else if ( elevateur . position ( ) > = encodeurbase ) {
2025-02-25 16:38:35 -05:00
elevateur . vitesse ( - 0 . 2 ) ;
2025-01-28 18:54:42 -05:00
}
2025-01-27 19:26:11 -05:00
else {
2025-02-25 16:38:35 -05:00
elevateur . vitesse ( . 2 ) ;
// }
// if(pince.encodeurpivot()>=500 && pince.encodeurpivot()<=510){
// pince.pivote(0);
2025-02-11 19:22:25 -05:00
2025-02-25 16:38:35 -05:00
// }
// else if(pince.encodeurpivot()>=510){
// pince.pivote(0.2);
// }
// else{
// pince.pivote(-0.2);
}
2025-02-11 19:22:25 -05:00
2025-01-27 19:26:11 -05:00
}
// Called once the command ends or is interrupted.
@Override
public void end ( boolean interrupted ) {
elevateur . vitesse ( 0 ) ;
2025-01-29 18:55:06 -05:00
pince . pivote ( 0 ) ;
2025-01-27 19:26:11 -05:00
}
// Returns true when the command should end.
@Override
public boolean isFinished ( ) {
2025-01-28 18:54:42 -05:00
return false ;
2025-01-27 19:26:11 -05:00
}
}