blob: 120b0a3349e556a22f98be2bbf7747356cd7bc28 [file] [log] [blame]
Austin Schuh6d1ee0c2015-11-21 14:36:04 -08001#ifndef Y2015_BOT3_CONTROL_LOOPS_INTAKE_H_
2#define Y2015_BOT3_CONTROL_LOOPS_INTAKE_H_
Comran Morshedfab32002015-08-30 14:48:54 +00003
4#include "aos/common/controls/control_loop.h"
5
Austin Schuh6d1ee0c2015-11-21 14:36:04 -08006#include "y2015_bot3/control_loops/intake/intake.q.h"
Comran Morshedfab32002015-08-30 14:48:54 +00007
Austin Schuh6d1ee0c2015-11-21 14:36:04 -08008namespace y2015_bot3 {
Comran Morshedfab32002015-08-30 14:48:54 +00009namespace control_loops {
10
11constexpr double kIntakeVoltageFullPower = 12.0;
12
13class Intake : public aos::controls::ControlLoop<control_loops::IntakeQueue> {
14 public:
15 explicit Intake(
16 control_loops::IntakeQueue *intake_queue = &control_loops::intake_queue);
17
18 protected:
19 void RunIteration(const control_loops::IntakeQueue::Goal *goal,
20 const control_loops::IntakeQueue::Position *position,
21 control_loops::IntakeQueue::Output *output,
22 control_loops::IntakeQueue::Status *status) override;
23};
24
25} // namespace control_loops
Austin Schuh6d1ee0c2015-11-21 14:36:04 -080026} // namespace y2015_bot3
Comran Morshedfab32002015-08-30 14:48:54 +000027
Austin Schuh6d1ee0c2015-11-21 14:36:04 -080028#endif // Y2015_BOT3_CONTROL_LOOPS_INTAKE_H_