2020-02-21 17:48:05 -07:00
|
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
|
/* Copyright (c) 2019 FIRST. All Rights Reserved. */
|
|
|
|
|
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
|
|
|
|
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
|
|
|
|
/* the project. */
|
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
package frc4388.robot.commands;
|
|
|
|
|
|
|
|
|
|
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;
|
|
|
|
|
import edu.wpi.first.wpilibj2.command.CommandBase;
|
|
|
|
|
import edu.wpi.first.wpilibj2.command.SubsystemBase;
|
|
|
|
|
|
|
|
|
|
public class Wait extends CommandBase {
|
|
|
|
|
|
|
|
|
|
long m_startTime;
|
|
|
|
|
long m_waitTime;
|
|
|
|
|
long m_currentTime;
|
|
|
|
|
SubsystemBase m_subsystem;
|
2020-02-29 14:55:17 -07:00
|
|
|
int m_waitNum;
|
|
|
|
|
|
|
|
|
|
int counter = 0;
|
2020-02-21 17:48:05 -07:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Creates a new WaitCommand.
|
|
|
|
|
*/
|
2020-02-29 14:55:17 -07:00
|
|
|
public Wait(SubsystemBase subsystem, double seconds, int waitNum) {
|
2020-02-21 17:48:05 -07:00
|
|
|
// Use addRequirements() here to declare subsystem dependencies.
|
|
|
|
|
|
|
|
|
|
m_waitTime = (long) (seconds * 1000);
|
|
|
|
|
m_subsystem = subsystem;
|
2020-02-29 14:55:17 -07:00
|
|
|
m_waitNum = waitNum;
|
2020-02-21 17:48:05 -07:00
|
|
|
|
|
|
|
|
addRequirements(m_subsystem);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Called when the command is initially scheduled.
|
|
|
|
|
@Override
|
|
|
|
|
public void initialize() {
|
|
|
|
|
m_currentTime = System.currentTimeMillis();
|
|
|
|
|
m_startTime = m_currentTime;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Called every time the scheduler runs while the command is scheduled.
|
|
|
|
|
@Override
|
|
|
|
|
public void execute() {
|
2020-02-29 14:55:17 -07:00
|
|
|
|
|
|
|
|
if (counter == 0) {
|
|
|
|
|
SmartDashboard.putNumber("Wait Coordinates" + m_waitNum, m_currentTime);
|
|
|
|
|
}
|
|
|
|
|
|
2020-02-21 17:48:05 -07:00
|
|
|
m_currentTime = System.currentTimeMillis();
|
|
|
|
|
SmartDashboard.putNumber("Time Difference for Wait", (m_currentTime - m_startTime));
|
2020-02-29 14:55:17 -07:00
|
|
|
|
|
|
|
|
counter ++;
|
2020-02-21 17:48:05 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Called once the command ends or is interrupted.
|
|
|
|
|
@Override
|
|
|
|
|
public void end(boolean interrupted) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Returns true when the command should end.
|
|
|
|
|
@Override
|
|
|
|
|
public boolean isFinished() {
|
|
|
|
|
if ((m_currentTime - m_startTime) >= m_waitTime) {
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|