blob: 0afbe205c63d96390aae4ea13ff6fcb24f4bb76b [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
9namespace frc971 {
10namespace wpilib {
11
Austin Schuhbd1fe9c2019-06-29 16:35:48 -070012void DrivetrainWriter::Write(
Alex Perrycb7da4b2019-08-28 19:35:56 -070013 const ::frc971::control_loops::drivetrain::Output &output) {
14 left_controller0_->SetSpeed(
15 SafeSpeed(reversed_left0_, output.left_voltage()));
Sabina Davisd004fd62019-02-02 23:51:46 -080016 right_controller0_->SetSpeed(
Alex Perrycb7da4b2019-08-28 19:35:56 -070017 SafeSpeed(reversed_right0_, output.right_voltage()));
Sabina Davisd004fd62019-02-02 23:51:46 -080018
19 if (left_controller1_) {
20 left_controller1_->SetSpeed(
Alex Perrycb7da4b2019-08-28 19:35:56 -070021 SafeSpeed(reversed_left1_, output.left_voltage()));
Sabina Davisd004fd62019-02-02 23:51:46 -080022 }
23 if (right_controller1_) {
24 right_controller1_->SetSpeed(
Alex Perrycb7da4b2019-08-28 19:35:56 -070025 SafeSpeed(reversed_right1_, output.right_voltage()));
Sabina Davisd004fd62019-02-02 23:51:46 -080026 }
27}
28
Sabina Davisd004fd62019-02-02 23:51:46 -080029void DrivetrainWriter::Stop() {
Austin Schuhf257f3c2019-10-27 21:00:43 -070030 AOS_LOG(WARNING, "drivetrain output too old\n");
Sabina Davisd004fd62019-02-02 23:51:46 -080031 left_controller0_->SetDisabled();
32 right_controller0_->SetDisabled();
33
34 if (left_controller1_) {
35 left_controller1_->SetDisabled();
36 }
37 if (right_controller1_) {
38 right_controller1_->SetDisabled();
39 }
40}
41
42} // namespace wpilib
43} // namespace frc971