blob: fe38a0254774c52bf388192455c89a097263e035 [file] [log] [blame]
Austin Schuhbfb04122019-05-22 21:16:51 -07001#ifndef Y2014_ACTORS_AUTONOMOUS_ACTOR_H_
2#define Y2014_ACTORS_AUTONOMOUS_ACTOR_H_
3
4#include <chrono>
5#include <memory>
6
7#include "aos/actions/actions.h"
8#include "aos/actions/actor.h"
9#include "frc971/autonomous/base_autonomous_actor.h"
10#include "frc971/control_loops/drivetrain/drivetrain.q.h"
11#include "frc971/control_loops/drivetrain/drivetrain_config.h"
12
13namespace y2014 {
14namespace actors {
15
16class AutonomousActor : public ::frc971::autonomous::BaseAutonomousActor {
17 public:
18 explicit AutonomousActor(::aos::EventLoop *event_loop,
19 ::frc971::autonomous::AutonomousActionQueueGroup *s);
20
21 bool RunAction(
22 const ::frc971::autonomous::AutonomousActionParams &params) override;
23
24 private:
25 void Reset() {
26 InitializeEncoders();
27 ResetDrivetrain();
28 }
29
30 void PositionClawVertically(double intake_power, double centering_power);
31 void PositionClawBackIntake();
32 void PositionClawUpClosed();
33 void PositionClawForShot();
34 void SetShotPower(double power);
35 void Shoot();
36
37 bool WaitUntilClawDone();
38};
39
40} // namespace actors
41} // namespace y2014
42
43#endif // Y2014_ACTORS_AUTONOMOUS_ACTOR_H_