blob: bd396bf2d3b159f273041cd0e8e8b29055ea131f [file] [log] [blame]
Maxwell Henderson74059a42023-12-22 17:40:15 -08001#include "frc971/can_configuration_generated.h"
2#include "frc971/control_loops/drivetrain/drivetrain_output_generated.h"
3#include "frc971/wpilib/falcon.h"
4#include "frc971/wpilib/loop_output_handler.h"
5
6namespace frc971 {
7namespace wpilib {
8
9class CANDrivetrainWriter : public ::frc971::wpilib::LoopOutputHandler<
10 ::frc971::control_loops::drivetrain::Output> {
11 public:
12 CANDrivetrainWriter(::aos::EventLoop *event_loop);
13
14 void set_falcons(std::vector<std::shared_ptr<Falcon>> right_falcons,
15 std::vector<std::shared_ptr<Falcon>> left_falcons);
16
17 void HandleCANConfiguration(const CANConfiguration &configuration);
18
19 static constexpr int kDrivetrainWriterPriority = 35;
20
21 private:
22 void WriteConfigs();
23
24 void Write(
25 const ::frc971::control_loops::drivetrain::Output &output) override;
26
27 void Stop() override;
28
29 std::vector<std::shared_ptr<Falcon>> right_falcons_;
30 std::vector<std::shared_ptr<Falcon>> left_falcons_;
31};
32
33} // namespace wpilib
34} // namespace frc971