blob: edbea7aee79795169951ff6e2ffd6a3a1ad43f08 [file] [log] [blame]
Comran Morshed41ed7c22015-11-04 21:03:37 +00001#ifndef Y2014_BOT3_CONTROL_LOOPS_ROLLERS_H_
2#define Y2014_BOT3_CONTROL_LOOPS_ROLLERS_H_
Comran Morshede9b12922015-11-04 19:46:48 +00003
John Park33858a32018-09-28 23:05:48 -07004#include "aos/controls/control_loop.h"
Comran Morshede9b12922015-11-04 19:46:48 +00005
Comran Morshed41ed7c22015-11-04 21:03:37 +00006#include "y2014_bot3/control_loops/rollers/rollers.q.h"
7
8namespace y2014_bot3 {
Comran Morshede9b12922015-11-04 19:46:48 +00009namespace control_loops {
10
Comran Morshed41ed7c22015-11-04 21:03:37 +000011class Rollers : public aos::controls::ControlLoop<control_loops::RollersQueue> {
Comran Morshede9b12922015-11-04 19:46:48 +000012 public:
13 // Constructs a control loops which can take a rollers or defaults to the
Comran Morshed41ed7c22015-11-04 21:03:37 +000014 // rollers at ::2014_bot3::control_loops::rollers.
15 explicit Rollers(control_loops::RollersQueue *rollers_queue =
16 &control_loops::rollers_queue);
Comran Morshede9b12922015-11-04 19:46:48 +000017
18 protected:
19 // Executes one cycle of the control loop.
Comran Morshed41ed7c22015-11-04 21:03:37 +000020 void RunIteration(const control_loops::RollersQueue::Goal *goal,
21 const control_loops::RollersQueue::Position *position,
22 control_loops::RollersQueue::Output *output,
23 control_loops::RollersQueue::Status *status) override;
Comran Morshede9b12922015-11-04 19:46:48 +000024};
25
26} // namespace control_loops
Comran Morshed41ed7c22015-11-04 21:03:37 +000027} // namespace y2014_bot3
Comran Morshede9b12922015-11-04 19:46:48 +000028
Comran Morshed41ed7c22015-11-04 21:03:37 +000029#endif // Y2014_BOT3_CONTROL_LOOPS_ROLLERS_H_