mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
[commands] Refactor lambda-based commands to inherit FunctionalCommand (#4451)
This commit is contained in:
@@ -8,22 +8,14 @@ using namespace frc2;
|
||||
|
||||
InstantCommand::InstantCommand(std::function<void()> toRun,
|
||||
std::initializer_list<Subsystem*> requirements)
|
||||
: m_toRun{std::move(toRun)} {
|
||||
AddRequirements(requirements);
|
||||
}
|
||||
: CommandHelper(
|
||||
std::move(toRun), [] {}, [](bool interrupted) {}, [] { return true; },
|
||||
requirements) {}
|
||||
|
||||
InstantCommand::InstantCommand(std::function<void()> toRun,
|
||||
wpi::span<Subsystem* const> requirements)
|
||||
: m_toRun{std::move(toRun)} {
|
||||
AddRequirements(requirements);
|
||||
}
|
||||
: CommandHelper(
|
||||
std::move(toRun), [] {}, [](bool interrupted) {}, [] { return true; },
|
||||
requirements) {}
|
||||
|
||||
InstantCommand::InstantCommand() : m_toRun{[] {}} {}
|
||||
|
||||
void InstantCommand::Initialize() {
|
||||
m_toRun();
|
||||
}
|
||||
|
||||
bool InstantCommand::IsFinished() {
|
||||
return true;
|
||||
}
|
||||
InstantCommand::InstantCommand() : InstantCommand([] {}) {}
|
||||
|
||||
@@ -8,16 +8,10 @@ using namespace frc2;
|
||||
|
||||
RunCommand::RunCommand(std::function<void()> toRun,
|
||||
std::initializer_list<Subsystem*> requirements)
|
||||
: m_toRun{std::move(toRun)} {
|
||||
AddRequirements(requirements);
|
||||
}
|
||||
: CommandHelper([] {}, std::move(toRun), [](bool interrupted) {},
|
||||
[] { return false; }, requirements) {}
|
||||
|
||||
RunCommand::RunCommand(std::function<void()> toRun,
|
||||
wpi::span<Subsystem* const> requirements)
|
||||
: m_toRun{std::move(toRun)} {
|
||||
AddRequirements(requirements);
|
||||
}
|
||||
|
||||
void RunCommand::Execute() {
|
||||
m_toRun();
|
||||
}
|
||||
: CommandHelper([] {}, std::move(toRun), [](bool interrupted) {},
|
||||
[] { return false; }, requirements) {}
|
||||
|
||||
@@ -9,27 +9,15 @@ using namespace frc2;
|
||||
StartEndCommand::StartEndCommand(std::function<void()> onInit,
|
||||
std::function<void()> onEnd,
|
||||
std::initializer_list<Subsystem*> requirements)
|
||||
: m_onInit{std::move(onInit)}, m_onEnd{std::move(onEnd)} {
|
||||
AddRequirements(requirements);
|
||||
}
|
||||
: CommandHelper(
|
||||
std::move(onInit), [] {},
|
||||
[onEnd = std::move(onEnd)](bool interrupted) { onEnd(); },
|
||||
[] { return false; }, requirements) {}
|
||||
|
||||
StartEndCommand::StartEndCommand(std::function<void()> onInit,
|
||||
std::function<void()> onEnd,
|
||||
wpi::span<Subsystem* const> requirements)
|
||||
: m_onInit{std::move(onInit)}, m_onEnd{std::move(onEnd)} {
|
||||
AddRequirements(requirements);
|
||||
}
|
||||
|
||||
StartEndCommand::StartEndCommand(const StartEndCommand& other)
|
||||
: CommandHelper(other) {
|
||||
m_onInit = other.m_onInit;
|
||||
m_onEnd = other.m_onEnd;
|
||||
}
|
||||
|
||||
void StartEndCommand::Initialize() {
|
||||
m_onInit();
|
||||
}
|
||||
|
||||
void StartEndCommand::End(bool interrupted) {
|
||||
m_onEnd();
|
||||
}
|
||||
: CommandHelper(
|
||||
std::move(onInit), [] {},
|
||||
[onEnd = std::move(onEnd)](bool interrupted) { onEnd(); },
|
||||
[] { return false; }, requirements) {}
|
||||
|
||||
Reference in New Issue
Block a user