// 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. package frc.robot.commands; import edu.wpi.first.networktables.DoubleSubscriber; import edu.wpi.first.networktables.NetworkTable; import edu.wpi.first.networktables.NetworkTableInstance; import edu.wpi.first.wpilibj2.command.Command; import frc.robot.subsystems.Elevateur; import frc.robot.subsystems.Pince; /* 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 StationPince extends Command { private Pince pince; private Elevateur elevateur; NetworkTableInstance networktable = NetworkTableInstance.getDefault(); NetworkTable tabelevateur = networktable.getTable("tabelevateur"); private DoubleSubscriber encodeur1 = tabelevateur.getDoubleTopic("encodeur bas Station").subscribe(-0.5); private DoubleSubscriber encodeur2 = tabelevateur.getDoubleTopic("encodeur haut Station").subscribe(-0.4); private DoubleSubscriber encodeur3 = tabelevateur.getDoubleTopic("encodeur pince bas Station").subscribe(-1); private DoubleSubscriber encodeur4 = tabelevateur.getDoubleTopic("encodeur pince haut Station").subscribe(-0.9); /** Creates a new L2Pince. */ public StationPince(Pince pince,Elevateur elevateur) { this.elevateur = elevateur; this.pince = pince; addRequirements(pince,elevateur); // 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() { double encodeurBase = encodeur1.get(); double encodeurhaute = encodeur2.get(); double encodeurbasp = encodeur3.get(); double encodeurhautp = encodeur4.get(); pince.aspirecoral(0.5); if(pince.encodeurpivot()<=encodeurBase && pince.encodeurpivot()>=encodeurhaute){ pince.pivote(0); } else if(pince.encodeurpivot()>=encodeurBase){ pince.pivote(0.2); } else{ pince.pivote(-0.2); } if(elevateur.position()>=400 && elevateur.position()<=410){ elevateur.vitesse(0); } else if(elevateur.position()>=410){ elevateur.vitesse(0.3); } else{ elevateur.vitesse(-.3); } } // Called once the command ends or is interrupted. @Override public void end(boolean interrupted) { pince.pivote(0); pince.aspirecoral(0); } // Returns true when the command should end. @Override public boolean isFinished() { return false; } }