blob: 2a9e307d363a61e0c5872a764f3b982daad7e1fb [file] [log] [blame]
Comran Morshed9a9948c2016-01-16 15:58:04 +00001#ifndef Y2014_ACTIONS_DRIVETRAIN_ACTION_H_
2#define Y2014_ACTIONS_DRIVETRAIN_ACTION_H_
3
4#include <memory>
5
6#include "aos/common/actions/actor.h"
7#include "aos/common/actions/actions.h"
8#include "frc971/control_loops/state_feedback_loop.h"
9
10#include "y2014/actors/drivetrain_action.q.h"
11
12namespace y2014 {
13namespace actors {
14
15class DrivetrainActor
16 : public ::aos::common::actions::ActorBase<DrivetrainActionQueueGroup> {
17 public:
18 explicit DrivetrainActor(DrivetrainActionQueueGroup* s);
19
20 bool RunAction(const actors::DrivetrainActionParams &params) override;
21
22 private:
23 StateFeedbackLoop<4, 2, 2> loop_;
24};
25
26typedef ::aos::common::actions::TypedAction<DrivetrainActionQueueGroup>
27 DrivetrainAction;
28
29// Makes a new DrivetrainActor action.
30::std::unique_ptr<DrivetrainAction> MakeDrivetrainAction(
31 const ::y2014::actors::DrivetrainActionParams& params);
32
33} // namespace actors
34} // namespace y2014
35
36#endif