blob: 6439d8442adf6a443a5ac5f4695c45a1af2aec34 [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
Stephan Pleinesd99b1ee2024-02-02 20:56:44 -080011namespace frc971::codelab {
Parker Schuh18dbbb42017-10-18 21:45:33 -070012
Alex Perrycb7da4b2019-08-28 19:35:56 -070013class Basic
James Kuszmaul61750662021-06-21 21:32:33 -070014 : public ::frc971::controls::ControlLoop<Goal, Position, Status, Output> {
Parker Schuh18dbbb42017-10-18 21:45:33 -070015 public:
Austin Schuh55a13dc2019-01-27 22:39:03 -080016 explicit Basic(::aos::EventLoop *event_loop,
Alex Perrycb7da4b2019-08-28 19:35:56 -070017 const ::std::string &name = "/codelab");
Parker Schuh18dbbb42017-10-18 21:45:33 -070018
19 protected:
Alex Perrycb7da4b2019-08-28 19:35:56 -070020 void RunIteration(const Goal *goal, const Position *position,
21 aos::Sender<Output>::Builder *output,
22 aos::Sender<Status>::Builder *status) override;
Parker Schuh18dbbb42017-10-18 21:45:33 -070023};
24
Stephan Pleinesd99b1ee2024-02-02 20:56:44 -080025} // namespace frc971::codelab
Parker Schuh18dbbb42017-10-18 21:45:33 -070026
27#endif // FRC971_CODELAB_BASIC_H_