blob: 8d388dc87f76943642f12f0a19ecc863c3867e05 [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"
5#include "aos/logging/queue_logging.h"
6#include "frc971/control_loops/drivetrain/drivetrain.q.h"
7#include "frc971/wpilib/ahal/PWM.h"
8#include "frc971/wpilib/loop_output_handler.h"
9
10namespace frc971 {
11namespace wpilib {
12
13void DrivetrainWriter::Write() {
14 auto &queue = ::frc971::control_loops::drivetrain_queue.output;
15 LOG_STRUCT(DEBUG, "will output", *queue);
16 left_controller0_->SetSpeed(SafeSpeed(reversed_left0_, queue->left_voltage));
17 right_controller0_->SetSpeed(
18 SafeSpeed(reversed_right0_, queue->right_voltage));
19
20 if (left_controller1_) {
21 left_controller1_->SetSpeed(
22 SafeSpeed(reversed_left1_, queue->left_voltage));
23 }
24 if (right_controller1_) {
25 right_controller1_->SetSpeed(
26 SafeSpeed(reversed_right1_, queue->right_voltage));
27 }
28}
29
30void DrivetrainWriter::Read() {
31 ::frc971::control_loops::drivetrain_queue.output.FetchAnother();
32}
33
34void DrivetrainWriter::Stop() {
35 LOG(WARNING, "drivetrain output too old\n");
36 left_controller0_->SetDisabled();
37 right_controller0_->SetDisabled();
38
39 if (left_controller1_) {
40 left_controller1_->SetDisabled();
41 }
42 if (right_controller1_) {
43 right_controller1_->SetDisabled();
44 }
45}
46
47} // namespace wpilib
48} // namespace frc971