blob: 3aac567ed1d468f67f097760dfa63d632d222846 [file] [log] [blame]
Parker Schuh18dbbb42017-10-18 21:45:33 -07001#ifndef FRC971_CODELAB_BASIC_H_
2#define FRC971_CODELAB_BASIC_H_
3
John Park33858a32018-09-28 23:05:48 -07004#include "aos/time/time.h"
James Kuszmaul78e29ac2020-07-28 21:07:03 -07005#include "frc971/codelab/basic_goal_generated.h"
6#include "frc971/codelab/basic_output_generated.h"
7#include "frc971/codelab/basic_position_generated.h"
8#include "frc971/codelab/basic_status_generated.h"
Philipp Schrader790cb542023-07-05 21:06:52 -07009#include "frc971/control_loops/control_loop.h"
Parker Schuh18dbbb42017-10-18 21:45:33 -070010
11namespace frc971 {
12namespace codelab {
13
Alex Perrycb7da4b2019-08-28 19:35:56 -070014class Basic
James Kuszmaul61750662021-06-21 21:32:33 -070015 : public ::frc971::controls::ControlLoop<Goal, Position, Status, Output> {
Parker Schuh18dbbb42017-10-18 21:45:33 -070016 public:
Austin Schuh55a13dc2019-01-27 22:39:03 -080017 explicit Basic(::aos::EventLoop *event_loop,
Alex Perrycb7da4b2019-08-28 19:35:56 -070018 const ::std::string &name = "/codelab");
Parker Schuh18dbbb42017-10-18 21:45:33 -070019
20 protected:
Alex Perrycb7da4b2019-08-28 19:35:56 -070021 void RunIteration(const Goal *goal, const Position *position,
22 aos::Sender<Output>::Builder *output,
23 aos::Sender<Status>::Builder *status) override;
Parker Schuh18dbbb42017-10-18 21:45:33 -070024};
25
26} // namespace codelab
27} // namespace frc971
28
29#endif // FRC971_CODELAB_BASIC_H_