mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
48 lines
1.7 KiB
C++
48 lines
1.7 KiB
C++
/*----------------------------------------------------------------------------*/
|
|
/* Copyright (c) 2019 FIRST. All Rights Reserved. */
|
|
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
|
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
|
/* the project. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#include "subsystems/DriveSubsystem.h"
|
|
|
|
using namespace DriveConstants;
|
|
|
|
DriveSubsystem::DriveSubsystem()
|
|
: m_left1{kLeftMotor1Port},
|
|
m_left2{kLeftMotor2Port},
|
|
m_right1{kRightMotor1Port},
|
|
m_right2{kRightMotor2Port},
|
|
m_leftEncoder{kLeftEncoderPorts[0], kLeftEncoderPorts[1]},
|
|
m_rightEncoder{kRightEncoderPorts[0], kRightEncoderPorts[1]} {
|
|
// Set the distance per pulse for the encoders
|
|
m_leftEncoder.SetDistancePerPulse(kEncoderDistancePerPulse);
|
|
m_rightEncoder.SetDistancePerPulse(kEncoderDistancePerPulse);
|
|
}
|
|
|
|
void DriveSubsystem::Periodic() {
|
|
// Implementation of subsystem periodic method goes here.
|
|
}
|
|
|
|
void DriveSubsystem::ArcadeDrive(double fwd, double rot) {
|
|
m_drive.ArcadeDrive(fwd, rot);
|
|
}
|
|
|
|
void DriveSubsystem::ResetEncoders() {
|
|
m_leftEncoder.Reset();
|
|
m_rightEncoder.Reset();
|
|
}
|
|
|
|
double DriveSubsystem::GetAverageEncoderDistance() {
|
|
return (m_leftEncoder.GetDistance() + m_rightEncoder.GetDistance()) / 2.;
|
|
}
|
|
|
|
frc::Encoder& DriveSubsystem::GetLeftEncoder() { return m_leftEncoder; }
|
|
|
|
frc::Encoder& DriveSubsystem::GetRightEncoder() { return m_rightEncoder; }
|
|
|
|
void DriveSubsystem::SetMaxOutput(double maxOutput) {
|
|
m_drive.SetMaxOutput(maxOutput);
|
|
}
|