blob: 296648132cabfebe34cb470de2bf4736224caf11 [file] [log] [blame]
Sabina Davisd004fd62019-02-02 23:51:46 -08001#include "frc971/wpilib/drivetrain_writer.h"
2
3#include "aos/commonmath.h"
4#include "aos/logging/logging.h"
Alex Perrycb7da4b2019-08-28 19:35:56 -07005#include "frc971/control_loops/drivetrain/drivetrain_output_generated.h"
Sabina Davisd004fd62019-02-02 23:51:46 -08006#include "frc971/wpilib/ahal/PWM.h"
7#include "frc971/wpilib/loop_output_handler.h"
8
Stephan Pleinesf63bde82024-01-13 15:59:33 -08009namespace frc971::wpilib {
Sabina Davisd004fd62019-02-02 23:51:46 -080010
Austin Schuhbd1fe9c2019-06-29 16:35:48 -070011void DrivetrainWriter::Write(
Alex Perrycb7da4b2019-08-28 19:35:56 -070012 const ::frc971::control_loops::drivetrain::Output &output) {
13 left_controller0_->SetSpeed(
14 SafeSpeed(reversed_left0_, output.left_voltage()));
Sabina Davisd004fd62019-02-02 23:51:46 -080015 right_controller0_->SetSpeed(
Alex Perrycb7da4b2019-08-28 19:35:56 -070016 SafeSpeed(reversed_right0_, output.right_voltage()));
Sabina Davisd004fd62019-02-02 23:51:46 -080017
18 if (left_controller1_) {
19 left_controller1_->SetSpeed(
Alex Perrycb7da4b2019-08-28 19:35:56 -070020 SafeSpeed(reversed_left1_, output.left_voltage()));
Sabina Davisd004fd62019-02-02 23:51:46 -080021 }
22 if (right_controller1_) {
23 right_controller1_->SetSpeed(
Alex Perrycb7da4b2019-08-28 19:35:56 -070024 SafeSpeed(reversed_right1_, output.right_voltage()));
Sabina Davisd004fd62019-02-02 23:51:46 -080025 }
26}
27
Sabina Davisd004fd62019-02-02 23:51:46 -080028void DrivetrainWriter::Stop() {
Austin Schuhf257f3c2019-10-27 21:00:43 -070029 AOS_LOG(WARNING, "drivetrain output too old\n");
Sabina Davisd004fd62019-02-02 23:51:46 -080030 left_controller0_->SetDisabled();
31 right_controller0_->SetDisabled();
32
33 if (left_controller1_) {
34 left_controller1_->SetDisabled();
35 }
36 if (right_controller1_) {
37 right_controller1_->SetDisabled();
38 }
39}
40
Stephan Pleinesf63bde82024-01-13 15:59:33 -080041} // namespace frc971::wpilib