Source code for wpilib.speedcontrollergroup

# validated: 2017-12-25 TW f9bece2ffbf7 edu/wpi/first/wpilibj/SpeedControllerGroup.java

# ----------------------------------------------------------------------------
# Copyright (c) FIRST 2008-2017. 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 .interfaces.speedcontroller import SpeedController
from .sendablebase import SendableBase

__all__ = ["SpeedControllerGroup"]


[docs]class SpeedControllerGroup(SendableBase, SpeedController): """Allows multiple :class:`.SpeedController` objects to be linked together.""" instances = 0 def __init__(self, speedController, *args): """Create a new SpeedControllerGroup with the provided SpeedControllers. :param args: SpeedControllers to add :type args: :class:`.SpeedController` """ SendableBase.__init__(self) SpeedController.__init__(self) self.speedControllers = [speedController] + list(args) for speedcontroller in self.speedControllers: self.addChild(speedcontroller) self.isInverted = False SpeedControllerGroup.instances += 1 self.setName("SpeedControllerGroup", self.instances)
[docs] def set(self, speed): for speedController in self.speedControllers: speedController.set(-speed if self.isInverted else speed)
[docs] def get(self): if len(self.speedControllers) > 0: return self.speedControllers[0].get() return 0.0
[docs] def setInverted(self, isInverted): self.isInverted = isInverted
[docs] def getInverted(self): return self.isInverted
[docs] def stopMotor(self): for speedController in self.speedControllers: speedController.stopMotor()
[docs] def disable(self): for speedController in self.speedControllers: speedController.disable()
[docs] def pidWrite(self, output): for speedController in self.speedControllers: speedController.pidWrite(output)
[docs] def initSendable(self, builder): builder.setSmartDashboardType("Speed Controller") builder.setSafeState(self.stopMotor) builder.addDoubleProperty("Value", self.get, self.set)