mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[cmd] Fix WaitUntilCommand for match time counting down (#8632)
Fixes #8631 Documents that it will return immediately if FMS isn't attached or DS isn't in practice mode. Related to change in DS match time behavior that was documented in #8606
This commit is contained in:
@@ -34,10 +34,15 @@ public class WaitUntilCommand extends Command {
|
||||
* guarantee that the time at which the action is performed will be judged to be legal by the
|
||||
* referees. When in doubt, add a safety factor or time the action manually.
|
||||
*
|
||||
* <p>The match time counts down when connected to FMS or the DS is in practice mode for the
|
||||
* current mode. When the DS is not connected to FMS or in practice mode, the command will not
|
||||
* wait.
|
||||
*
|
||||
* @param time the match time after which to end, in seconds
|
||||
* @see edu.wpi.first.wpilibj.DriverStation#getMatchTime()
|
||||
*/
|
||||
public WaitUntilCommand(double time) {
|
||||
this(() -> Timer.getMatchTime() - time > 0);
|
||||
this(() -> Timer.getMatchTime() < time);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,7 +14,7 @@ WaitUntilCommand::WaitUntilCommand(std::function<bool()> condition)
|
||||
: m_condition{std::move(condition)} {}
|
||||
|
||||
WaitUntilCommand::WaitUntilCommand(units::second_t time)
|
||||
: m_condition{[=] { return frc::Timer::GetMatchTime() - time > 0_s; }} {}
|
||||
: m_condition{[=] { return frc::Timer::GetMatchTime() < time; }} {}
|
||||
|
||||
bool WaitUntilCommand::IsFinished() {
|
||||
return m_condition();
|
||||
|
||||
@@ -36,7 +36,12 @@ class WaitUntilCommand : public CommandHelper<Command, WaitUntilCommand> {
|
||||
* will be judged to be legal by the referees. When in doubt, add a safety
|
||||
* factor or time the action manually.
|
||||
*
|
||||
* The match time counts down when connected to FMS or the DS is in practice
|
||||
* mode for the current mode. When the DS is not connected to FMS or in
|
||||
* practice mode, the command will not wait.
|
||||
*
|
||||
* @param time the match time after which to end, in seconds
|
||||
* @see frc::DriverStation::GetMatchTime()
|
||||
*/
|
||||
explicit WaitUntilCommand(units::second_t time);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user