Source code for wpilib.pwmspeedcontroller

# validated: 2016-11-26 DS 9e99df1cf70a athena/java/edu/wpi/first/wpilibj/PWMSpeedController.java
#----------------------------------------------------------------------------
# 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.
#----------------------------------------------------------------------------

from .livewindow import LiveWindow
from .safepwm import SafePWM

__all__ = ["PWMSpeedController"]

[docs]class PWMSpeedController(SafePWM): """ Common base class for all PWM Speed Controllers. """ def __init__(self, channel): super().__init__(channel) self.isInverted = False
[docs] def free(self): LiveWindow.removeComponent(self) super().free()
[docs] def set(self, speed): """Set the PWM value. The PWM value is set using a range of -1.0 to 1.0, appropriately scaling the value for the FPGA. :param speed: The speed to set. Value should be between -1.0 and 1.0. :type speed: float """ self.setSpeed(-speed if self.isInverted else speed) self.feed()
[docs] def setInverted(self, isInverted): """ Common interface for inverting the direction of a speed controller. :param isInverted: The state of inversion (True is inverted). """ self.isInverted = isInverted
[docs] def getInverted(self): """ Common interface for inverting the direction of a speed controller. :returns: The state of inversion (True is inverted) """ return self.isInverted
[docs] def get(self): """Get the recently set value of the PWM. :returns: The most recently set value for the PWM between -1.0 and 1.0. :rtype: float """ return self.getSpeed()
[docs] def pidWrite(self, output): """Write out the PID value as seen in the PIDOutput base object. :param output: Write out the PWM value as was found in the :class:`PIDController`. :type output: float """ self.set(output)