mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-22 01:11:42 +00:00
For Java, this is as simple as just adding it, as all motors already have an implementation from MotorSafety that is correctly resolved. For C++, I had to override StopMotor in the classes that descend from SafePWM and explicitly call the SafePWM version. RobotDrive now calls StopMotor on each of its SpeedControllers, instead of calling Disable or setting the motor to 0.0 as it was doing previously. Additional small formatting corrections to the previous commit starting this were added. Change-Id: Ie94565394927a910ce74bc628670ac3d658d8df9
37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
/*----------------------------------------------------------------------------*/
|
|
/* Copyright (c) FIRST 2008-2016. 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. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#pragma once
|
|
|
|
#include "SafePWM.h"
|
|
#include "SpeedController.h"
|
|
#include "PIDOutput.h"
|
|
|
|
/**
|
|
* Vex Robotics Victor 888 Speed Controller
|
|
*
|
|
* The Vex Robotics Victor 884 Speed Controller can also be used with this
|
|
* class but may need to be calibrated per the Victor 884 user manual.
|
|
*/
|
|
class Victor : public SafePWM, public SpeedController {
|
|
public:
|
|
explicit Victor(uint32_t channel);
|
|
virtual ~Victor() = default;
|
|
virtual void Set(float value, uint8_t syncGroup = 0) override;
|
|
virtual float Get() const override;
|
|
virtual void Disable() override;
|
|
virtual void StopMotor() override;
|
|
|
|
virtual void PIDWrite(float output) override;
|
|
|
|
virtual void SetInverted(bool isInverted) override;
|
|
virtual bool GetInverted() const override;
|
|
|
|
private:
|
|
bool m_isInverted = false;
|
|
};
|