blob: c0350028d3acb5fa1ae0ebf38bd06ed46ef746a2 [file] [log] [blame]
Ben Fredricksond69f38b2015-01-28 20:06:15 -08001#ifndef FRC971_ACTIONS_DRIVETRAIN_ACTION_H_
2#define FRC971_ACTIONS_DRIVETRAIN_ACTION_H_
3
4#include <memory>
5
Daniel Petti3b1e48f2015-02-15 15:57:53 -08006#include "frc971/actors/drivetrain_action.q.h"
Ben Fredricksond69f38b2015-01-28 20:06:15 -08007#include "aos/common/actions/actor.h"
8#include "aos/common/actions/actions.h"
9
10namespace frc971 {
Daniel Petti3b1e48f2015-02-15 15:57:53 -080011namespace actors {
Ben Fredricksond69f38b2015-01-28 20:06:15 -080012
13class DrivetrainActor
14 : public aos::common::actions::ActorBase<DrivetrainActionQueueGroup> {
15 public:
16 explicit DrivetrainActor(DrivetrainActionQueueGroup* s);
17
Ben Fredrickson9fb2ab12015-02-16 16:42:08 -080018 bool RunAction(const actors::DrivetrainActionParams &params) override;
Ben Fredricksond69f38b2015-01-28 20:06:15 -080019};
20
Ben Fredrickson9fb2ab12015-02-16 16:42:08 -080021typedef aos::common::actions::TypedAction<DrivetrainActionQueueGroup>
22 DrivetrainAction;
23
Ben Fredricksond69f38b2015-01-28 20:06:15 -080024// Makes a new DrivetrainActor action.
Ben Fredrickson9fb2ab12015-02-16 16:42:08 -080025::std::unique_ptr<DrivetrainAction> MakeDrivetrainAction(
26 const ::frc971::actors::DrivetrainActionParams& params);
Ben Fredricksond69f38b2015-01-28 20:06:15 -080027
Daniel Petti3b1e48f2015-02-15 15:57:53 -080028} // namespace actors
Ben Fredricksond69f38b2015-01-28 20:06:15 -080029} // namespace frc971
30
31#endif