Move y2017 auton actor to use common class
This should give it the drivetrain helpers right off the bat.
Change-Id: I7f88d30c2451da632acc2a85fd57d2bc1772f041
diff --git a/y2017/actors/autonomous_actor.cc b/y2017/actors/autonomous_actor.cc
index ad4b87c..52f3df2 100644
--- a/y2017/actors/autonomous_actor.cc
+++ b/y2017/actors/autonomous_actor.cc
@@ -9,7 +9,7 @@
#include "aos/common/logging/logging.h"
#include "frc971/control_loops/drivetrain/drivetrain.q.h"
-#include "y2017/actors/autonomous_action.q.h"
+#include "y2017/control_loops/drivetrain/drivetrain_base.h"
namespace y2017 {
namespace actors {
@@ -25,28 +25,13 @@
}
} // namespace
-AutonomousActor::AutonomousActor(actors::AutonomousActionQueueGroup *s)
- : aos::common::actions::ActorBase<actors::AutonomousActionQueueGroup>(s) {}
+AutonomousActor::AutonomousActor(
+ ::frc971::autonomous::AutonomousActionQueueGroup *s)
+ : frc971::autonomous::BaseAutonomousActor(
+ s, control_loops::drivetrain::GetDrivetrainConfig()) {}
-void AutonomousActor::WaitUntilDoneOrCanceled(
- ::std::unique_ptr<aos::common::actions::Action> action) {
- if (!action) {
- LOG(ERROR, "No action, not waiting\n");
- return;
- }
-
- ::aos::time::PhasedLoop phased_loop(::std::chrono::milliseconds(5),
- ::std::chrono::milliseconds(5) / 2);
- while (true) {
- // Poll the running bit and see if we should cancel.
- phased_loop.SleepUntilNext();
- if (!action->Running() || ShouldCancel()) {
- return;
- }
- }
-}
-
-bool AutonomousActor::RunAction(const actors::AutonomousActionParams ¶ms) {
+bool AutonomousActor::RunAction(
+ const ::frc971::autonomous::AutonomousActionParams ¶ms) {
monotonic_clock::time_point start_time = monotonic_clock::now();
LOG(INFO, "Starting autonomous action with mode %" PRId32 "\n", params.mode);
@@ -72,11 +57,5 @@
return true;
}
-::std::unique_ptr<AutonomousAction> MakeAutonomousAction(
- const ::y2017::actors::AutonomousActionParams ¶ms) {
- return ::std::unique_ptr<AutonomousAction>(
- new AutonomousAction(&::y2017::actors::autonomous_action, params));
-}
-
} // namespace actors
} // namespace y2017