From 28edede97adf15b472406a9f96b6d735a0e07a0f Mon Sep 17 00:00:00 2001 From: Noah Gleason Date: Sun, 5 Nov 2017 20:20:44 -0500 Subject: [PATCH] Remove all code that's in central --- .gitignore | 3 +- Arduino/.gitignore | 29 - .../AnalogInOutSerial/AnalogInOutSerial.ino | 86 - Arduino/AutoTeleop/AutoTeleop.ino | 172 - Arduino/LICENSE | 674 --- Arduino/Lights_Final/Lights_Final.ino | 219 - Arduino/WhiteLoopRainbow/WhiteLoopRainbow.ino | 76 - Arduino/WhiteRainbow/WhiteRainbow.ino | 76 - .../Adafruit_NeoPixel/Adafruit_NeoPixel.cpp | 1730 -------- .../Adafruit_NeoPixel/Adafruit_NeoPixel.h | 181 - Arduino/libraries/Adafruit_NeoPixel/COPYING | 165 - Arduino/libraries/Adafruit_NeoPixel/README.md | 11 - Arduino/libraries/Adafruit_NeoPixel/esp8266.c | 67 - .../RGBWstrandtest/RGBWstrandtest.ino | 263 -- .../examples/buttoncycler/buttoncycler.ino | 165 - .../examples/simple/simple.ino | 47 - .../examples/strandtest/strandtest.ino | 134 - .../libraries/Adafruit_NeoPixel/keywords.txt | 29 - .../Adafruit_NeoPixel/library.properties | 9 - Arduino/libraries/readme.txt | 1 - Pathgen/build.gradle | 12 - Pathgen/lib/Pathfinder-Java.jar | Bin 224282 -> 0 bytes .../usfirst/frc/team449/pathgen/Pathgen.java | 189 - R scripts/drawMP.R | 161 - R scripts/field.csv | 84 - R scripts/findVelVsVoltage.R | 24 - R scripts/poseEstimationChecker.R | 291 -- R scripts/robot.csv | 9 - RoboRIO/.gitignore | 1 - RoboRIO/build.gradle | 106 - .../commands/autonomous/Auto2017Boiler.java | 68 - .../commands/autonomous/Auto2017Center.java | 40 - .../commands/autonomous/Auto2017Feeder.java | 69 - .../commands/general/CommandSequence.java | 30 - .../general/ParallelCommandGroup.java | 30 - .../robot/commands/general/RunRunnables.java | 76 - .../robot/commands/general/WaitForMillis.java | 54 - .../RunMotorWhileConditonMet.java | 83 - ...eldOrientedUnidirectionalDriveCommand.java | 225 - ...tedUnidirectionalDriveCommandShifting.java | 121 - .../multiInterface/drive/JiggleRobot.java | 50 - .../drive/NavXDriveStraight.java | 133 - .../multiInterface/drive/NavXTurnToAngle.java | 149 - .../drive/NavXTurnToAngleRelative.java | 89 - .../drive/UnidirectionalNavXDefaultDrive.java | 191 - ...nidirectionalNavXShiftingDefaultDrive.java | 127 - .../commands/multiSubsystem/FireShooter.java | 36 - .../commands/multiSubsystem/LoadShooter.java | 39 - .../commands/multiSubsystem/RackShooter.java | 39 - .../commands/multiSubsystem/ResetShooter.java | 38 - .../robot/components/AHRSRumbleComponent.java | 144 - .../robot/components/AutoshiftComponent.java | 167 - .../robot/components/ShiftComponent.java | 114 - .../components/ShiftWithSensorComponent.java | 164 - .../team449/robot/drive/DriveSubsystem.java | 25 - .../robot/drive/commands/EnableMotors.java | 75 - .../robot/drive/commands/ResetPosition.java | 75 - .../robot/drive/shifting/DriveShiftable.java | 21 - .../shifting/commands/OverrideAutoShift.java | 85 - .../commands/ToggleOverrideAutoShift.java | 77 - .../unidirectional/DriveTalonCluster.java | 477 --- .../DriveTalonClusterShiftable.java | 110 - .../unidirectional/DriveUnidirectional.java | 86 - .../DriveUnidirectionalSimple.java | 186 - .../commands/DetermineNominalVoltage.java | 99 - .../commands/DetermineVelVsVoltage.java | 197 - .../unidirectional/commands/DriveAtSpeed.java | 110 - .../commands/DriveStraight.java | 93 - .../commands/PIDBackAndForth.java | 34 - .../unidirectional/commands/PIDTest.java | 34 - .../commands/SimpleUnidirectionalDrive.java | 82 - .../unidirectional/commands/VoltageRamp.java | 99 - .../generalInterfaces/loggable/Loggable.java | 35 - .../rumbleable/Rumbleable.java | 19 - .../shiftable/Shiftable.java | 37 - .../shiftable/commands/ShiftGears.java | 75 - .../shiftable/commands/SwitchToGear.java | 90 - .../shiftable/commands/SwitchToHighGear.java | 75 - .../shiftable/commands/SwitchToLowGear.java | 75 - .../simpleMotor/SimpleMotor.java | 24 - .../updatable/Updatable.java | 15 - .../robot/jacksonWrappers/FPSTalon.java | 1098 ----- .../robot/jacksonWrappers/MappedAHRS.java | 127 - .../robot/jacksonWrappers/MappedButton.java | 12 - .../jacksonWrappers/MappedDigitalInput.java | 56 - .../jacksonWrappers/MappedDoubleSolenoid.java | 28 - .../robot/jacksonWrappers/MappedJoystick.java | 37 - .../robot/jacksonWrappers/MappedRunnable.java | 11 - .../jacksonWrappers/MappedUsbCamera.java | 41 - .../robot/jacksonWrappers/MappedVictor.java | 46 - .../robot/jacksonWrappers/PressureSensor.java | 45 - .../jacksonWrappers/SimpleMotorCluster.java | 65 - .../robot/jacksonWrappers/YamlCommand.java | 20 - .../YamlCommandGroupWrapper.java | 22 - .../jacksonWrappers/YamlCommandWrapper.java | 21 - .../robot/jacksonWrappers/YamlSubsystem.java | 12 - .../org/usfirst/frc/team449/robot/oi/OI.java | 8 - .../robot/oi/buttons/CommandButton.java | 50 - .../robot/oi/buttons/SimpleButton.java | 51 - .../robot/oi/buttons/TriggerButton.java | 50 - .../team449/robot/oi/buttons/dPadButton.java | 51 - .../oi/fieldoriented/OIFieldOriented.java | 69 - .../fieldoriented/OIFieldOrientedPosCos.java | 127 - .../team449/robot/oi/throttles/Throttle.java | 25 - .../robot/oi/throttles/ThrottleBasic.java | 112 - .../oi/throttles/ThrottleDeadbanded.java | 76 - .../oi/throttles/ThrottleExponential.java | 71 - .../oi/throttles/ThrottlePolynomial.java | 65 - .../robot/oi/throttles/ThrottleSum.java | 80 - .../robot/oi/unidirectional/OIOutreach.java | 113 - .../oi/unidirectional/OIUnidirectional.java | 47 - .../oi/unidirectional/arcade/OIArcade.java | 105 - .../unidirectional/arcade/OIArcadeSimple.java | 56 - .../arcade/OIArcadeWithDPad.java | 157 - .../robot/oi/unidirectional/tank/OITank.java | 93 - .../oi/unidirectional/tank/OITankSimple.java | 88 - .../frc/team449/robot/other/BufferTimer.java | 63 - .../frc/team449/robot/other/Clock.java | 47 - .../frc/team449/robot/other/LogEvent.java | 59 - .../frc/team449/robot/other/Logger.java | 243 -- .../robot/other/MotionProfileData.java | 132 - .../frc/team449/robot/other/Polynomial.java | 103 - .../other/UnidirectionalPoseEstimator.java | 381 -- .../frc/team449/robot/other/Updater.java | 42 - .../climber/ClimberCurrentLimited.java | 188 - .../intake/IntakeFixedAndActuated.java | 158 - .../complex/shooter/LoggingFlywheel.java | 184 - .../interfaces/AHRS/SubsystemAHRS.java | 70 - .../AHRS/commands/OverrideNavX.java | 84 - .../AHRS/commands/PIDAngleCommand.java | 155 - .../AHRS/commands/ToggleOverrideNavX.java | 76 - .../binaryMotor/BinaryMotorSimple.java | 83 - .../binaryMotor/SubsystemBinaryMotor.java | 25 - .../binaryMotor/commands/ToggleMotor.java | 79 - .../binaryMotor/commands/TurnMotorOff.java | 75 - .../commands/TurnMotorOffWithRequires.java | 53 - .../binaryMotor/commands/TurnMotorOn.java | 75 - .../conditional/SubsystemConditional.java | 21 - .../interfaces/flywheel/FlywheelSimple.java | 145 - .../flywheel/SubsystemFlywheel.java | 59 - .../flywheel/commands/SpinUpFlywheel.java | 77 - .../flywheel/commands/SpinUpThenShoot.java | 30 - .../flywheel/commands/ToggleShooting.java | 36 - .../flywheel/commands/TurnAllOff.java | 77 - .../commands/TurnAllOffWithRequires.java | 28 - .../flywheel/commands/TurnAllOn.java | 77 - .../interfaces/intake/IntakeSimple.java | 130 - .../interfaces/intake/SubsystemIntake.java | 29 - .../intake/commands/SetIntakeMode.java | 84 - .../intake/commands/ToggleIntaking.java | 88 - .../interfaces/motionProfile/SubsystemMP.java | 53 - .../SubsystemMPTwoSides.java | 21 - .../commands/LoadProfileTwoSides.java | 88 - .../commands/RunProfileTwoSides.java | 36 - .../motionProfile/commands/LoadProfile.java | 85 - .../commands/RunLoadedProfile.java | 118 - .../motionProfile/commands/RunProfile.java | 33 - .../interfaces/solenoid/SolenoidSimple.java | 65 - .../solenoid/SubsystemSolenoid.java | 23 - .../solenoid/commands/SolenoidForward.java | 76 - .../solenoid/commands/SolenoidOff.java | 76 - .../solenoid/commands/SolenoidReverse.java | 76 - .../solenoid/commands/ToggleSolenoid.java | 80 - .../camera/CameraNetwork.java | 107 - .../camera/commands/ChangeCam.java | 84 - .../pneumatics/Pneumatics.java | 97 - .../pneumatics/commands/StartCompressor.java | 75 - .../calciferLeftBlueBackupProfile.csv | 49 - ...calciferLeftBlueBoilerToLoadingProfile.csv | 152 - .../resources/calciferLeftBlueLeftProfile.csv | 78 - ...alciferLeftBlueLoadingToLoadingProfile.csv | 125 - .../resources/calciferLeftBlueMidProfile.csv | 63 - .../calciferLeftBlueRightProfile.csv | 78 - .../calciferLeftBlueShootProfile.csv | 61 - .../calciferLeftRedBackupProfile.csv | 49 - .../calciferLeftRedBoilerToLoadingProfile.csv | 152 - .../resources/calciferLeftRedLeftProfile.csv | 80 - ...calciferLeftRedLoadingToLoadingProfile.csv | 125 - .../resources/calciferLeftRedMidProfile.csv | 63 - .../resources/calciferLeftRedRightProfile.csv | 79 - .../resources/calciferLeftRedShootProfile.csv | 61 - .../calciferLeftforward100InProfile.csv | 68 - .../calciferRightBlueBackupProfile.csv | 49 - ...alciferRightBlueBoilerToLoadingProfile.csv | 152 - .../calciferRightBlueLeftProfile.csv | 78 - ...lciferRightBlueLoadingToLoadingProfile.csv | 125 - .../resources/calciferRightBlueMidProfile.csv | 63 - .../calciferRightBlueRightProfile.csv | 78 - .../calciferRightBlueShootProfile.csv | 61 - .../calciferRightRedBackupProfile.csv | 49 - ...calciferRightRedBoilerToLoadingProfile.csv | 152 - .../resources/calciferRightRedLeftProfile.csv | 80 - ...alciferRightRedLoadingToLoadingProfile.csv | 125 - .../resources/calciferRightRedMidProfile.csv | 63 - .../calciferRightRedRightProfile.csv | 79 - .../calciferRightRedShootProfile.csv | 61 - .../calciferRightforward100InProfile.csv | 68 - .../main/resources/forward100InProfile.csv | 79 - build.gradle | 113 +- docs/allclasses-frame.html | 163 - docs/allclasses-noframe.html | 163 - docs/constant-values.html | 151 - docs/deprecated-list.html | 122 - docs/help-doc.html | 223 - docs/index-all.html | 3667 ----------------- docs/index.html | 75 - docs/org/usfirst/frc/team449/robot/Robot.html | 492 --- .../frc/team449/robot/RobotMap2017.html | 921 ----- .../commands/autonomous/Auto2017Boiler.html | 316 -- .../commands/autonomous/Auto2017Center.html | 297 -- .../commands/autonomous/Auto2017Feeder.html | 316 -- .../commands/autonomous/package-frame.html | 22 - .../commands/autonomous/package-summary.html | 154 - .../commands/autonomous/package-tree.html | 149 - .../commands/general/CommandSequence.html | 284 -- .../general/ParallelCommandGroup.html | 284 -- .../robot/commands/general/RunRunnables.html | 392 -- .../robot/commands/general/WaitForMillis.html | 335 -- .../robot/commands/general/package-frame.html | 23 - .../commands/general/package-summary.html | 160 - .../robot/commands/general/package-tree.html | 154 - .../RunMotorWhileConditonMet.html | 397 -- ...ectionalDriveCommand.AngularSnapPoint.html | 327 -- ...eldOrientedUnidirectionalDriveCommand.html | 559 --- ...tedUnidirectionalDriveCommandShifting.html | 517 --- .../multiInterface/drive/JiggleRobot.html | 317 -- .../drive/NavXDriveStraight.html | 497 --- .../multiInterface/drive/NavXTurnToAngle.html | 555 --- .../drive/NavXTurnToAngleRelative.html | 439 -- .../drive/UnidirectionalNavXDefaultDrive.html | 545 --- ...nidirectionalNavXShiftingDefaultDrive.html | 527 --- .../multiInterface/drive/package-frame.html | 28 - .../multiInterface/drive/package-summary.html | 191 - .../multiInterface/drive/package-tree.html | 172 - .../multiInterface/package-frame.html | 20 - .../multiInterface/package-summary.html | 142 - .../commands/multiInterface/package-tree.html | 143 - .../commands/multiSubsystem/FireShooter.html | 289 -- .../commands/multiSubsystem/LoadShooter.html | 291 -- .../commands/multiSubsystem/RackShooter.html | 291 -- .../commands/multiSubsystem/ResetShooter.html | 290 -- .../multiSubsystem/package-frame.html | 23 - .../multiSubsystem/package-summary.html | 160 - .../commands/multiSubsystem/package-tree.html | 150 - .../robot/components/AHRSRumbleComponent.html | 308 -- .../robot/components/AutoshiftComponent.html | 316 -- .../robot/components/ShiftComponent.html | 395 -- .../components/ShiftWithSensorComponent.html | 348 -- .../robot/components/package-frame.html | 23 - .../robot/components/package-summary.html | 160 - .../robot/components/package-tree.html | 141 - .../team449/robot/drive/DriveSubsystem.html | 263 -- .../robot/drive/commands/EnableMotors.html | 395 -- .../robot/drive/commands/ResetPosition.html | 395 -- .../robot/drive/commands/package-frame.html | 21 - .../robot/drive/commands/package-summary.html | 148 - .../robot/drive/commands/package-tree.html | 144 - .../team449/robot/drive/package-frame.html | 20 - .../team449/robot/drive/package-summary.html | 142 - .../frc/team449/robot/drive/package-tree.html | 131 - .../robot/drive/shifting/DriveShiftable.html | 272 -- .../shifting/commands/OverrideAutoShift.html | 398 -- .../commands/ToggleOverrideAutoShift.html | 395 -- .../shifting/commands/package-frame.html | 21 - .../shifting/commands/package-summary.html | 148 - .../drive/shifting/commands/package-tree.html | 144 - .../robot/drive/shifting/package-frame.html | 20 - .../robot/drive/shifting/package-summary.html | 142 - .../robot/drive/shifting/package-tree.html | 135 - .../unidirectional/DriveTalonCluster.html | 1147 ------ .../DriveTalonClusterShiftable.html | 454 -- .../unidirectional/DriveUnidirectional.html | 422 -- .../DriveUnidirectionalSimple.html | 602 --- .../commands/DetermineNominalVoltage.html | 400 -- .../commands/DetermineVelVsVoltage.html | 406 -- .../unidirectional/commands/DriveAtSpeed.html | 403 -- .../commands/DriveStraight.html | 384 -- .../commands/PIDBackAndForth.html | 292 -- .../unidirectional/commands/PIDTest.html | 292 -- .../commands/SimpleUnidirectionalDrive.html | 421 -- .../unidirectional/commands/VoltageRamp.html | 398 -- .../commands/package-frame.html | 27 - .../commands/package-summary.html | 184 - .../unidirectional/commands/package-tree.html | 158 - .../drive/unidirectional/package-frame.html | 26 - .../drive/unidirectional/package-summary.html | 171 - .../drive/unidirectional/package-tree.html | 161 - .../generalInterfaces/loggable/Loggable.html | 274 -- .../loggable/package-frame.html | 20 - .../loggable/package-summary.html | 142 - .../loggable/package-tree.html | 131 - .../rumbleable/Rumbleable.html | 234 -- .../rumbleable/package-frame.html | 20 - .../rumbleable/package-summary.html | 142 - .../rumbleable/package-tree.html | 131 - .../shiftable/Shiftable.gear.html | 356 -- .../shiftable/Shiftable.html | 271 -- .../shiftable/commands/ShiftGears.html | 395 -- .../shiftable/commands/SwitchToGear.html | 402 -- .../shiftable/commands/SwitchToHighGear.html | 395 -- .../shiftable/commands/SwitchToLowGear.html | 395 -- .../shiftable/commands/package-frame.html | 23 - .../shiftable/commands/package-summary.html | 160 - .../shiftable/commands/package-tree.html | 146 - .../shiftable/package-frame.html | 24 - .../shiftable/package-summary.html | 157 - .../shiftable/package-tree.html | 143 - .../simpleMotor/SimpleMotor.html | 262 -- .../simpleMotor/package-frame.html | 20 - .../simpleMotor/package-summary.html | 140 - .../simpleMotor/package-tree.html | 131 - .../updatable/Updatable.html | 231 -- .../updatable/package-frame.html | 20 - .../updatable/package-summary.html | 142 - .../updatable/package-tree.html | 131 - .../FPSTalon.PerGearSettings.html | 729 ---- .../jacksonWrappers/FPSTalon.SlaveTalon.html | 305 -- .../robot/jacksonWrappers/FPSTalon.html | 991 ----- .../robot/jacksonWrappers/MappedAHRS.html | 485 --- .../robot/jacksonWrappers/MappedButton.html | 283 -- .../jacksonWrappers/MappedDigitalInput.html | 286 -- .../jacksonWrappers/MappedDoubleSolenoid.html | 326 -- .../robot/jacksonWrappers/MappedJoystick.html | 352 -- .../robot/jacksonWrappers/MappedRunnable.html | 196 - .../jacksonWrappers/MappedUsbCamera.html | 332 -- .../robot/jacksonWrappers/MappedVictor.html | 418 -- .../robot/jacksonWrappers/PressureSensor.html | 290 -- .../jacksonWrappers/SimpleMotorCluster.html | 332 -- .../robot/jacksonWrappers/YamlCommand.html | 232 -- .../YamlCommandGroupWrapper.html | 313 -- .../jacksonWrappers/YamlCommandWrapper.html | 301 -- .../robot/jacksonWrappers/YamlSubsystem.html | 256 -- .../robot/jacksonWrappers/package-frame.html | 39 - .../jacksonWrappers/package-summary.html | 249 -- .../robot/jacksonWrappers/package-tree.html | 230 -- docs/org/usfirst/frc/team449/robot/oi/OI.html | 199 - .../robot/oi/buttons/CommandButton.html | 252 -- .../robot/oi/buttons/SimpleButton.html | 338 -- .../robot/oi/buttons/TriggerButton.html | 338 -- .../team449/robot/oi/buttons/dPadButton.html | 338 -- .../robot/oi/buttons/package-frame.html | 23 - .../robot/oi/buttons/package-summary.html | 160 - .../robot/oi/buttons/package-tree.html | 150 - .../oi/fieldoriented/OIFieldOriented.html | 370 -- .../fieldoriented/OIFieldOrientedPosCos.html | 350 -- .../robot/oi/fieldoriented/package-frame.html | 21 - .../oi/fieldoriented/package-summary.html | 148 - .../robot/oi/fieldoriented/package-tree.html | 139 - .../frc/team449/robot/oi/package-frame.html | 20 - .../frc/team449/robot/oi/package-summary.html | 140 - .../frc/team449/robot/oi/package-tree.html | 135 - .../team449/robot/oi/throttles/Throttle.html | 263 -- .../robot/oi/throttles/ThrottleBasic.html | 466 --- .../oi/throttles/ThrottleDeadbanded.html | 368 -- .../oi/throttles/ThrottleExponential.html | 379 -- .../oi/throttles/ThrottlePolynomial.html | 381 -- .../robot/oi/throttles/ThrottleSum.html | 390 -- .../robot/oi/throttles/package-frame.html | 28 - .../robot/oi/throttles/package-summary.html | 183 - .../robot/oi/throttles/package-tree.html | 153 - .../robot/oi/unidirectional/OIOutreach.html | 398 -- .../oi/unidirectional/OIUnidirectional.html | 324 -- .../oi/unidirectional/arcade/OIArcade.html | 476 --- .../unidirectional/arcade/OIArcadeSimple.html | 331 -- .../arcade/OIArcadeWithDPad.html | 421 -- .../unidirectional/arcade/package-frame.html | 22 - .../arcade/package-summary.html | 154 - .../unidirectional/arcade/package-tree.html | 140 - .../oi/unidirectional/package-frame.html | 24 - .../oi/unidirectional/package-summary.html | 157 - .../robot/oi/unidirectional/package-tree.html | 147 - .../robot/oi/unidirectional/tank/OITank.html | 461 --- .../oi/unidirectional/tank/OITankSimple.html | 353 -- .../oi/unidirectional/tank/package-frame.html | 21 - .../unidirectional/tank/package-summary.html | 148 - .../oi/unidirectional/tank/package-tree.html | 139 - .../frc/team449/robot/other/BufferTimer.html | 305 -- .../frc/team449/robot/other/Clock.html | 273 -- .../frc/team449/robot/other/LogEvent.html | 296 -- .../frc/team449/robot/other/Logger.html | 349 -- .../robot/other/MotionProfileData.html | 345 -- .../frc/team449/robot/other/Polynomial.html | 331 -- .../other/UnidirectionalPoseEstimator.html | 457 -- .../frc/team449/robot/other/Updater.html | 290 -- .../team449/robot/other/package-frame.html | 27 - .../team449/robot/other/package-summary.html | 184 - .../frc/team449/robot/other/package-tree.html | 142 - .../frc/team449/robot/package-frame.html | 21 - .../frc/team449/robot/package-summary.html | 148 - .../frc/team449/robot/package-tree.html | 144 - .../climber/ClimberCurrentLimited.html | 511 --- .../complex/climber/package-frame.html | 20 - .../complex/climber/package-summary.html | 142 - .../complex/climber/package-tree.html | 143 - .../intake/IntakeFixedAndActuated.html | 421 -- .../complex/intake/package-frame.html | 20 - .../complex/intake/package-summary.html | 142 - .../complex/intake/package-tree.html | 143 - .../complex/shooter/LoggingFlywheel.html | 548 --- .../complex/shooter/package-frame.html | 20 - .../complex/shooter/package-summary.html | 142 - .../complex/shooter/package-tree.html | 143 - .../interfaces/AHRS/SubsystemAHRS.html | 385 -- .../AHRS/commands/OverrideNavX.html | 398 -- .../AHRS/commands/PIDAngleCommand.html | 469 --- .../AHRS/commands/ToggleOverrideNavX.html | 395 -- .../AHRS/commands/package-frame.html | 22 - .../AHRS/commands/package-summary.html | 154 - .../AHRS/commands/package-tree.html | 149 - .../interfaces/AHRS/package-frame.html | 20 - .../interfaces/AHRS/package-summary.html | 142 - .../interfaces/AHRS/package-tree.html | 131 - .../binaryMotor/BinaryMotorSimple.html | 372 -- .../binaryMotor/SubsystemBinaryMotor.html | 260 -- .../binaryMotor/commands/ToggleMotor.html | 395 -- .../binaryMotor/commands/TurnMotorOff.html | 439 -- .../commands/TurnMotorOffWithRequires.html | 383 -- .../binaryMotor/commands/TurnMotorOn.html | 395 -- .../binaryMotor/commands/package-frame.html | 23 - .../binaryMotor/commands/package-summary.html | 161 - .../binaryMotor/commands/package-tree.html | 149 - .../interfaces/binaryMotor/package-frame.html | 24 - .../binaryMotor/package-summary.html | 159 - .../interfaces/binaryMotor/package-tree.html | 147 - .../conditional/SubsystemConditional.html | 257 -- .../interfaces/conditional/package-frame.html | 20 - .../conditional/package-summary.html | 142 - .../interfaces/conditional/package-tree.html | 135 - .../interfaces/flywheel/FlywheelSimple.html | 478 --- .../SubsystemFlywheel.FlywheelState.html | 356 -- .../flywheel/SubsystemFlywheel.html | 349 -- .../flywheel/commands/SpinUpFlywheel.html | 395 -- .../flywheel/commands/SpinUpThenShoot.html | 284 -- .../flywheel/commands/ToggleShooting.html | 284 -- .../flywheel/commands/TurnAllOff.html | 399 -- .../commands/TurnAllOffWithRequires.html | 287 -- .../flywheel/commands/TurnAllOn.html | 395 -- .../flywheel/commands/package-frame.html | 25 - .../flywheel/commands/package-summary.html | 173 - .../flywheel/commands/package-tree.html | 159 - .../interfaces/flywheel/package-frame.html | 28 - .../interfaces/flywheel/package-summary.html | 176 - .../interfaces/flywheel/package-tree.html | 159 - .../interfaces/intake/IntakeSimple.html | 384 -- .../intake/SubsystemIntake.IntakeMode.html | 380 -- .../interfaces/intake/SubsystemIntake.html | 268 -- .../intake/commands/SetIntakeMode.html | 399 -- .../intake/commands/ToggleIntaking.html | 399 -- .../intake/commands/package-frame.html | 21 - .../intake/commands/package-summary.html | 148 - .../intake/commands/package-tree.html | 144 - .../interfaces/intake/package-frame.html | 28 - .../interfaces/intake/package-summary.html | 176 - .../interfaces/intake/package-tree.html | 159 - .../interfaces/motionProfile/SubsystemMP.html | 340 -- .../SubsystemMPTwoSides.html | 248 -- .../commands/LoadProfileTwoSides.html | 403 -- .../commands/RunProfileTwoSides.html | 297 -- .../commands/package-frame.html | 21 - .../commands/package-summary.html | 148 - .../commands/package-tree.html | 152 - .../TwoSideMPSubsystem/package-frame.html | 20 - .../TwoSideMPSubsystem/package-summary.html | 142 - .../TwoSideMPSubsystem/package-tree.html | 135 - .../motionProfile/commands/LoadProfile.html | 399 -- .../commands/RunLoadedProfile.html | 403 -- .../motionProfile/commands/RunProfile.html | 293 -- .../motionProfile/commands/package-frame.html | 22 - .../commands/package-summary.html | 154 - .../motionProfile/commands/package-tree.html | 153 - .../motionProfile/package-frame.html | 20 - .../motionProfile/package-summary.html | 142 - .../motionProfile/package-tree.html | 131 - .../interfaces/solenoid/SolenoidSimple.html | 349 -- .../solenoid/SubsystemSolenoid.html | 247 -- .../solenoid/commands/SolenoidForward.html | 395 -- .../solenoid/commands/SolenoidOff.html | 395 -- .../solenoid/commands/SolenoidReverse.html | 395 -- .../solenoid/commands/ToggleSolenoid.html | 395 -- .../solenoid/commands/package-frame.html | 23 - .../solenoid/commands/package-summary.html | 160 - .../solenoid/commands/package-tree.html | 146 - .../interfaces/solenoid/package-frame.html | 24 - .../interfaces/solenoid/package-summary.html | 159 - .../interfaces/solenoid/package-tree.html | 147 - .../camera/CameraNetwork.html | 385 -- .../camera/commands/ChangeCam.html | 395 -- .../camera/commands/package-frame.html | 20 - .../camera/commands/package-summary.html | 142 - .../camera/commands/package-tree.html | 143 - .../camera/package-frame.html | 20 - .../camera/package-summary.html | 142 - .../camera/package-tree.html | 143 - .../pneumatics/Pneumatics.html | 399 -- .../pneumatics/commands/StartCompressor.html | 395 -- .../pneumatics/commands/package-frame.html | 20 - .../pneumatics/commands/package-summary.html | 142 - .../pneumatics/commands/package-tree.html | 143 - .../pneumatics/package-frame.html | 20 - .../pneumatics/package-summary.html | 142 - .../pneumatics/package-tree.html | 143 - docs/overview-frame.html | 70 - docs/overview-summary.html | 332 -- docs/overview-tree.html | 498 --- docs/package-list | 50 - docs/script.js | 30 - docs/stylesheet.css | 574 --- settings.gradle | 1 - .../org/usfirst/frc/team449/robot/Robot.java | 0 .../frc/team449/robot/RobotMap2017.java | 0 .../main/resources/ballbasaur_map.yml | 0 .../main/resources/calcifer_outreach_map.yml | 0 .../src => src}/main/resources/nate_map.yml | 0 .../src => src}/main/resources/naveen_map.yml | 0 templates/GenericCommand.java | 72 - templates/GenericRobotMap.java | 40 - templates/GenericSubsystemInterface.java | 11 - templates/GenericSubsytem.java | 30 - templates/Generic_.travis.yml | 11 - templates/Generic_build.gradle | 108 - templates/Generic_robot.java | 75 - templates/Generic_settings.gradle | 1 - templates/StateChangeCommand.java | 74 - templates/switchToFirstname.sh | 4 - 524 files changed, 110 insertions(+), 97588 deletions(-) delete mode 100644 Arduino/.gitignore delete mode 100644 Arduino/AnalogInOutSerial/AnalogInOutSerial.ino delete mode 100644 Arduino/AutoTeleop/AutoTeleop.ino delete mode 100644 Arduino/LICENSE delete mode 100644 Arduino/Lights_Final/Lights_Final.ino delete mode 100644 Arduino/WhiteLoopRainbow/WhiteLoopRainbow.ino delete mode 100644 Arduino/WhiteRainbow/WhiteRainbow.ino delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.cpp delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.h delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/COPYING delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/README.md delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/esp8266.c delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/examples/RGBWstrandtest/RGBWstrandtest.ino delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/examples/buttoncycler/buttoncycler.ino delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/examples/simple/simple.ino delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/examples/strandtest/strandtest.ino delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/keywords.txt delete mode 100644 Arduino/libraries/Adafruit_NeoPixel/library.properties delete mode 100644 Arduino/libraries/readme.txt delete mode 100644 Pathgen/build.gradle delete mode 100644 Pathgen/lib/Pathfinder-Java.jar delete mode 100644 Pathgen/src/main/java/org/usfirst/frc/team449/pathgen/Pathgen.java delete mode 100644 R scripts/drawMP.R delete mode 100644 R scripts/field.csv delete mode 100644 R scripts/findVelVsVoltage.R delete mode 100644 R scripts/poseEstimationChecker.R delete mode 100644 R scripts/robot.csv delete mode 100644 RoboRIO/.gitignore delete mode 100644 RoboRIO/build.gradle delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Boiler.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Center.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Feeder.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/CommandSequence.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/ParallelCommandGroup.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/RunRunnables.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/WaitForMillis.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/RunMotorWhileConditonMet.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommandShifting.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/JiggleRobot.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXDriveStraight.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngle.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngleRelative.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXDefaultDrive.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXShiftingDefaultDrive.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/FireShooter.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/LoadShooter.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/RackShooter.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/ResetShooter.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/AHRSRumbleComponent.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/AutoshiftComponent.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/ShiftComponent.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/ShiftWithSensorComponent.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/DriveSubsystem.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/commands/EnableMotors.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/commands/ResetPosition.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/DriveShiftable.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/commands/OverrideAutoShift.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/commands/ToggleOverrideAutoShift.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonCluster.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonClusterShiftable.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectional.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectionalSimple.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineNominalVoltage.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineVelVsVoltage.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveAtSpeed.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveStraight.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDBackAndForth.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDTest.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/SimpleUnidirectionalDrive.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/VoltageRamp.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/loggable/Loggable.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/Rumbleable.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/ShiftGears.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToGear.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToHighGear.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToLowGear.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/SimpleMotor.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/updatable/Updatable.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedAHRS.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedButton.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDigitalInput.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDoubleSolenoid.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedJoystick.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedRunnable.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedUsbCamera.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedVictor.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/PressureSensor.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/SimpleMotorCluster.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommand.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandGroupWrapper.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandWrapper.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlSubsystem.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/OI.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/CommandButton.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/SimpleButton.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/TriggerButton.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/dPadButton.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOriented.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOrientedPosCos.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/Throttle.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleBasic.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleDeadbanded.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleExponential.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottlePolynomial.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleSum.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/OIOutreach.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/OIUnidirectional.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcade.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeSimple.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeWithDPad.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITank.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITankSimple.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/BufferTimer.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Clock.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/LogEvent.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Logger.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/MotionProfileData.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Polynomial.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/UnidirectionalPoseEstimator.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Updater.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/climber/ClimberCurrentLimited.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/intake/IntakeFixedAndActuated.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/shooter/LoggingFlywheel.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/SubsystemAHRS.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/OverrideNavX.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/PIDAngleCommand.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/ToggleOverrideNavX.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/BinaryMotorSimple.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/SubsystemBinaryMotor.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/ToggleMotor.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOff.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOffWithRequires.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOn.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/SubsystemConditional.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/FlywheelSimple.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpFlywheel.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpThenShoot.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/ToggleShooting.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOff.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOffWithRequires.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOn.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/IntakeSimple.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/SetIntakeMode.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/ToggleIntaking.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/SubsystemMP.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/SubsystemMPTwoSides.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/LoadProfileTwoSides.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/RunProfileTwoSides.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/LoadProfile.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunLoadedProfile.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunProfile.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SolenoidSimple.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SubsystemSolenoid.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidForward.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidOff.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidReverse.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/ToggleSolenoid.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/CameraNetwork.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/ChangeCam.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/Pneumatics.java delete mode 100644 RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/StartCompressor.java delete mode 100644 RoboRIO/src/main/resources/calciferLeftBlueBackupProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftBlueBoilerToLoadingProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftBlueLeftProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftBlueLoadingToLoadingProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftBlueMidProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftBlueRightProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftBlueShootProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftRedBackupProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftRedBoilerToLoadingProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftRedLeftProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftRedLoadingToLoadingProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftRedMidProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftRedRightProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftRedShootProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferLeftforward100InProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightBlueBackupProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightBlueBoilerToLoadingProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightBlueLeftProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightBlueLoadingToLoadingProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightBlueMidProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightBlueRightProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightBlueShootProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightRedBackupProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightRedBoilerToLoadingProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightRedLeftProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightRedLoadingToLoadingProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightRedMidProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightRedRightProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightRedShootProfile.csv delete mode 100644 RoboRIO/src/main/resources/calciferRightforward100InProfile.csv delete mode 100644 RoboRIO/src/main/resources/forward100InProfile.csv delete mode 100644 docs/allclasses-frame.html delete mode 100644 docs/allclasses-noframe.html delete mode 100644 docs/constant-values.html delete mode 100644 docs/deprecated-list.html delete mode 100644 docs/help-doc.html delete mode 100644 docs/index-all.html delete mode 100644 docs/index.html delete mode 100644 docs/org/usfirst/frc/team449/robot/Robot.html delete mode 100644 docs/org/usfirst/frc/team449/robot/RobotMap2017.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Boiler.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Center.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Feeder.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/autonomous/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/autonomous/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/autonomous/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/general/CommandSequence.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/general/ParallelCommandGroup.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/general/RunRunnables.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/general/WaitForMillis.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/general/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/general/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/general/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/RunMotorWhileConditonMet.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommandShifting.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/JiggleRobot.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXDriveStraight.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngle.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngleRelative.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXDefaultDrive.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXShiftingDefaultDrive.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/FireShooter.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/LoadShooter.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/RackShooter.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/ResetShooter.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/components/AHRSRumbleComponent.html delete mode 100644 docs/org/usfirst/frc/team449/robot/components/AutoshiftComponent.html delete mode 100644 docs/org/usfirst/frc/team449/robot/components/ShiftComponent.html delete mode 100644 docs/org/usfirst/frc/team449/robot/components/ShiftWithSensorComponent.html delete mode 100644 docs/org/usfirst/frc/team449/robot/components/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/components/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/components/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/DriveSubsystem.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/commands/EnableMotors.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/commands/ResetPosition.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/DriveShiftable.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/commands/OverrideAutoShift.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/commands/ToggleOverrideAutoShift.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/shifting/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonCluster.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonClusterShiftable.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectional.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectionalSimple.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineNominalVoltage.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineVelVsVoltage.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveAtSpeed.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveStraight.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDBackAndForth.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDTest.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/SimpleUnidirectionalDrive.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/VoltageRamp.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/Loggable.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/Rumbleable.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.gear.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/ShiftGears.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToGear.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToHighGear.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToLowGear.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/SimpleMotor.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/Updatable.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.PerGearSettings.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.SlaveTalon.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedAHRS.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedButton.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDigitalInput.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDoubleSolenoid.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedJoystick.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedRunnable.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedUsbCamera.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedVictor.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/PressureSensor.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/SimpleMotorCluster.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommand.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandGroupWrapper.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandWrapper.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlSubsystem.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/OI.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/buttons/CommandButton.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/buttons/SimpleButton.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/buttons/TriggerButton.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/buttons/dPadButton.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/buttons/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/buttons/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/buttons/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOriented.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOrientedPosCos.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/Throttle.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleBasic.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleDeadbanded.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleExponential.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottlePolynomial.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleSum.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/throttles/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/OIOutreach.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/OIUnidirectional.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcade.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeSimple.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeWithDPad.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITank.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITankSimple.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/BufferTimer.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/Clock.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/LogEvent.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/Logger.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/MotionProfileData.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/Polynomial.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/UnidirectionalPoseEstimator.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/Updater.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/other/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/ClimberCurrentLimited.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/IntakeFixedAndActuated.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/LoggingFlywheel.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/SubsystemAHRS.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/OverrideNavX.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/PIDAngleCommand.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/ToggleOverrideNavX.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/BinaryMotorSimple.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/SubsystemBinaryMotor.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/ToggleMotor.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOff.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOffWithRequires.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOn.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/SubsystemConditional.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/FlywheelSimple.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.FlywheelState.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpFlywheel.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpThenShoot.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/ToggleShooting.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOff.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOffWithRequires.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOn.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/IntakeSimple.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.IntakeMode.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/SetIntakeMode.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/ToggleIntaking.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/SubsystemMP.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/SubsystemMPTwoSides.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/LoadProfileTwoSides.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/RunProfileTwoSides.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/LoadProfile.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunLoadedProfile.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunProfile.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SolenoidSimple.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SubsystemSolenoid.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidForward.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidOff.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidReverse.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/ToggleSolenoid.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/CameraNetwork.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/ChangeCam.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/Pneumatics.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/StartCompressor.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-tree.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-frame.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-summary.html delete mode 100644 docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-tree.html delete mode 100644 docs/overview-frame.html delete mode 100644 docs/overview-summary.html delete mode 100644 docs/overview-tree.html delete mode 100644 docs/package-list delete mode 100644 docs/script.js delete mode 100644 docs/stylesheet.css rename {RoboRIO/src => src}/main/java/org/usfirst/frc/team449/robot/Robot.java (100%) rename {RoboRIO/src => src}/main/java/org/usfirst/frc/team449/robot/RobotMap2017.java (100%) rename {RoboRIO/src => src}/main/resources/ballbasaur_map.yml (100%) rename {RoboRIO/src => src}/main/resources/calcifer_outreach_map.yml (100%) rename {RoboRIO/src => src}/main/resources/nate_map.yml (100%) rename {RoboRIO/src => src}/main/resources/naveen_map.yml (100%) delete mode 100644 templates/GenericCommand.java delete mode 100644 templates/GenericRobotMap.java delete mode 100644 templates/GenericSubsystemInterface.java delete mode 100644 templates/GenericSubsytem.java delete mode 100644 templates/Generic_.travis.yml delete mode 100644 templates/Generic_build.gradle delete mode 100644 templates/Generic_robot.java delete mode 100644 templates/Generic_settings.gradle delete mode 100644 templates/StateChangeCommand.java delete mode 100644 templates/switchToFirstname.sh diff --git a/.gitignore b/.gitignore index 265fca02..4b34bb04 100644 --- a/.gitignore +++ b/.gitignore @@ -44,4 +44,5 @@ logs/ *Log*.csv #Generated profiles in the base-level directory -*Profile.csv \ No newline at end of file +*Profile.csv +!src/main/resources/*Profile.csv \ No newline at end of file diff --git a/Arduino/.gitignore b/Arduino/.gitignore deleted file mode 100644 index 4581ef2e..00000000 --- a/Arduino/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -# Compiled Object files -*.slo -*.lo -*.o -*.obj - -# Precompiled Headers -*.gch -*.pch - -# Compiled Dynamic libraries -*.so -*.dylib -*.dll - -# Fortran module files -*.mod -*.smod - -# Compiled Static libraries -*.lai -*.la -*.a -*.lib - -# Executables -*.exe -*.out -*.app diff --git a/Arduino/AnalogInOutSerial/AnalogInOutSerial.ino b/Arduino/AnalogInOutSerial/AnalogInOutSerial.ino deleted file mode 100644 index 9dba71ea..00000000 --- a/Arduino/AnalogInOutSerial/AnalogInOutSerial.ino +++ /dev/null @@ -1,86 +0,0 @@ -#include -#ifdef __AVR__ - #include -#endif - -#define PIN 6 - -// Parameter 1 = number of pixels in strip -// Parameter 2 = Arduino pin number (most are valid) -// Parameter 3 = pixel type flags, add together as needed: -// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) -// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) -// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) -// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) -// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) -Adafruit_NeoPixel strip = Adafruit_NeoPixel(150, PIN, NEO_GRB + NEO_KHZ800); - -// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across -// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input -// and minimize distance between Arduino and first pixel. Avoid connecting -// on a live circuit...if you must, connect GND first./* - /* Analog input, analog output, serial output - - Reads an analog input pin, maps the result to a range from 0 to 255 - and uses the result to set the pulsewidth modulation (PWM) of an output pin. - Also prints the results to the serial monitor. - - The circuit: - * potentiometer connected to analog pin 0. - Center pin of the potentiometer goes to the analog pin. - side pins of the potentiometer go to +5V and ground - * LED connected from digital pin 9 to ground - - created 29 Dec. 2008 - modified 9 Apr 2012 - by Tom Igoe - - This example code is in the public domain. - - */ - -// These constants won't change. They're used to give names -// to the pins used: -const int analogInPin = A0; // Analog input pin that the potentiometer is attached to -const int analogOutPin = 9; // Analog output pin that the LED is attached to - -int sensorValue = 0; // value read from the pot -int outputValue = 0; // value output to the PWM (analog out) - -void setup() { - // initialize serial communications at 9600 bps: - strip.begin(); - Serial.begin(9600); -} - -void loop() { - // read the analog in value: - sensorValue = analogRead(analogInPin); - // map it to the range of the analog out: - outputValue = map(sensorValue, 0, 1023, 0, 255); - // change the analog out value: - analogWrite(analogOutPin, outputValue); - - // print the results to the serial monitor: - Serial.print("sensor = "); - Serial.print(sensorValue); - Serial.print("\t output = "); - Serial.println(outputValue); - - // wait 2 milliseconds before the next loop - // for the analog-to-digital converter to settle - // after the last reading: - uint16_t i; - setRed(10, outputValue); - strip.show(); - delay(2); -} - -void setRed(uint16_t wait, uint8_t color) { - uint16_t i; - for (i = 0; i < strip.numPixels(); i++) { - strip.setPixelColor(i, 0, color, color/2); - } - - delay(wait); -} diff --git a/Arduino/AutoTeleop/AutoTeleop.ino b/Arduino/AutoTeleop/AutoTeleop.ino deleted file mode 100644 index 9ce42b21..00000000 --- a/Arduino/AutoTeleop/AutoTeleop.ino +++ /dev/null @@ -1,172 +0,0 @@ -#include -#include - -#define PIN 6 -Adafruit_NeoPixel strip = Adafruit_NeoPixel(24, PIN, NEO_GRB + NEO_KHZ800); - -String state; - -uint32_t red = strip.Color(60,0,0); -uint32_t green = strip.Color(0,100,15); -uint32_t oyellow = strip.Color(140,40,0); -uint32_t blue = strip.Color(0,0,100); -uint32_t orange = strip.Color(140,10,0); -uint32_t yellow = strip.Color(90,20,0); -uint32_t purple = strip.Color(55,0,75); -uint32_t pink = strip.Color(80,0,65); -uint32_t lgreen = strip.Color(10,80,10); -uint32_t lblue = strip.Color(15,35,135); -uint32_t cyan = strip.Color(0,80,60); -uint32_t white = strip.Color(40,40,40); - -const int rgbChangeSpeed = 18; - -//highest value a color would reach. -const int colorMax = 108; -int rred = colorMax; -int rgreen = 0; -int rblue = 0; - -//information about the white pixel bit that flows around -int currentPos = 0; -const int whiteLength = 7; -const int whiteSpeed = 2; - -int tempIndex; - -//last position position that the white pixel bit was at. -int lastPos = strip.numPixels(); -//previous color that gets overwritten by the white pixel bit. -uint32_t lastColor; - -uint32_t ra1 = purple; -uint32_t ra2 = pink; -uint32_t ba1 = lgreen; -uint32_t ba2 = cyan; -uint32_t rt1 = red; -uint32_t rt2 = orange; -uint32_t bt1 = blue; -uint32_t bt2 = purple; - -int loopCounter; -boolean rippleInvert = false; -int ripplePos = 0; - -void setup() { - // put your setup code here, to run once: - Wire.begin(4); - Serial.begin(9600); - Wire.onReceive(receiveEventWire); - strip.begin(); - strip.show(); - state = "init"; -} - -void loop() { - if (loopCounter % 2 == 0) { - ripplePos++; - loopCounter = 1; - } else { - loopCounter++; - } - - if (ripplePos > strip.numPixels() / 2) { - ripplePos = ripplePos % (strip.numPixels()/2); - rippleInvert = !rippleInvert; - } - - if (state.equals("init")) { - //if you've completed a cycle (ie current position is now 0, last position is 150) - if (currentPos < lastPos || currentPos > 149) { - //store lastColor, then find your next incremented color - lastColor = strip.Color(rred,rgreen,rblue); - nextRGB(); - } - lastPos = currentPos; - tempIndex = currentPos; - //sets the little white pixel bit to white. - while (tempIndex != (currentPos + whiteLength) % 150) { - strip.setPixelColor(tempIndex,100,100,100); - tempIndex = (tempIndex + 1) % 150; - } - //if you're behind the white thing, get set to the new color - for (int i = 0; i < currentPos; i++) { - strip.setPixelColor(i,rred,rgreen,rblue); - } - //if you're beyond the white thing, get set to the old color. - for (int i = currentPos + whiteLength + 1; i < 150; i++) { - strip.setPixelColor(i,lastColor); - } - //update strip, move white pixel bit forward by speed defined above - strip.show(); - currentPos += whiteSpeed; - currentPos %= 150; - delay(17); - } else if (state.equals("red_auto")) { - for (int i = 0; i < strip.numPixels(); i++) { - setColor(i, ra1, ra2); - } - } else if (state.equals("blue_auto")) { - for (int i = 0; i < strip.numPixels(); i++) { - setColor(i, ba1, ba2); - } - } else if (state.equals("red_teleop")) { - for (int i = 0; i < strip.numPixels(); i++) { - setColor(i, rt1, rt2); - } - } else if (state.equals("blue_teleop")) { - for (int i = 0; i < strip.numPixels(); i++) { - setColor(i, bt1, bt2); - } - } - strip.show(); - delay(1); -} - -void receiveEventWire(int numBytes) { - //Serial.println("just entered event"); - String temp = ""; - while(Wire.available() > 0){ - char n = (char) Wire.read(); - temp+=n; - } - - state = temp; -} - -void setColor(int i, uint32_t c1, uint32_t c2) { - if (!rippleInvert) { - if (i < strip.numPixels()/2 - ripplePos || i > strip.numPixels()/2+ripplePos) { - strip.setPixelColor(i,c2); - } else if (i == strip.numPixels()/2 - ripplePos || i == strip.numPixels()/2+ripplePos){ - strip.setPixelColor(i,90,90,90); - } else { - strip.setPixelColor(i,c1); - } - } else { - if (i < strip.numPixels()/2 - ripplePos || i > strip.numPixels()/2+ripplePos) { - strip.setPixelColor(i,c1); - } else if (i == strip.numPixels()/2 - ripplePos || i == strip.numPixels()/2+ripplePos) { - strip.setPixelColor(i,90,90,90); - } - else { - strip.setPixelColor(i,c2); - } - } -} - -void nextRGB() { - if (rred == colorMax && rgreen < colorMax && rblue == 0) { - rgreen += rgbChangeSpeed; - } else if (rgreen == colorMax && rred > 0 && rblue == 0) { - rred -= rgbChangeSpeed * 1.5; - } else if (rgreen == colorMax && rblue < colorMax && rred == 0) { - rblue += rgbChangeSpeed; - } else if (rblue == colorMax && rgreen > 0 && rred == 0) { - rgreen -= rgbChangeSpeed; - } else if (rblue == colorMax && rred < colorMax && rgreen == 0) { - rred += rgbChangeSpeed; - } else if (rred == colorMax && rblue > 0 && rgreen == 0) { - rblue -= rgbChangeSpeed * .5; - } -} diff --git a/Arduino/LICENSE b/Arduino/LICENSE deleted file mode 100644 index 9cecc1d4..00000000 --- a/Arduino/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {one line to give the program's name and a brief idea of what it does.} - Copyright (C) {year} {name of author} - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - {project} Copyright (C) {year} {fullname} - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/Arduino/Lights_Final/Lights_Final.ino b/Arduino/Lights_Final/Lights_Final.ino deleted file mode 100644 index 7273dcbd..00000000 --- a/Arduino/Lights_Final/Lights_Final.ino +++ /dev/null @@ -1,219 +0,0 @@ -/* Team 449 2017 LED Strip Code - * Written by Rafi Pedersen - * - * Operates under a 4-State premise: - * State 1: Neither gear nor peg - * State 2: Gear only - * State 3: Peg Only (pretty much useless) - * State 4: Peg and Gear - * - * Each state has two colors, which alternately expand from - * the middle of the strip. - * - * Detects the peg using six analog IR sensors - * Detects the gear using two digital IR sensors, one for gear - * in and one for gear out. - * - * Uses a 150 pixel Adafruit Neopixel strip. - */ - -#include -#include - -#define PIN 6 -Adafruit_NeoPixel strip = Adafruit_NeoPixel(150, PIN, NEO_GRB + NEO_KHZ800); - -//define a bunch of colors -uint32_t red = strip.Color(60,0,0); -uint32_t green = strip.Color(0,100,15); -uint32_t oyellow = strip.Color(140,40,0); -uint32_t blue = strip.Color(0,0,100); -uint32_t orange = strip.Color(140,10,0); -uint32_t yellow = strip.Color(90,20,0); -uint32_t purple = strip.Color(55,0,75); -uint32_t pink = strip.Color(80,0,65); -uint32_t lgreen = strip.Color(10,80,10); -uint32_t lblue = strip.Color(15,35,135); -uint32_t cyan = strip.Color(0,80,60); -uint32_t white = strip.Color(40,40,40); - -//define 2 colors for each of the four states. -uint32_t neutral1 = red; -uint32_t neutral2 = orange; -uint32_t gear1 = yellow; -uint32_t gear2 = oyellow; -uint32_t peg1 = purple; -uint32_t peg2 = pink; -uint32_t gearPeg1 = blue; -uint32_t gearPeg2 = lblue; - - -int threshold = 320; //threshold for the analog peg-detecting sensors -int gearSensorBuffer = 15; //buffer for the gear sensors - //higher values make less flicker, more delay -int gearBufferState1 = 0; //initialize both sensors' buffers -int gearBufferState2 = 0; -//buffers for the gear sensors add or subtract based on their reading -//then state is determined by positive/negative of buffers - -//used to make transition animation between two colors -int barrier = 0; -int ripplePos = 0; -boolean rippleInvert = false; - -//set up analog sensors -const int sensorCount = 6; //number of sensors -const int analogInPins[] = {A0, A1, A2, A3, A4, A5}; -uint32_t sensorSums[sensorCount]; - -const int sensorReadingCount = 20; -uint32_t pegSensorReadings[sensorCount][sensorReadingCount]; -int sensorIndex = 0; - -boolean pegIn = false; -boolean gearIn = false; - -int loopCounter = 0; - -void setup() { - // put your setup code here, to run once: - Serial.begin(9600); - strip.begin(); - strip.show(); -} - -void loop() { - // put your main code here, to run repeatedly: - readSensors(); - - if (loopCounter % 2 == 0) { - ripplePos++; - loopCounter = 1; - } else { - loopCounter++; - } - - if (ripplePos > strip.numPixels() / 2) { - ripplePos = ripplePos % (strip.numPixels()/2); - rippleInvert = !rippleInvert; - } - - if (gearIn) { - if (pegIn) { - for (int i = 0; i <= strip.numPixels()/2; i++) { - setColor(strip.numPixels()/2+i, gearPeg1, gearPeg2); - setColor(strip.numPixels()/2 - i, gearPeg1, gearPeg2); - } - } else { - for (int i = 0; i <= strip.numPixels()/2; i++) { - setColor(strip.numPixels()/2+i, gear1, gear2); - setColor(strip.numPixels()/2 - i, gear1, gear2); - } - } - } else if (pegIn) { - for (int i = 0; i <= strip.numPixels()/2; i++) { - setColor(strip.numPixels()/2+i, peg1, peg2); - setColor(strip.numPixels()/2 - i, peg1, peg2); - } - } else { - for (int i = 0; i <= strip.numPixels()/2; i++) { - setColor(strip.numPixels()/2+i, neutral1, neutral2); - setColor(strip.numPixels()/2-i, neutral1, neutral2); - } - } - strip.show(); - delay(1); -} - -void setColor(int i, uint32_t c1, uint32_t c2) { - if (!rippleInvert) { - if (i < strip.numPixels()/2 - ripplePos || i > strip.numPixels()/2+ripplePos) { - strip.setPixelColor(i,c2); - } else if (i == strip.numPixels()/2 - ripplePos || i == strip.numPixels()/2+ripplePos){ - strip.setPixelColor(i,90,90,90); - } else { - strip.setPixelColor(i,c1); - } - } else { - if (i < strip.numPixels()/2 - ripplePos || i > strip.numPixels()/2+ripplePos) { - strip.setPixelColor(i,c1); - } else if (i == strip.numPixels()/2 - ripplePos || i == strip.numPixels()/2+ripplePos) { - strip.setPixelColor(i,90,90,90); - } - else { - strip.setPixelColor(i,c2); - } - } -} - -void readSensors() { - if (digitalRead(2) == 0) { - if (gearBufferState1 < gearSensorBuffer) { - gearBufferState1++; - } - } else { - if (gearBufferState1 > gearSensorBuffer * -1) { - gearBufferState1--; - } - } - if (digitalRead(3) == 0) { - if (gearBufferState2 < gearSensorBuffer) { - gearBufferState2++; - } - } else { - if (gearBufferState2 > gearSensorBuffer * -1) { - gearBufferState2--; - } - } - if (gearBufferState2 >= 0) { - gearIn = true; - } else if (gearBufferState1 < 0 && gearBufferState2 < 0) { - gearIn = false; - } - - for (int i = 0; i < sensorCount; i++) { - pegSensorReadings[i][sensorIndex] = analogRead(analogInPins[i]); - //Serial.print(pegSensorReadings[i][sensorIndex]); Serial.print('\t'); - sensorSums[i] = findAverage(pegSensorReadings[i]); - } - sensorIndex++; - if (sensorIndex == sensorReadingCount) { - sensorIndex = 0; - } - //sensorSums[1] *= 2.5; - for (int i = 0; i < sensorCount; i++) { - Serial.print(sensorSums[i]); Serial.print('\t'); - } - Serial.println(); - if (maxValue(sensorSums, sensorCount) > threshold) { - /*if(redColor < 100){ - redColor+=15; - } - if (blueColor > 0) { - blueColor -= 15; - }*/ - pegIn = true; - } else { - pegIn = false; - } -} - -uint32_t maxValue( uint32_t myArray[], int size) { - int i; uint32_t maxValue; - maxValue=myArray[0]; - - //find the largest no - for (i=0;i < size; i++) { - if (myArray[i]>maxValue) - maxValue=myArray[i]; - } - return maxValue; -} - -uint32_t findAverage(uint32_t input[]) { - uint32_t sum = 0; - for (int i = 0; i < sensorReadingCount; i++) { - sum += input[i]; - } - return (sum / sensorReadingCount); -} diff --git a/Arduino/WhiteLoopRainbow/WhiteLoopRainbow.ino b/Arduino/WhiteLoopRainbow/WhiteLoopRainbow.ino deleted file mode 100644 index 06bda004..00000000 --- a/Arduino/WhiteLoopRainbow/WhiteLoopRainbow.ino +++ /dev/null @@ -1,76 +0,0 @@ -#include -#define PIN 6 -Adafruit_NeoPixel strip = Adafruit_NeoPixel(150, PIN, NEO_GRB + NEO_KHZ800); - -//Amount of change for each of the colors at each step -const int rgbChangeSpeed = 5; - -//highest value a color would reach. -const int colorMax = 100; -int red = colorMax; -int green = 0; -int blue = 0; - -//information about the white pixel bit that flows around -int currentPos = 0; -const int whiteLength = 3; -const int whiteSpeed = 1; - -int tempIndex; - -//last position position that the white pixel bit was at. -int lastPos = 150; -//previous color that gets overwritten by the white pixel bit. -uint32_t lastColor; - -void setup() { - // put your setup code here, to run once: - strip.begin(); - strip.show(); -} - -void loop() { - //if you've completed a cycle (ie current position is now 0, last position is 150) - if (currentPos < lastPos) { - //store lastColor, then find your next incremented color - lastColor = strip.Color(red,green,blue); - nextRGB(); - } - lastPos = currentPos; - tempIndex = currentPos; - //sets the little white pixel bit to white. - while (tempIndex != (currentPos + whiteLength) % 150) { - strip.setPixelColor(tempIndex,100,100,100); - tempIndex = (tempIndex + 1) % 150; - } - //if you're behind the white thing, get set to the new color - for (int i = 0; i < currentPos; i++) { - strip.setPixelColor(i,red,green,blue); - } - //if you're beyond the white thing, get set to the old color. - for (int i = currentPos + whiteLength + 1; i < 150; i++) { - strip.setPixelColor(i,lastColor); - } - //update strip, move white pixel bit forward by speed defined above - strip.show(); - currentPos += whiteSpeed; - delay(10); -} - -//generates the next color based on the graph: https://academe.co.uk/wp-content/uploads/2012/04/451px-HSV-RGB-comparison.svg_.png -void nextRGB() { - if (red == colorMax && green < colorMax && blue == 0) { - green += rgbChangeSpeed; - } else if (green == colorMax && red > 0 && blue == 0) { - red -= rgbChangeSpeed; - } else if (green == colorMax && blue < colorMax && red == 0) { - blue += rgbChangeSpeed; - } else if (blue == colorMax && green > 0 && red == 0) { - green -= rgbChangeSpeed; - } else if (blue == colorMax && red < colorMax && green == 0) { - red += rgbChangeSpeed; - } else if (red == colorMax && blue > 0 && green == 0) { - blue -= rgbChangeSpeed; - } -} - diff --git a/Arduino/WhiteRainbow/WhiteRainbow.ino b/Arduino/WhiteRainbow/WhiteRainbow.ino deleted file mode 100644 index af38911e..00000000 --- a/Arduino/WhiteRainbow/WhiteRainbow.ino +++ /dev/null @@ -1,76 +0,0 @@ -#include -#define PIN 6 -Adafruit_NeoPixel strip = Adafruit_NeoPixel(150, PIN, NEO_GRB + NEO_KHZ800); - -//Amount of change for each of the colors at each step -const int rgbChangeSpeed = 18; - -//highest value a color would reach. -const int colorMax = 108; -int red = colorMax; -int green = 0; -int blue = 0; - -//information about the white pixel bit that flows around -int currentPos = 0; -const int whiteLength = 7; -const int whiteSpeed = 2; - -int tempIndex; - -//last position position that the white pixel bit was at. -int lastPos = 150; -//previous color that gets overwritten by the white pixel bit. -uint32_t lastColor; - -void setup() { - // put your setup code here, to run once: - strip.begin(); - strip.show(); -} - -void loop() { - //if you've completed a cycle (ie current position is now 0, last position is 150) - if (currentPos < lastPos || currentPos > 149) { - //store lastColor, then find your next incremented color - lastColor = strip.Color(red,green,blue); - nextRGB(); - } - lastPos = currentPos; - tempIndex = currentPos; - //sets the little white pixel bit to white. - while (tempIndex != (currentPos + whiteLength) % 150) { - strip.setPixelColor(tempIndex,100,100,100); - tempIndex = (tempIndex + 1) % 150; - } - //if you're behind the white thing, get set to the new color - for (int i = 0; i < currentPos; i++) { - strip.setPixelColor(i,red,green,blue); - } - //if you're beyond the white thing, get set to the old color. - for (int i = currentPos + whiteLength + 1; i < 150; i++) { - strip.setPixelColor(i,lastColor); - } - //update strip, move white pixel bit forward by speed defined above - strip.show(); - currentPos += whiteSpeed; - currentPos %= 150; - delay(18); -} - -//generates the next color based on the graph: https://academe.co.uk/wp-content/uploads/2012/04/451px-HSV-RGB-comparison.svg_.png -void nextRGB() { - if (red == colorMax && green < colorMax && blue == 0) { - green += rgbChangeSpeed; - } else if (green == colorMax && red > 0 && blue == 0) { - red -= rgbChangeSpeed * 1.5; - } else if (green == colorMax && blue < colorMax && red == 0) { - blue += rgbChangeSpeed; - } else if (blue == colorMax && green > 0 && red == 0) { - green -= rgbChangeSpeed; - } else if (blue == colorMax && red < colorMax && green == 0) { - red += rgbChangeSpeed; - } else if (red == colorMax && blue > 0 && green == 0) { - blue -= rgbChangeSpeed * .5; - } -} diff --git a/Arduino/libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.cpp b/Arduino/libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.cpp deleted file mode 100644 index 2dd5bba9..00000000 --- a/Arduino/libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.cpp +++ /dev/null @@ -1,1730 +0,0 @@ -/*------------------------------------------------------------------------- - Arduino library to control a wide variety of WS2811- and WS2812-based RGB - LED devices such as Adafruit FLORA RGB Smart Pixels and NeoPixel strips. - Currently handles 400 and 800 KHz bitstreams on 8, 12 and 16 MHz ATmega - MCUs, with LEDs wired for various color orders. Handles most output pins - (possible exception with upper PORT registers on the Arduino Mega). - - Written by Phil Burgess / Paint Your Dragon for Adafruit Industries, - contributions by PJRC, Michael Miller and other members of the open - source community. - - Adafruit invests time and resources providing this open source code, - please support Adafruit and open-source hardware by purchasing products - from Adafruit! - - ------------------------------------------------------------------------- - This file is part of the Adafruit NeoPixel library. - - NeoPixel is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of - the License, or (at your option) any later version. - - NeoPixel is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with NeoPixel. If not, see - . - -------------------------------------------------------------------------*/ - -#include "Adafruit_NeoPixel.h" - -// Constructor when length, pin and type are known at compile-time: -Adafruit_NeoPixel::Adafruit_NeoPixel(uint16_t n, uint8_t p, neoPixelType t) : - begun(false), brightness(0), pixels(NULL), endTime(0) -{ - updateType(t); - updateLength(n); - setPin(p); -} - -// via Michael Vogt/neophob: empty constructor is used when strand length -// isn't known at compile-time; situations where program config might be -// read from internal flash memory or an SD card, or arrive via serial -// command. If using this constructor, MUST follow up with updateType(), -// updateLength(), etc. to establish the strand type, length and pin number! -Adafruit_NeoPixel::Adafruit_NeoPixel() : -#ifdef NEO_KHZ400 - is800KHz(true), -#endif - begun(false), numLEDs(0), numBytes(0), pin(-1), brightness(0), pixels(NULL), - rOffset(1), gOffset(0), bOffset(2), wOffset(1), endTime(0) -{ -} - -Adafruit_NeoPixel::~Adafruit_NeoPixel() { - if(pixels) free(pixels); - if(pin >= 0) pinMode(pin, INPUT); -} - -void Adafruit_NeoPixel::begin(void) { - if(pin >= 0) { - pinMode(pin, OUTPUT); - digitalWrite(pin, LOW); - } - begun = true; -} - -void Adafruit_NeoPixel::updateLength(uint16_t n) { - if(pixels) free(pixels); // Free existing data (if any) - - // Allocate new data -- note: ALL PIXELS ARE CLEARED - numBytes = n * ((wOffset == rOffset) ? 3 : 4); - if((pixels = (uint8_t *)malloc(numBytes))) { - memset(pixels, 0, numBytes); - numLEDs = n; - } else { - numLEDs = numBytes = 0; - } -} - -void Adafruit_NeoPixel::updateType(neoPixelType t) { - boolean oldThreeBytesPerPixel = (wOffset == rOffset); // false if RGBW - - wOffset = (t >> 6) & 0b11; // See notes in header file - rOffset = (t >> 4) & 0b11; // regarding R/G/B/W offsets - gOffset = (t >> 2) & 0b11; - bOffset = t & 0b11; -#ifdef NEO_KHZ400 - is800KHz = (t < 256); // 400 KHz flag is 1<<8 -#endif - - // If bytes-per-pixel has changed (and pixel data was previously - // allocated), re-allocate to new size. Will clear any data. - if(pixels) { - boolean newThreeBytesPerPixel = (wOffset == rOffset); - if(newThreeBytesPerPixel != oldThreeBytesPerPixel) updateLength(numLEDs); - } -} - -#ifdef ESP8266 -// ESP8266 show() is external to enforce ICACHE_RAM_ATTR execution -extern "C" void ICACHE_RAM_ATTR espShow( - uint8_t pin, uint8_t *pixels, uint32_t numBytes, uint8_t type); -#endif // ESP8266 - -void Adafruit_NeoPixel::show(void) { - - if(!pixels) return; - - // Data latch = 50+ microsecond pause in the output stream. Rather than - // put a delay at the end of the function, the ending time is noted and - // the function will simply hold off (if needed) on issuing the - // subsequent round of data until the latch time has elapsed. This - // allows the mainline code to start generating the next frame of data - // rather than stalling for the latch. - while(!canShow()); - // endTime is a private member (rather than global var) so that mutliple - // instances on different pins can be quickly issued in succession (each - // instance doesn't delay the next). - - // In order to make this code runtime-configurable to work with any pin, - // SBI/CBI instructions are eschewed in favor of full PORT writes via the - // OUT or ST instructions. It relies on two facts: that peripheral - // functions (such as PWM) take precedence on output pins, so our PORT- - // wide writes won't interfere, and that interrupts are globally disabled - // while data is being issued to the LEDs, so no other code will be - // accessing the PORT. The code takes an initial 'snapshot' of the PORT - // state, computes 'pin high' and 'pin low' values, and writes these back - // to the PORT register as needed. - - noInterrupts(); // Need 100% focus on instruction timing - -#ifdef __AVR__ -// AVR MCUs -- ATmega & ATtiny (no XMEGA) --------------------------------- - - volatile uint16_t - i = numBytes; // Loop counter - volatile uint8_t - *ptr = pixels, // Pointer to next byte - b = *ptr++, // Current byte value - hi, // PORT w/output bit set high - lo; // PORT w/output bit set low - - // Hand-tuned assembly code issues data to the LED drivers at a specific - // rate. There's separate code for different CPU speeds (8, 12, 16 MHz) - // for both the WS2811 (400 KHz) and WS2812 (800 KHz) drivers. The - // datastream timing for the LED drivers allows a little wiggle room each - // way (listed in the datasheets), so the conditions for compiling each - // case are set up for a range of frequencies rather than just the exact - // 8, 12 or 16 MHz values, permitting use with some close-but-not-spot-on - // devices (e.g. 16.5 MHz DigiSpark). The ranges were arrived at based - // on the datasheet figures and have not been extensively tested outside - // the canonical 8/12/16 MHz speeds; there's no guarantee these will work - // close to the extremes (or possibly they could be pushed further). - // Keep in mind only one CPU speed case actually gets compiled; the - // resulting program isn't as massive as it might look from source here. - -// 8 MHz(ish) AVR --------------------------------------------------------- -#if (F_CPU >= 7400000UL) && (F_CPU <= 9500000UL) - -#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled - if(is800KHz) { -#endif - - volatile uint8_t n1, n2 = 0; // First, next bits out - - // Squeezing an 800 KHz stream out of an 8 MHz chip requires code - // specific to each PORT register. - - // 10 instruction clocks per bit: HHxxxxxLLL - // OUT instructions: ^ ^ ^ (T=0,2,7) - - // PORTD OUTPUT ---------------------------------------------------- - -#if defined(PORTD) - #if defined(PORTB) || defined(PORTC) || defined(PORTF) - if(port == &PORTD) { - #endif // defined(PORTB/C/F) - - hi = PORTD | pinMask; - lo = PORTD & ~pinMask; - n1 = lo; - if(b & 0x80) n1 = hi; - - // Dirty trick: RJMPs proceeding to the next instruction are used - // to delay two clock cycles in one instruction word (rather than - // using two NOPs). This was necessary in order to squeeze the - // loop down to exactly 64 words -- the maximum possible for a - // relative branch. - - asm volatile( - "headD:" "\n\t" // Clk Pseudocode - // Bit 7: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi - "mov %[n2] , %[lo]" "\n\t" // 1 n2 = lo - "out %[port] , %[n1]" "\n\t" // 1 PORT = n1 - "rjmp .+0" "\n\t" // 2 nop nop - "sbrc %[byte] , 6" "\n\t" // 1-2 if(b & 0x40) - "mov %[n2] , %[hi]" "\n\t" // 0-1 n2 = hi - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo - "rjmp .+0" "\n\t" // 2 nop nop - // Bit 6: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi - "mov %[n1] , %[lo]" "\n\t" // 1 n1 = lo - "out %[port] , %[n2]" "\n\t" // 1 PORT = n2 - "rjmp .+0" "\n\t" // 2 nop nop - "sbrc %[byte] , 5" "\n\t" // 1-2 if(b & 0x20) - "mov %[n1] , %[hi]" "\n\t" // 0-1 n1 = hi - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo - "rjmp .+0" "\n\t" // 2 nop nop - // Bit 5: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi - "mov %[n2] , %[lo]" "\n\t" // 1 n2 = lo - "out %[port] , %[n1]" "\n\t" // 1 PORT = n1 - "rjmp .+0" "\n\t" // 2 nop nop - "sbrc %[byte] , 4" "\n\t" // 1-2 if(b & 0x10) - "mov %[n2] , %[hi]" "\n\t" // 0-1 n2 = hi - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo - "rjmp .+0" "\n\t" // 2 nop nop - // Bit 4: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi - "mov %[n1] , %[lo]" "\n\t" // 1 n1 = lo - "out %[port] , %[n2]" "\n\t" // 1 PORT = n2 - "rjmp .+0" "\n\t" // 2 nop nop - "sbrc %[byte] , 3" "\n\t" // 1-2 if(b & 0x08) - "mov %[n1] , %[hi]" "\n\t" // 0-1 n1 = hi - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo - "rjmp .+0" "\n\t" // 2 nop nop - // Bit 3: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi - "mov %[n2] , %[lo]" "\n\t" // 1 n2 = lo - "out %[port] , %[n1]" "\n\t" // 1 PORT = n1 - "rjmp .+0" "\n\t" // 2 nop nop - "sbrc %[byte] , 2" "\n\t" // 1-2 if(b & 0x04) - "mov %[n2] , %[hi]" "\n\t" // 0-1 n2 = hi - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo - "rjmp .+0" "\n\t" // 2 nop nop - // Bit 2: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi - "mov %[n1] , %[lo]" "\n\t" // 1 n1 = lo - "out %[port] , %[n2]" "\n\t" // 1 PORT = n2 - "rjmp .+0" "\n\t" // 2 nop nop - "sbrc %[byte] , 1" "\n\t" // 1-2 if(b & 0x02) - "mov %[n1] , %[hi]" "\n\t" // 0-1 n1 = hi - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo - "rjmp .+0" "\n\t" // 2 nop nop - // Bit 1: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi - "mov %[n2] , %[lo]" "\n\t" // 1 n2 = lo - "out %[port] , %[n1]" "\n\t" // 1 PORT = n1 - "rjmp .+0" "\n\t" // 2 nop nop - "sbrc %[byte] , 0" "\n\t" // 1-2 if(b & 0x01) - "mov %[n2] , %[hi]" "\n\t" // 0-1 n2 = hi - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo - "sbiw %[count], 1" "\n\t" // 2 i-- (don't act on Z flag yet) - // Bit 0: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi - "mov %[n1] , %[lo]" "\n\t" // 1 n1 = lo - "out %[port] , %[n2]" "\n\t" // 1 PORT = n2 - "ld %[byte] , %a[ptr]+" "\n\t" // 2 b = *ptr++ - "sbrc %[byte] , 7" "\n\t" // 1-2 if(b & 0x80) - "mov %[n1] , %[hi]" "\n\t" // 0-1 n1 = hi - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo - "brne headD" "\n" // 2 while(i) (Z flag set above) - : [byte] "+r" (b), - [n1] "+r" (n1), - [n2] "+r" (n2), - [count] "+w" (i) - : [port] "I" (_SFR_IO_ADDR(PORTD)), - [ptr] "e" (ptr), - [hi] "r" (hi), - [lo] "r" (lo)); - - #if defined(PORTB) || defined(PORTC) || defined(PORTF) - } else // other PORT(s) - #endif // defined(PORTB/C/F) -#endif // defined(PORTD) - - // PORTB OUTPUT ---------------------------------------------------- - -#if defined(PORTB) - #if defined(PORTD) || defined(PORTC) || defined(PORTF) - if(port == &PORTB) { - #endif // defined(PORTD/C/F) - - // Same as above, just switched to PORTB and stripped of comments. - hi = PORTB | pinMask; - lo = PORTB & ~pinMask; - n1 = lo; - if(b & 0x80) n1 = hi; - - asm volatile( - "headB:" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 6" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 5" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 4" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 3" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 2" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 1" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 0" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "sbiw %[count], 1" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "ld %[byte] , %a[ptr]+" "\n\t" - "sbrc %[byte] , 7" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "brne headB" "\n" - : [byte] "+r" (b), [n1] "+r" (n1), [n2] "+r" (n2), [count] "+w" (i) - : [port] "I" (_SFR_IO_ADDR(PORTB)), [ptr] "e" (ptr), [hi] "r" (hi), - [lo] "r" (lo)); - - #if defined(PORTD) || defined(PORTC) || defined(PORTF) - } - #endif - #if defined(PORTC) || defined(PORTF) - else - #endif // defined(PORTC/F) -#endif // defined(PORTB) - - // PORTC OUTPUT ---------------------------------------------------- - -#if defined(PORTC) - #if defined(PORTD) || defined(PORTB) || defined(PORTF) - if(port == &PORTC) { - #endif // defined(PORTD/B/F) - - // Same as above, just switched to PORTC and stripped of comments. - hi = PORTC | pinMask; - lo = PORTC & ~pinMask; - n1 = lo; - if(b & 0x80) n1 = hi; - - asm volatile( - "headC:" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 6" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 5" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 4" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 3" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 2" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 1" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 0" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "sbiw %[count], 1" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "ld %[byte] , %a[ptr]+" "\n\t" - "sbrc %[byte] , 7" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "brne headC" "\n" - : [byte] "+r" (b), [n1] "+r" (n1), [n2] "+r" (n2), [count] "+w" (i) - : [port] "I" (_SFR_IO_ADDR(PORTC)), [ptr] "e" (ptr), [hi] "r" (hi), - [lo] "r" (lo)); - - #if defined(PORTD) || defined(PORTB) || defined(PORTF) - } - #endif // defined(PORTD/B/F) - #if defined(PORTF) - else - #endif -#endif // defined(PORTC) - - // PORTF OUTPUT ---------------------------------------------------- - -#if defined(PORTF) - #if defined(PORTD) || defined(PORTB) || defined(PORTC) - if(port == &PORTF) { - #endif // defined(PORTD/B/C) - - hi = PORTF | pinMask; - lo = PORTF & ~pinMask; - n1 = lo; - if(b & 0x80) n1 = hi; - - asm volatile( - "headF:" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 6" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 5" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 4" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 3" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 2" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 1" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "rjmp .+0" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n2] , %[lo]" "\n\t" - "out %[port] , %[n1]" "\n\t" - "rjmp .+0" "\n\t" - "sbrc %[byte] , 0" "\n\t" - "mov %[n2] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "sbiw %[count], 1" "\n\t" - "out %[port] , %[hi]" "\n\t" - "mov %[n1] , %[lo]" "\n\t" - "out %[port] , %[n2]" "\n\t" - "ld %[byte] , %a[ptr]+" "\n\t" - "sbrc %[byte] , 7" "\n\t" - "mov %[n1] , %[hi]" "\n\t" - "out %[port] , %[lo]" "\n\t" - "brne headF" "\n" - : [byte] "+r" (b), [n1] "+r" (n1), [n2] "+r" (n2), [count] "+w" (i) - : [port] "I" (_SFR_IO_ADDR(PORTF)), [ptr] "e" (ptr), [hi] "r" (hi), - [lo] "r" (lo)); - - #if defined(PORTD) || defined(PORTB) || defined(PORTC) - } - #endif // defined(PORTD/B/C) -#endif // defined(PORTF) - -#ifdef NEO_KHZ400 - } else { // end 800 KHz, do 400 KHz - - // Timing is more relaxed; unrolling the inner loop for each bit is - // not necessary. Still using the peculiar RJMPs as 2X NOPs, not out - // of need but just to trim the code size down a little. - // This 400-KHz-datastream-on-8-MHz-CPU code is not quite identical - // to the 800-on-16 code later -- the hi/lo timing between WS2811 and - // WS2812 is not simply a 2:1 scale! - - // 20 inst. clocks per bit: HHHHxxxxxxLLLLLLLLLL - // ST instructions: ^ ^ ^ (T=0,4,10) - - volatile uint8_t next, bit; - - hi = *port | pinMask; - lo = *port & ~pinMask; - next = lo; - bit = 8; - - asm volatile( - "head20:" "\n\t" // Clk Pseudocode (T = 0) - "st %a[port], %[hi]" "\n\t" // 2 PORT = hi (T = 2) - "sbrc %[byte] , 7" "\n\t" // 1-2 if(b & 128) - "mov %[next], %[hi]" "\n\t" // 0-1 next = hi (T = 4) - "st %a[port], %[next]" "\n\t" // 2 PORT = next (T = 6) - "mov %[next] , %[lo]" "\n\t" // 1 next = lo (T = 7) - "dec %[bit]" "\n\t" // 1 bit-- (T = 8) - "breq nextbyte20" "\n\t" // 1-2 if(bit == 0) - "rol %[byte]" "\n\t" // 1 b <<= 1 (T = 10) - "st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 12) - "rjmp .+0" "\n\t" // 2 nop nop (T = 14) - "rjmp .+0" "\n\t" // 2 nop nop (T = 16) - "rjmp .+0" "\n\t" // 2 nop nop (T = 18) - "rjmp head20" "\n\t" // 2 -> head20 (next bit out) - "nextbyte20:" "\n\t" // (T = 10) - "st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 12) - "nop" "\n\t" // 1 nop (T = 13) - "ldi %[bit] , 8" "\n\t" // 1 bit = 8 (T = 14) - "ld %[byte] , %a[ptr]+" "\n\t" // 2 b = *ptr++ (T = 16) - "sbiw %[count], 1" "\n\t" // 2 i-- (T = 18) - "brne head20" "\n" // 2 if(i != 0) -> (next byte) - : [port] "+e" (port), - [byte] "+r" (b), - [bit] "+r" (bit), - [next] "+r" (next), - [count] "+w" (i) - : [hi] "r" (hi), - [lo] "r" (lo), - [ptr] "e" (ptr)); - } -#endif // NEO_KHZ400 - -// 12 MHz(ish) AVR -------------------------------------------------------- -#elif (F_CPU >= 11100000UL) && (F_CPU <= 14300000UL) - -#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled - if(is800KHz) { -#endif - - // In the 12 MHz case, an optimized 800 KHz datastream (no dead time - // between bytes) requires a PORT-specific loop similar to the 8 MHz - // code (but a little more relaxed in this case). - - // 15 instruction clocks per bit: HHHHxxxxxxLLLLL - // OUT instructions: ^ ^ ^ (T=0,4,10) - - volatile uint8_t next; - - // PORTD OUTPUT ---------------------------------------------------- - -#if defined(PORTD) - #if defined(PORTB) || defined(PORTC) || defined(PORTF) - if(port == &PORTD) { - #endif // defined(PORTB/C/F) - - hi = PORTD | pinMask; - lo = PORTD & ~pinMask; - next = lo; - if(b & 0x80) next = hi; - - // Don't "optimize" the OUT calls into the bitTime subroutine; - // we're exploiting the RCALL and RET as 3- and 4-cycle NOPs! - asm volatile( - "headD:" "\n\t" // (T = 0) - "out %[port], %[hi]" "\n\t" // (T = 1) - "rcall bitTimeD" "\n\t" // Bit 7 (T = 15) - "out %[port], %[hi]" "\n\t" - "rcall bitTimeD" "\n\t" // Bit 6 - "out %[port], %[hi]" "\n\t" - "rcall bitTimeD" "\n\t" // Bit 5 - "out %[port], %[hi]" "\n\t" - "rcall bitTimeD" "\n\t" // Bit 4 - "out %[port], %[hi]" "\n\t" - "rcall bitTimeD" "\n\t" // Bit 3 - "out %[port], %[hi]" "\n\t" - "rcall bitTimeD" "\n\t" // Bit 2 - "out %[port], %[hi]" "\n\t" - "rcall bitTimeD" "\n\t" // Bit 1 - // Bit 0: - "out %[port] , %[hi]" "\n\t" // 1 PORT = hi (T = 1) - "rjmp .+0" "\n\t" // 2 nop nop (T = 3) - "ld %[byte] , %a[ptr]+" "\n\t" // 2 b = *ptr++ (T = 5) - "out %[port] , %[next]" "\n\t" // 1 PORT = next (T = 6) - "mov %[next] , %[lo]" "\n\t" // 1 next = lo (T = 7) - "sbrc %[byte] , 7" "\n\t" // 1-2 if(b & 0x80) (T = 8) - "mov %[next] , %[hi]" "\n\t" // 0-1 next = hi (T = 9) - "nop" "\n\t" // 1 (T = 10) - "out %[port] , %[lo]" "\n\t" // 1 PORT = lo (T = 11) - "sbiw %[count], 1" "\n\t" // 2 i-- (T = 13) - "brne headD" "\n\t" // 2 if(i != 0) -> (next byte) - "rjmp doneD" "\n\t" - "bitTimeD:" "\n\t" // nop nop nop (T = 4) - "out %[port], %[next]" "\n\t" // 1 PORT = next (T = 5) - "mov %[next], %[lo]" "\n\t" // 1 next = lo (T = 6) - "rol %[byte]" "\n\t" // 1 b <<= 1 (T = 7) - "sbrc %[byte], 7" "\n\t" // 1-2 if(b & 0x80) (T = 8) - "mov %[next], %[hi]" "\n\t" // 0-1 next = hi (T = 9) - "nop" "\n\t" // 1 (T = 10) - "out %[port], %[lo]" "\n\t" // 1 PORT = lo (T = 11) - "ret" "\n\t" // 4 nop nop nop nop (T = 15) - "doneD:" "\n" - : [byte] "+r" (b), - [next] "+r" (next), - [count] "+w" (i) - : [port] "I" (_SFR_IO_ADDR(PORTD)), - [ptr] "e" (ptr), - [hi] "r" (hi), - [lo] "r" (lo)); - - #if defined(PORTB) || defined(PORTC) || defined(PORTF) - } else // other PORT(s) - #endif // defined(PORTB/C/F) -#endif // defined(PORTD) - - // PORTB OUTPUT ---------------------------------------------------- - -#if defined(PORTB) - #if defined(PORTD) || defined(PORTC) || defined(PORTF) - if(port == &PORTB) { - #endif // defined(PORTD/C/F) - - hi = PORTB | pinMask; - lo = PORTB & ~pinMask; - next = lo; - if(b & 0x80) next = hi; - - // Same as above, just set for PORTB & stripped of comments - asm volatile( - "headB:" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeB" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeB" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeB" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeB" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeB" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeB" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeB" "\n\t" - "out %[port] , %[hi]" "\n\t" - "rjmp .+0" "\n\t" - "ld %[byte] , %a[ptr]+" "\n\t" - "out %[port] , %[next]" "\n\t" - "mov %[next] , %[lo]" "\n\t" - "sbrc %[byte] , 7" "\n\t" - "mov %[next] , %[hi]" "\n\t" - "nop" "\n\t" - "out %[port] , %[lo]" "\n\t" - "sbiw %[count], 1" "\n\t" - "brne headB" "\n\t" - "rjmp doneB" "\n\t" - "bitTimeB:" "\n\t" - "out %[port], %[next]" "\n\t" - "mov %[next], %[lo]" "\n\t" - "rol %[byte]" "\n\t" - "sbrc %[byte], 7" "\n\t" - "mov %[next], %[hi]" "\n\t" - "nop" "\n\t" - "out %[port], %[lo]" "\n\t" - "ret" "\n\t" - "doneB:" "\n" - : [byte] "+r" (b), [next] "+r" (next), [count] "+w" (i) - : [port] "I" (_SFR_IO_ADDR(PORTB)), [ptr] "e" (ptr), [hi] "r" (hi), - [lo] "r" (lo)); - - #if defined(PORTD) || defined(PORTC) || defined(PORTF) - } - #endif - #if defined(PORTC) || defined(PORTF) - else - #endif // defined(PORTC/F) -#endif // defined(PORTB) - - // PORTC OUTPUT ---------------------------------------------------- - -#if defined(PORTC) - #if defined(PORTD) || defined(PORTB) || defined(PORTF) - if(port == &PORTC) { - #endif // defined(PORTD/B/F) - - hi = PORTC | pinMask; - lo = PORTC & ~pinMask; - next = lo; - if(b & 0x80) next = hi; - - // Same as above, just set for PORTC & stripped of comments - asm volatile( - "headC:" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port] , %[hi]" "\n\t" - "rjmp .+0" "\n\t" - "ld %[byte] , %a[ptr]+" "\n\t" - "out %[port] , %[next]" "\n\t" - "mov %[next] , %[lo]" "\n\t" - "sbrc %[byte] , 7" "\n\t" - "mov %[next] , %[hi]" "\n\t" - "nop" "\n\t" - "out %[port] , %[lo]" "\n\t" - "sbiw %[count], 1" "\n\t" - "brne headC" "\n\t" - "rjmp doneC" "\n\t" - "bitTimeC:" "\n\t" - "out %[port], %[next]" "\n\t" - "mov %[next], %[lo]" "\n\t" - "rol %[byte]" "\n\t" - "sbrc %[byte], 7" "\n\t" - "mov %[next], %[hi]" "\n\t" - "nop" "\n\t" - "out %[port], %[lo]" "\n\t" - "ret" "\n\t" - "doneC:" "\n" - : [byte] "+r" (b), [next] "+r" (next), [count] "+w" (i) - : [port] "I" (_SFR_IO_ADDR(PORTC)), [ptr] "e" (ptr), [hi] "r" (hi), - [lo] "r" (lo)); - - #if defined(PORTD) || defined(PORTB) || defined(PORTF) - } - #endif // defined(PORTD/B/F) - #if defined(PORTF) - else - #endif -#endif // defined(PORTC) - - // PORTF OUTPUT ---------------------------------------------------- - -#if defined(PORTF) - #if defined(PORTD) || defined(PORTB) || defined(PORTC) - if(port == &PORTF) { - #endif // defined(PORTD/B/C) - - hi = PORTF | pinMask; - lo = PORTF & ~pinMask; - next = lo; - if(b & 0x80) next = hi; - - // Same as above, just set for PORTF & stripped of comments - asm volatile( - "headF:" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port], %[hi]" "\n\t" - "rcall bitTimeC" "\n\t" - "out %[port] , %[hi]" "\n\t" - "rjmp .+0" "\n\t" - "ld %[byte] , %a[ptr]+" "\n\t" - "out %[port] , %[next]" "\n\t" - "mov %[next] , %[lo]" "\n\t" - "sbrc %[byte] , 7" "\n\t" - "mov %[next] , %[hi]" "\n\t" - "nop" "\n\t" - "out %[port] , %[lo]" "\n\t" - "sbiw %[count], 1" "\n\t" - "brne headF" "\n\t" - "rjmp doneC" "\n\t" - "bitTimeC:" "\n\t" - "out %[port], %[next]" "\n\t" - "mov %[next], %[lo]" "\n\t" - "rol %[byte]" "\n\t" - "sbrc %[byte], 7" "\n\t" - "mov %[next], %[hi]" "\n\t" - "nop" "\n\t" - "out %[port], %[lo]" "\n\t" - "ret" "\n\t" - "doneC:" "\n" - : [byte] "+r" (b), [next] "+r" (next), [count] "+w" (i) - : [port] "I" (_SFR_IO_ADDR(PORTF)), [ptr] "e" (ptr), [hi] "r" (hi), - [lo] "r" (lo)); - - #if defined(PORTD) || defined(PORTB) || defined(PORTC) - } - #endif // defined(PORTD/B/C) -#endif // defined(PORTF) - -#ifdef NEO_KHZ400 - } else { // 400 KHz - - // 30 instruction clocks per bit: HHHHHHxxxxxxxxxLLLLLLLLLLLLLLL - // ST instructions: ^ ^ ^ (T=0,6,15) - - volatile uint8_t next, bit; - - hi = *port | pinMask; - lo = *port & ~pinMask; - next = lo; - bit = 8; - - asm volatile( - "head30:" "\n\t" // Clk Pseudocode (T = 0) - "st %a[port], %[hi]" "\n\t" // 2 PORT = hi (T = 2) - "sbrc %[byte] , 7" "\n\t" // 1-2 if(b & 128) - "mov %[next], %[hi]" "\n\t" // 0-1 next = hi (T = 4) - "rjmp .+0" "\n\t" // 2 nop nop (T = 6) - "st %a[port], %[next]" "\n\t" // 2 PORT = next (T = 8) - "rjmp .+0" "\n\t" // 2 nop nop (T = 10) - "rjmp .+0" "\n\t" // 2 nop nop (T = 12) - "rjmp .+0" "\n\t" // 2 nop nop (T = 14) - "nop" "\n\t" // 1 nop (T = 15) - "st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 17) - "rjmp .+0" "\n\t" // 2 nop nop (T = 19) - "dec %[bit]" "\n\t" // 1 bit-- (T = 20) - "breq nextbyte30" "\n\t" // 1-2 if(bit == 0) - "rol %[byte]" "\n\t" // 1 b <<= 1 (T = 22) - "rjmp .+0" "\n\t" // 2 nop nop (T = 24) - "rjmp .+0" "\n\t" // 2 nop nop (T = 26) - "rjmp .+0" "\n\t" // 2 nop nop (T = 28) - "rjmp head30" "\n\t" // 2 -> head30 (next bit out) - "nextbyte30:" "\n\t" // (T = 22) - "nop" "\n\t" // 1 nop (T = 23) - "ldi %[bit] , 8" "\n\t" // 1 bit = 8 (T = 24) - "ld %[byte] , %a[ptr]+" "\n\t" // 2 b = *ptr++ (T = 26) - "sbiw %[count], 1" "\n\t" // 2 i-- (T = 28) - "brne head30" "\n" // 1-2 if(i != 0) -> (next byte) - : [port] "+e" (port), - [byte] "+r" (b), - [bit] "+r" (bit), - [next] "+r" (next), - [count] "+w" (i) - : [hi] "r" (hi), - [lo] "r" (lo), - [ptr] "e" (ptr)); - } -#endif // NEO_KHZ400 - -// 16 MHz(ish) AVR -------------------------------------------------------- -#elif (F_CPU >= 15400000UL) && (F_CPU <= 19000000L) - -#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled - if(is800KHz) { -#endif - - // WS2811 and WS2812 have different hi/lo duty cycles; this is - // similar but NOT an exact copy of the prior 400-on-8 code. - - // 20 inst. clocks per bit: HHHHHxxxxxxxxLLLLLLL - // ST instructions: ^ ^ ^ (T=0,5,13) - - volatile uint8_t next, bit; - - hi = *port | pinMask; - lo = *port & ~pinMask; - next = lo; - bit = 8; - - asm volatile( - "head20:" "\n\t" // Clk Pseudocode (T = 0) - "st %a[port], %[hi]" "\n\t" // 2 PORT = hi (T = 2) - "sbrc %[byte], 7" "\n\t" // 1-2 if(b & 128) - "mov %[next], %[hi]" "\n\t" // 0-1 next = hi (T = 4) - "dec %[bit]" "\n\t" // 1 bit-- (T = 5) - "st %a[port], %[next]" "\n\t" // 2 PORT = next (T = 7) - "mov %[next] , %[lo]" "\n\t" // 1 next = lo (T = 8) - "breq nextbyte20" "\n\t" // 1-2 if(bit == 0) (from dec above) - "rol %[byte]" "\n\t" // 1 b <<= 1 (T = 10) - "rjmp .+0" "\n\t" // 2 nop nop (T = 12) - "nop" "\n\t" // 1 nop (T = 13) - "st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 15) - "nop" "\n\t" // 1 nop (T = 16) - "rjmp .+0" "\n\t" // 2 nop nop (T = 18) - "rjmp head20" "\n\t" // 2 -> head20 (next bit out) - "nextbyte20:" "\n\t" // (T = 10) - "ldi %[bit] , 8" "\n\t" // 1 bit = 8 (T = 11) - "ld %[byte] , %a[ptr]+" "\n\t" // 2 b = *ptr++ (T = 13) - "st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 15) - "nop" "\n\t" // 1 nop (T = 16) - "sbiw %[count], 1" "\n\t" // 2 i-- (T = 18) - "brne head20" "\n" // 2 if(i != 0) -> (next byte) - : [port] "+e" (port), - [byte] "+r" (b), - [bit] "+r" (bit), - [next] "+r" (next), - [count] "+w" (i) - : [ptr] "e" (ptr), - [hi] "r" (hi), - [lo] "r" (lo)); - -#ifdef NEO_KHZ400 - } else { // 400 KHz - - // The 400 KHz clock on 16 MHz MCU is the most 'relaxed' version. - - // 40 inst. clocks per bit: HHHHHHHHxxxxxxxxxxxxLLLLLLLLLLLLLLLLLLLL - // ST instructions: ^ ^ ^ (T=0,8,20) - - volatile uint8_t next, bit; - - hi = *port | pinMask; - lo = *port & ~pinMask; - next = lo; - bit = 8; - - asm volatile( - "head40:" "\n\t" // Clk Pseudocode (T = 0) - "st %a[port], %[hi]" "\n\t" // 2 PORT = hi (T = 2) - "sbrc %[byte] , 7" "\n\t" // 1-2 if(b & 128) - "mov %[next] , %[hi]" "\n\t" // 0-1 next = hi (T = 4) - "rjmp .+0" "\n\t" // 2 nop nop (T = 6) - "rjmp .+0" "\n\t" // 2 nop nop (T = 8) - "st %a[port], %[next]" "\n\t" // 2 PORT = next (T = 10) - "rjmp .+0" "\n\t" // 2 nop nop (T = 12) - "rjmp .+0" "\n\t" // 2 nop nop (T = 14) - "rjmp .+0" "\n\t" // 2 nop nop (T = 16) - "rjmp .+0" "\n\t" // 2 nop nop (T = 18) - "rjmp .+0" "\n\t" // 2 nop nop (T = 20) - "st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 22) - "nop" "\n\t" // 1 nop (T = 23) - "mov %[next] , %[lo]" "\n\t" // 1 next = lo (T = 24) - "dec %[bit]" "\n\t" // 1 bit-- (T = 25) - "breq nextbyte40" "\n\t" // 1-2 if(bit == 0) - "rol %[byte]" "\n\t" // 1 b <<= 1 (T = 27) - "nop" "\n\t" // 1 nop (T = 28) - "rjmp .+0" "\n\t" // 2 nop nop (T = 30) - "rjmp .+0" "\n\t" // 2 nop nop (T = 32) - "rjmp .+0" "\n\t" // 2 nop nop (T = 34) - "rjmp .+0" "\n\t" // 2 nop nop (T = 36) - "rjmp .+0" "\n\t" // 2 nop nop (T = 38) - "rjmp head40" "\n\t" // 2 -> head40 (next bit out) - "nextbyte40:" "\n\t" // (T = 27) - "ldi %[bit] , 8" "\n\t" // 1 bit = 8 (T = 28) - "ld %[byte] , %a[ptr]+" "\n\t" // 2 b = *ptr++ (T = 30) - "rjmp .+0" "\n\t" // 2 nop nop (T = 32) - "st %a[port], %[lo]" "\n\t" // 2 PORT = lo (T = 34) - "rjmp .+0" "\n\t" // 2 nop nop (T = 36) - "sbiw %[count], 1" "\n\t" // 2 i-- (T = 38) - "brne head40" "\n" // 1-2 if(i != 0) -> (next byte) - : [port] "+e" (port), - [byte] "+r" (b), - [bit] "+r" (bit), - [next] "+r" (next), - [count] "+w" (i) - : [ptr] "e" (ptr), - [hi] "r" (hi), - [lo] "r" (lo)); - } -#endif // NEO_KHZ400 - -#else - #error "CPU SPEED NOT SUPPORTED" -#endif // end F_CPU ifdefs on __AVR__ - -// END AVR ---------------------------------------------------------------- - - -#elif defined(__arm__) - -// ARM MCUs -- Teensy 3.0, 3.1, LC, Arduino Due --------------------------- - -#if defined(__MK20DX128__) || defined(__MK20DX256__) // Teensy 3.0 & 3.1 -#define CYCLES_800_T0H (F_CPU / 4000000) -#define CYCLES_800_T1H (F_CPU / 1250000) -#define CYCLES_800 (F_CPU / 800000) -#define CYCLES_400_T0H (F_CPU / 2000000) -#define CYCLES_400_T1H (F_CPU / 833333) -#define CYCLES_400 (F_CPU / 400000) - - uint8_t *p = pixels, - *end = p + numBytes, pix, mask; - volatile uint8_t *set = portSetRegister(pin), - *clr = portClearRegister(pin); - uint32_t cyc; - - ARM_DEMCR |= ARM_DEMCR_TRCENA; - ARM_DWT_CTRL |= ARM_DWT_CTRL_CYCCNTENA; - -#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled - if(is800KHz) { -#endif - cyc = ARM_DWT_CYCCNT + CYCLES_800; - while(p < end) { - pix = *p++; - for(mask = 0x80; mask; mask >>= 1) { - while(ARM_DWT_CYCCNT - cyc < CYCLES_800); - cyc = ARM_DWT_CYCCNT; - *set = 1; - if(pix & mask) { - while(ARM_DWT_CYCCNT - cyc < CYCLES_800_T1H); - } else { - while(ARM_DWT_CYCCNT - cyc < CYCLES_800_T0H); - } - *clr = 1; - } - } - while(ARM_DWT_CYCCNT - cyc < CYCLES_800); -#ifdef NEO_KHZ400 - } else { // 400 kHz bitstream - cyc = ARM_DWT_CYCCNT + CYCLES_400; - while(p < end) { - pix = *p++; - for(mask = 0x80; mask; mask >>= 1) { - while(ARM_DWT_CYCCNT - cyc < CYCLES_400); - cyc = ARM_DWT_CYCCNT; - *set = 1; - if(pix & mask) { - while(ARM_DWT_CYCCNT - cyc < CYCLES_400_T1H); - } else { - while(ARM_DWT_CYCCNT - cyc < CYCLES_400_T0H); - } - *clr = 1; - } - } - while(ARM_DWT_CYCCNT - cyc < CYCLES_400); - } -#endif // NEO_KHZ400 - -#elif defined(__MKL26Z64__) // Teensy-LC - -#if F_CPU == 48000000 - uint8_t *p = pixels, - pix, count, dly, - bitmask = digitalPinToBitMask(pin); - volatile uint8_t *reg = portSetRegister(pin); - uint32_t num = numBytes; - asm volatile( - "L%=_begin:" "\n\t" - "ldrb %[pix], [%[p], #0]" "\n\t" - "lsl %[pix], #24" "\n\t" - "movs %[count], #7" "\n\t" - "L%=_loop:" "\n\t" - "lsl %[pix], #1" "\n\t" - "bcs L%=_loop_one" "\n\t" - "L%=_loop_zero:" - "strb %[bitmask], [%[reg], #0]" "\n\t" - "movs %[dly], #4" "\n\t" - "L%=_loop_delay_T0H:" "\n\t" - "sub %[dly], #1" "\n\t" - "bne L%=_loop_delay_T0H" "\n\t" - "strb %[bitmask], [%[reg], #4]" "\n\t" - "movs %[dly], #13" "\n\t" - "L%=_loop_delay_T0L:" "\n\t" - "sub %[dly], #1" "\n\t" - "bne L%=_loop_delay_T0L" "\n\t" - "b L%=_next" "\n\t" - "L%=_loop_one:" - "strb %[bitmask], [%[reg], #0]" "\n\t" - "movs %[dly], #13" "\n\t" - "L%=_loop_delay_T1H:" "\n\t" - "sub %[dly], #1" "\n\t" - "bne L%=_loop_delay_T1H" "\n\t" - "strb %[bitmask], [%[reg], #4]" "\n\t" - "movs %[dly], #4" "\n\t" - "L%=_loop_delay_T1L:" "\n\t" - "sub %[dly], #1" "\n\t" - "bne L%=_loop_delay_T1L" "\n\t" - "nop" "\n\t" - "L%=_next:" "\n\t" - "sub %[count], #1" "\n\t" - "bne L%=_loop" "\n\t" - "lsl %[pix], #1" "\n\t" - "bcs L%=_last_one" "\n\t" - "L%=_last_zero:" - "strb %[bitmask], [%[reg], #0]" "\n\t" - "movs %[dly], #4" "\n\t" - "L%=_last_delay_T0H:" "\n\t" - "sub %[dly], #1" "\n\t" - "bne L%=_last_delay_T0H" "\n\t" - "strb %[bitmask], [%[reg], #4]" "\n\t" - "movs %[dly], #10" "\n\t" - "L%=_last_delay_T0L:" "\n\t" - "sub %[dly], #1" "\n\t" - "bne L%=_last_delay_T0L" "\n\t" - "b L%=_repeat" "\n\t" - "L%=_last_one:" - "strb %[bitmask], [%[reg], #0]" "\n\t" - "movs %[dly], #13" "\n\t" - "L%=_last_delay_T1H:" "\n\t" - "sub %[dly], #1" "\n\t" - "bne L%=_last_delay_T1H" "\n\t" - "strb %[bitmask], [%[reg], #4]" "\n\t" - "movs %[dly], #1" "\n\t" - "L%=_last_delay_T1L:" "\n\t" - "sub %[dly], #1" "\n\t" - "bne L%=_last_delay_T1L" "\n\t" - "nop" "\n\t" - "L%=_repeat:" "\n\t" - "add %[p], #1" "\n\t" - "sub %[num], #1" "\n\t" - "bne L%=_begin" "\n\t" - "L%=_done:" "\n\t" - : [p] "+r" (p), - [pix] "=&r" (pix), - [count] "=&r" (count), - [dly] "=&r" (dly), - [num] "+r" (num) - : [bitmask] "r" (bitmask), - [reg] "r" (reg) - ); -#else -#error "Sorry, only 48 MHz is supported, please set Tools > CPU Speed to 48 MHz" -#endif // F_CPU == 48000000 - -#elif defined(__SAMD21G18A__) // Arduino Zero - - // Tried this with a timer/counter, couldn't quite get adequate - // resolution. So yay, you get a load of goofball NOPs... - - uint8_t *ptr, *end, p, bitMask, portNum; - uint32_t pinMask; - - portNum = g_APinDescription[pin].ulPort; - pinMask = 1ul << g_APinDescription[pin].ulPin; - ptr = pixels; - end = ptr + numBytes; - p = *ptr++; - bitMask = 0x80; - - volatile uint32_t *set = &(PORT->Group[portNum].OUTSET.reg), - *clr = &(PORT->Group[portNum].OUTCLR.reg); - -#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled - if(is800KHz) { -#endif - for(;;) { - *set = pinMask; - asm("nop; nop; nop; nop; nop; nop; nop; nop;"); - if(p & bitMask) { - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop;"); - *clr = pinMask; - } else { - *clr = pinMask; - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop;"); - } - if(bitMask >>= 1) { - asm("nop; nop; nop; nop; nop; nop; nop; nop; nop;"); - } else { - if(ptr >= end) break; - p = *ptr++; - bitMask = 0x80; - } - } -#ifdef NEO_KHZ400 - } else { // 400 KHz bitstream - for(;;) { - *set = pinMask; - asm("nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop;"); - if(p & bitMask) { - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop;"); - *clr = pinMask; - } else { - *clr = pinMask; - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop;"); - } - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;"); - if(bitMask >>= 1) { - asm("nop; nop; nop; nop; nop; nop; nop;"); - } else { - if(ptr >= end) break; - p = *ptr++; - bitMask = 0x80; - } - } - } -#endif - -#elif defined (ARDUINO_STM32_FEATHER) // FEATHER WICED (120MHz) - - // Tried this with a timer/counter, couldn't quite get adequate - // resolution. So yay, you get a load of goofball NOPs... - - uint8_t *ptr, *end, p, bitMask; - uint32_t pinMask; - - pinMask = BIT(PIN_MAP[pin].gpio_bit); - ptr = pixels; - end = ptr + numBytes; - p = *ptr++; - bitMask = 0x80; - - volatile uint16_t *set = &(PIN_MAP[pin].gpio_device->regs->BSRRL); - volatile uint16_t *clr = &(PIN_MAP[pin].gpio_device->regs->BSRRH); - -#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled - if(is800KHz) { -#endif - for(;;) { - if(p & bitMask) { // ONE - // High 800ns - *set = pinMask; - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop;"); - // Low 450ns - *clr = pinMask; - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop;"); - } else { // ZERO - // High 400ns - *set = pinMask; - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop;"); - // Low 850ns - *clr = pinMask; - asm("nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop; nop; nop; nop; nop;" - "nop; nop; nop; nop;"); - } - if(bitMask >>= 1) { - // Move on to the next pixel - asm("nop;"); - } else { - if(ptr >= end) break; - p = *ptr++; - bitMask = 0x80; - } - } -#ifdef NEO_KHZ400 - } else { // 400 KHz bitstream - // ToDo! - } -#endif - -#else // Other ARM architecture -- Presumed Arduino Due - - #define SCALE VARIANT_MCK / 2UL / 1000000UL - #define INST (2UL * F_CPU / VARIANT_MCK) - #define TIME_800_0 ((int)(0.40 * SCALE + 0.5) - (5 * INST)) - #define TIME_800_1 ((int)(0.80 * SCALE + 0.5) - (5 * INST)) - #define PERIOD_800 ((int)(1.25 * SCALE + 0.5) - (5 * INST)) - #define TIME_400_0 ((int)(0.50 * SCALE + 0.5) - (5 * INST)) - #define TIME_400_1 ((int)(1.20 * SCALE + 0.5) - (5 * INST)) - #define PERIOD_400 ((int)(2.50 * SCALE + 0.5) - (5 * INST)) - - int pinMask, time0, time1, period, t; - Pio *port; - volatile WoReg *portSet, *portClear, *timeValue, *timeReset; - uint8_t *p, *end, pix, mask; - - pmc_set_writeprotect(false); - pmc_enable_periph_clk((uint32_t)TC3_IRQn); - TC_Configure(TC1, 0, - TC_CMR_WAVE | TC_CMR_WAVSEL_UP | TC_CMR_TCCLKS_TIMER_CLOCK1); - TC_Start(TC1, 0); - - pinMask = g_APinDescription[pin].ulPin; // Don't 'optimize' these into - port = g_APinDescription[pin].pPort; // declarations above. Want to - portSet = &(port->PIO_SODR); // burn a few cycles after - portClear = &(port->PIO_CODR); // starting timer to minimize - timeValue = &(TC1->TC_CHANNEL[0].TC_CV); // the initial 'while'. - timeReset = &(TC1->TC_CHANNEL[0].TC_CCR); - p = pixels; - end = p + numBytes; - pix = *p++; - mask = 0x80; - -#ifdef NEO_KHZ400 // 800 KHz check needed only if 400 KHz support enabled - if(is800KHz) { -#endif - time0 = TIME_800_0; - time1 = TIME_800_1; - period = PERIOD_800; -#ifdef NEO_KHZ400 - } else { // 400 KHz bitstream - time0 = TIME_400_0; - time1 = TIME_400_1; - period = PERIOD_400; - } -#endif - - for(t = time0;; t = time0) { - if(pix & mask) t = time1; - while(*timeValue < period); - *portSet = pinMask; - *timeReset = TC_CCR_CLKEN | TC_CCR_SWTRG; - while(*timeValue < t); - *portClear = pinMask; - if(!(mask >>= 1)) { // This 'inside-out' loop logic utilizes - if(p >= end) break; // idle time to minimize inter-byte delays. - pix = *p++; - mask = 0x80; - } - } - while(*timeValue < period); // Wait for last bit - TC_Stop(TC1, 0); - -#endif // end Due - -// END ARM ---------------------------------------------------------------- - - -#elif defined(ESP8266) - -// ESP8266 ---------------------------------------------------------------- - - // ESP8266 show() is external to enforce ICACHE_RAM_ATTR execution - espShow(pin, pixels, numBytes, is800KHz); - -#elif defined(__ARDUINO_ARC__) - -// Arduino 101 ----------------------------------------------------------- - -#define NOPx7 { __builtin_arc_nop(); \ - __builtin_arc_nop(); __builtin_arc_nop(); \ - __builtin_arc_nop(); __builtin_arc_nop(); \ - __builtin_arc_nop(); __builtin_arc_nop(); } - - PinDescription *pindesc = &g_APinDescription[pin]; - register uint32_t loop = 8 * numBytes; // one loop to handle all bytes and all bits - register uint8_t *p = pixels; - register uint32_t currByte = (uint32_t) (*p); - register uint32_t currBit = 0x80 & currByte; - register uint32_t bitCounter = 0; - register uint32_t first = 1; - - // The loop is unusual. Very first iteration puts all the way LOW to the wire - - // constant LOW does not affect NEOPIXEL, so there is no visible effect displayed. - // During that very first iteration CPU caches instructions in the loop. - // Because of the caching process, "CPU slows down". NEOPIXEL pulse is very time sensitive - // that's why we let the CPU cache first and we start regular pulse from 2nd iteration - if (pindesc->ulGPIOType == SS_GPIO) { - register uint32_t reg = pindesc->ulGPIOBase + SS_GPIO_SWPORTA_DR; - uint32_t reg_val = __builtin_arc_lr((volatile uint32_t)reg); - register uint32_t reg_bit_high = reg_val | (1 << pindesc->ulGPIOId); - register uint32_t reg_bit_low = reg_val & ~(1 << pindesc->ulGPIOId); - - loop += 1; // include first, special iteration - while(loop--) { - if(!first) { - currByte <<= 1; - bitCounter++; - } - - // 1 is >550ns high and >450ns low; 0 is 200..500ns high and >450ns low - __builtin_arc_sr(first ? reg_bit_low : reg_bit_high, (volatile uint32_t)reg); - if(currBit) { // ~400ns HIGH (740ns overall) - NOPx7 - NOPx7 - } - // ~340ns HIGH - NOPx7 - __builtin_arc_nop(); - - // 820ns LOW; per spec, max allowed low here is 5000ns */ - __builtin_arc_sr(reg_bit_low, (volatile uint32_t)reg); - NOPx7 - NOPx7 - - if(bitCounter >= 8) { - bitCounter = 0; - currByte = (uint32_t) (*++p); - } - - currBit = 0x80 & currByte; - first = 0; - } - } else if(pindesc->ulGPIOType == SOC_GPIO) { - register uint32_t reg = pindesc->ulGPIOBase + SOC_GPIO_SWPORTA_DR; - uint32_t reg_val = MMIO_REG_VAL(reg); - register uint32_t reg_bit_high = reg_val | (1 << pindesc->ulGPIOId); - register uint32_t reg_bit_low = reg_val & ~(1 << pindesc->ulGPIOId); - - loop += 1; // include first, special iteration - while(loop--) { - if(!first) { - currByte <<= 1; - bitCounter++; - } - MMIO_REG_VAL(reg) = first ? reg_bit_low : reg_bit_high; - if(currBit) { // ~430ns HIGH (740ns overall) - NOPx7 - NOPx7 - __builtin_arc_nop(); - } - // ~310ns HIGH - NOPx7 - - // 850ns LOW; per spec, max allowed low here is 5000ns */ - MMIO_REG_VAL(reg) = reg_bit_low; - NOPx7 - NOPx7 - - if(bitCounter >= 8) { - bitCounter = 0; - currByte = (uint32_t) (*++p); - } - - currBit = 0x80 & currByte; - first = 0; - } - } - -#endif - - -// END ARCHITECTURE SELECT ------------------------------------------------ - - - interrupts(); - endTime = micros(); // Save EOD time for latch on next call -} - -// Set the output pin number -void Adafruit_NeoPixel::setPin(uint8_t p) { - if(begun && (pin >= 0)) pinMode(pin, INPUT); - pin = p; - if(begun) { - pinMode(p, OUTPUT); - digitalWrite(p, LOW); - } -#ifdef __AVR__ - port = portOutputRegister(digitalPinToPort(p)); - pinMask = digitalPinToBitMask(p); -#endif -} - -// Set pixel color from separate R,G,B components: -void Adafruit_NeoPixel::setPixelColor( - uint16_t n, uint8_t r, uint8_t g, uint8_t b) { - - if(n < numLEDs) { - if(brightness) { // See notes in setBrightness() - r = (r * brightness) >> 8; - g = (g * brightness) >> 8; - b = (b * brightness) >> 8; - } - uint8_t *p; - if(wOffset == rOffset) { // Is an RGB-type strip - p = &pixels[n * 3]; // 3 bytes per pixel - } else { // Is a WRGB-type strip - p = &pixels[n * 4]; // 4 bytes per pixel - p[wOffset] = 0; // But only R,G,B passed -- set W to 0 - } - p[rOffset] = r; // R,G,B always stored - p[gOffset] = g; - p[bOffset] = b; - } -} - -void Adafruit_NeoPixel::setPixelColor( - uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w) { - - if(n < numLEDs) { - if(brightness) { // See notes in setBrightness() - r = (r * brightness) >> 8; - g = (g * brightness) >> 8; - b = (b * brightness) >> 8; - w = (w * brightness) >> 8; - } - uint8_t *p; - if(wOffset == rOffset) { // Is an RGB-type strip - p = &pixels[n * 3]; // 3 bytes per pixel (ignore W) - } else { // Is a WRGB-type strip - p = &pixels[n * 4]; // 4 bytes per pixel - p[wOffset] = w; // Store W - } - p[rOffset] = r; // Store R,G,B - p[gOffset] = g; - p[bOffset] = b; - } -} - -// Set pixel color from 'packed' 32-bit RGB color: -void Adafruit_NeoPixel::setPixelColor(uint16_t n, uint32_t c) { - if(n < numLEDs) { - uint8_t *p, - r = (uint8_t)(c >> 16), - g = (uint8_t)(c >> 8), - b = (uint8_t)c; - if(brightness) { // See notes in setBrightness() - r = (r * brightness) >> 8; - g = (g * brightness) >> 8; - b = (b * brightness) >> 8; - } - if(wOffset == rOffset) { - p = &pixels[n * 3]; - } else { - p = &pixels[n * 4]; - uint8_t w = (uint8_t)(c >> 24); - p[wOffset] = brightness ? ((w * brightness) >> 8) : w; - } - p[rOffset] = r; - p[gOffset] = g; - p[bOffset] = b; - } -} - -// Convert separate R,G,B into packed 32-bit RGB color. -// Packed format is always RGB, regardless of LED strand color order. -uint32_t Adafruit_NeoPixel::Color(uint8_t r, uint8_t g, uint8_t b) { - return ((uint32_t)r << 16) | ((uint32_t)g << 8) | b; -} - -// Convert separate R,G,B,W into packed 32-bit WRGB color. -// Packed format is always WRGB, regardless of LED strand color order. -uint32_t Adafruit_NeoPixel::Color(uint8_t r, uint8_t g, uint8_t b, uint8_t w) { - return ((uint32_t)w << 24) | ((uint32_t)r << 16) | ((uint32_t)g << 8) | b; -} - -// Query color from previously-set pixel (returns packed 32-bit RGB value) -uint32_t Adafruit_NeoPixel::getPixelColor(uint16_t n) const { - if(n >= numLEDs) return 0; // Out of bounds, return no color. - - uint8_t *p; - - if(wOffset == rOffset) { // Is RGB-type device - p = &pixels[n * 3]; - if(brightness) { - // Stored color was decimated by setBrightness(). Returned value - // attempts to scale back to an approximation of the original 24-bit - // value used when setting the pixel color, but there will always be - // some error -- those bits are simply gone. Issue is most - // pronounced at low brightness levels. - return (((uint32_t)(p[rOffset] << 8) / brightness) << 16) | - (((uint32_t)(p[gOffset] << 8) / brightness) << 8) | - ( (uint32_t)(p[bOffset] << 8) / brightness ); - } else { - // No brightness adjustment has been made -- return 'raw' color - return ((uint32_t)p[rOffset] << 16) | - ((uint32_t)p[gOffset] << 8) | - (uint32_t)p[bOffset]; - } - } else { // Is RGBW-type device - p = &pixels[n * 4]; - if(brightness) { // Return scaled color - return (((uint32_t)(p[wOffset] << 8) / brightness) << 24) | - (((uint32_t)(p[rOffset] << 8) / brightness) << 16) | - (((uint32_t)(p[gOffset] << 8) / brightness) << 8) | - ( (uint32_t)(p[bOffset] << 8) / brightness ); - } else { // Return raw color - return ((uint32_t)p[wOffset] << 24) | - ((uint32_t)p[rOffset] << 16) | - ((uint32_t)p[gOffset] << 8) | - (uint32_t)p[bOffset]; - } - } -} - -// Returns pointer to pixels[] array. Pixel data is stored in device- -// native format and is not translated here. Application will need to be -// aware of specific pixel data format and handle colors appropriately. -uint8_t *Adafruit_NeoPixel::getPixels(void) const { - return pixels; -} - -uint16_t Adafruit_NeoPixel::numPixels(void) const { - return numLEDs; -} - -// Adjust output brightness; 0=darkest (off), 255=brightest. This does -// NOT immediately affect what's currently displayed on the LEDs. The -// next call to show() will refresh the LEDs at this level. However, -// this process is potentially "lossy," especially when increasing -// brightness. The tight timing in the WS2811/WS2812 code means there -// aren't enough free cycles to perform this scaling on the fly as data -// is issued. So we make a pass through the existing color data in RAM -// and scale it (subsequent graphics commands also work at this -// brightness level). If there's a significant step up in brightness, -// the limited number of steps (quantization) in the old data will be -// quite visible in the re-scaled version. For a non-destructive -// change, you'll need to re-render the full strip data. C'est la vie. -void Adafruit_NeoPixel::setBrightness(uint8_t b) { - // Stored brightness value is different than what's passed. - // This simplifies the actual scaling math later, allowing a fast - // 8x8-bit multiply and taking the MSB. 'brightness' is a uint8_t, - // adding 1 here may (intentionally) roll over...so 0 = max brightness - // (color values are interpreted literally; no scaling), 1 = min - // brightness (off), 255 = just below max brightness. - uint8_t newBrightness = b + 1; - if(newBrightness != brightness) { // Compare against prior value - // Brightness has changed -- re-scale existing data in RAM - uint8_t c, - *ptr = pixels, - oldBrightness = brightness - 1; // De-wrap old brightness value - uint16_t scale; - if(oldBrightness == 0) scale = 0; // Avoid /0 - else if(b == 255) scale = 65535 / oldBrightness; - else scale = (((uint16_t)newBrightness << 8) - 1) / oldBrightness; - for(uint16_t i=0; i> 8; - } - brightness = newBrightness; - } -} - -//Return the brightness value -uint8_t Adafruit_NeoPixel::getBrightness(void) const { - return brightness - 1; -} - -void Adafruit_NeoPixel::clear() { - memset(pixels, 0, numBytes); -} - - - - - - - - - - - - - diff --git a/Arduino/libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.h b/Arduino/libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.h deleted file mode 100644 index b051d7d1..00000000 --- a/Arduino/libraries/Adafruit_NeoPixel/Adafruit_NeoPixel.h +++ /dev/null @@ -1,181 +0,0 @@ -/*-------------------------------------------------------------------- - This file is part of the Adafruit NeoPixel library. - - NeoPixel is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as - published by the Free Software Foundation, either version 3 of - the License, or (at your option) any later version. - - NeoPixel is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with NeoPixel. If not, see - . - --------------------------------------------------------------------*/ - -#ifndef ADAFRUIT_NEOPIXEL_H -#define ADAFRUIT_NEOPIXEL_H - -#if (ARDUINO >= 100) - #include -#else - #include - #include -#endif - -// The order of primary colors in the NeoPixel data stream can vary -// among device types, manufacturers and even different revisions of -// the same item. The third parameter to the Adafruit_NeoPixel -// constructor encodes the per-pixel byte offsets of the red, green -// and blue primaries (plus white, if present) in the data stream -- -// the following #defines provide an easier-to-use named version for -// each permutation. e.g. NEO_GRB indicates a NeoPixel-compatible -// device expecting three bytes per pixel, with the first byte -// containing the green value, second containing red and third -// containing blue. The in-memory representation of a chain of -// NeoPixels is the same as the data-stream order; no re-ordering of -// bytes is required when issuing data to the chain. - -// Bits 5,4 of this value are the offset (0-3) from the first byte of -// a pixel to the location of the red color byte. Bits 3,2 are the -// green offset and 1,0 are the blue offset. If it is an RGBW-type -// device (supporting a white primary in addition to R,G,B), bits 7,6 -// are the offset to the white byte...otherwise, bits 7,6 are set to -// the same value as 5,4 (red) to indicate an RGB (not RGBW) device. -// i.e. binary representation: -// 0bWWRRGGBB for RGBW devices -// 0bRRRRGGBB for RGB - -// RGB NeoPixel permutations; white and red offsets are always same -// Offset: W R G B -#define NEO_RGB ((0 << 6) | (0 << 4) | (1 << 2) | (2)) -#define NEO_RBG ((0 << 6) | (0 << 4) | (2 << 2) | (1)) -#define NEO_GRB ((1 << 6) | (1 << 4) | (0 << 2) | (2)) -#define NEO_GBR ((2 << 6) | (2 << 4) | (0 << 2) | (1)) -#define NEO_BRG ((1 << 6) | (1 << 4) | (2 << 2) | (0)) -#define NEO_BGR ((2 << 6) | (2 << 4) | (1 << 2) | (0)) - -// RGBW NeoPixel permutations; all 4 offsets are distinct -// Offset: W R G B -#define NEO_WRGB ((0 << 6) | (1 << 4) | (2 << 2) | (3)) -#define NEO_WRBG ((0 << 6) | (1 << 4) | (3 << 2) | (2)) -#define NEO_WGRB ((0 << 6) | (2 << 4) | (1 << 2) | (3)) -#define NEO_WGBR ((0 << 6) | (3 << 4) | (1 << 2) | (2)) -#define NEO_WBRG ((0 << 6) | (2 << 4) | (3 << 2) | (1)) -#define NEO_WBGR ((0 << 6) | (3 << 4) | (2 << 2) | (1)) - -#define NEO_RWGB ((1 << 6) | (0 << 4) | (2 << 2) | (3)) -#define NEO_RWBG ((1 << 6) | (0 << 4) | (3 << 2) | (2)) -#define NEO_RGWB ((2 << 6) | (0 << 4) | (1 << 2) | (3)) -#define NEO_RGBW ((3 << 6) | (0 << 4) | (1 << 2) | (2)) -#define NEO_RBWG ((2 << 6) | (0 << 4) | (3 << 2) | (1)) -#define NEO_RBGW ((3 << 6) | (0 << 4) | (2 << 2) | (1)) - -#define NEO_GWRB ((1 << 6) | (2 << 4) | (0 << 2) | (3)) -#define NEO_GWBR ((1 << 6) | (3 << 4) | (0 << 2) | (2)) -#define NEO_GRWB ((2 << 6) | (1 << 4) | (0 << 2) | (3)) -#define NEO_GRBW ((3 << 6) | (1 << 4) | (0 << 2) | (2)) -#define NEO_GBWR ((2 << 6) | (3 << 4) | (0 << 2) | (1)) -#define NEO_GBRW ((3 << 6) | (2 << 4) | (0 << 2) | (1)) - -#define NEO_BWRG ((1 << 6) | (2 << 4) | (3 << 2) | (0)) -#define NEO_BWGR ((1 << 6) | (3 << 4) | (2 << 2) | (0)) -#define NEO_BRWG ((2 << 6) | (1 << 4) | (3 << 2) | (0)) -#define NEO_BRGW ((3 << 6) | (1 << 4) | (2 << 2) | (0)) -#define NEO_BGWR ((2 << 6) | (3 << 4) | (1 << 2) | (0)) -#define NEO_BGRW ((3 << 6) | (2 << 4) | (1 << 2) | (0)) - -// Add NEO_KHZ400 to the color order value to indicate a 400 KHz -// device. All but the earliest v1 NeoPixels expect an 800 KHz data -// stream, this is the default if unspecified. Because flash space -// is very limited on ATtiny devices (e.g. Trinket, Gemma), v1 -// NeoPixels aren't handled by default on those chips, though it can -// be enabled by removing the ifndef/endif below -- but code will be -// bigger. Conversely, can disable the NEO_KHZ400 line on other MCUs -// to remove v1 support and save a little space. - -#define NEO_KHZ800 0x0000 // 800 KHz datastream -#ifndef __AVR_ATtiny85__ -#define NEO_KHZ400 0x0100 // 400 KHz datastream -#endif - -// If 400 KHz support is enabled, the third parameter to the constructor -// requires a 16-bit value (in order to select 400 vs 800 KHz speed). -// If only 800 KHz is enabled (as is default on ATtiny), an 8-bit value -// is sufficient to encode pixel color order, saving some space. - -#ifdef NEO_KHZ400 -typedef uint16_t neoPixelType; -#else -typedef uint8_t neoPixelType; -#endif - -class Adafruit_NeoPixel { - - public: - - // Constructor: number of LEDs, pin number, LED type - Adafruit_NeoPixel(uint16_t n, uint8_t p=6, neoPixelType t=NEO_GRB + NEO_KHZ800); - Adafruit_NeoPixel(void); - ~Adafruit_NeoPixel(); - - void - begin(void), - show(void), - setPin(uint8_t p), - setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b), - setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w), - setPixelColor(uint16_t n, uint32_t c), - setBrightness(uint8_t), - clear(), - updateLength(uint16_t n), - updateType(neoPixelType t); - uint8_t - *getPixels(void) const, - getBrightness(void) const; - int8_t - getPin(void) { return pin; }; - uint16_t - numPixels(void) const; - static uint32_t - Color(uint8_t r, uint8_t g, uint8_t b), - Color(uint8_t r, uint8_t g, uint8_t b, uint8_t w); - uint32_t - getPixelColor(uint16_t n) const; - inline bool - canShow(void) { return (micros() - endTime) >= 50L; } - - private: - - boolean -#ifdef NEO_KHZ400 // If 400 KHz NeoPixel support enabled... - is800KHz, // ...true if 800 KHz pixels -#endif - begun; // true if begin() previously called - uint16_t - numLEDs, // Number of RGB LEDs in strip - numBytes; // Size of 'pixels' buffer below (3 or 4 bytes/pixel) - int8_t - pin; // Output pin number (-1 if not yet set) - uint8_t - brightness, - *pixels, // Holds LED color values (3 or 4 bytes each) - rOffset, // Index of red byte within each 3- or 4-byte pixel - gOffset, // Index of green byte - bOffset, // Index of blue byte - wOffset; // Index of white byte (same as rOffset if no white) - uint32_t - endTime; // Latch timing reference -#ifdef __AVR__ - volatile uint8_t - *port; // Output PORT register - uint8_t - pinMask; // Output PORT bitmask -#endif - -}; - -#endif // ADAFRUIT_NEOPIXEL_H diff --git a/Arduino/libraries/Adafruit_NeoPixel/COPYING b/Arduino/libraries/Adafruit_NeoPixel/COPYING deleted file mode 100644 index 65c5ca88..00000000 --- a/Arduino/libraries/Adafruit_NeoPixel/COPYING +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/Arduino/libraries/Adafruit_NeoPixel/README.md b/Arduino/libraries/Adafruit_NeoPixel/README.md deleted file mode 100644 index 7aaaa206..00000000 --- a/Arduino/libraries/Adafruit_NeoPixel/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Adafruit NeoPixel Library [![Build Status](https://travis-ci.org/adafruit/Adafruit_NeoPixel.svg?branch=master)](https://travis-ci.org/adafruit/Adafruit_NeoPixel) - -Arduino library for controlling single-wire-based LED pixels and strip such as the [Adafruit 60 LED/meter Digital LED strip][strip], the [Adafruit FLORA RGB Smart Pixel][flora], the [Adafruit Breadboard-friendly RGB Smart Pixel][pixel], the [Adafruit NeoPixel Stick][stick], and the [Adafruit NeoPixel Shield][shield]. - -After downloading, rename folder to 'Adafruit_NeoPixel' and install in Arduino Libraries folder. Restart Arduino IDE, then open File->Sketchbook->Library->Adafruit_NeoPixel->strandtest sketch. - -[flora]: http://adafruit.com/products/1060 -[strip]: http://adafruit.com/products/1138 -[pixel]: http://adafruit.com/products/1312 -[stick]: http://adafruit.com/products/1426 -[shield]: http://adafruit.com/products/1430 diff --git a/Arduino/libraries/Adafruit_NeoPixel/esp8266.c b/Arduino/libraries/Adafruit_NeoPixel/esp8266.c deleted file mode 100644 index 1ae3ba0f..00000000 --- a/Arduino/libraries/Adafruit_NeoPixel/esp8266.c +++ /dev/null @@ -1,67 +0,0 @@ -// This is a mash-up of the Due show() code + insights from Michael Miller's -// ESP8266 work for the NeoPixelBus library: github.com/Makuna/NeoPixelBus -// Needs to be a separate .c file to enforce ICACHE_RAM_ATTR execution. - -#ifdef ESP8266 - -#include -#include - -static uint32_t _getCycleCount(void) __attribute__((always_inline)); -static inline uint32_t _getCycleCount(void) { - uint32_t ccount; - __asm__ __volatile__("rsr %0,ccount":"=a" (ccount)); - return ccount; -} - -void ICACHE_RAM_ATTR espShow( - uint8_t pin, uint8_t *pixels, uint32_t numBytes, boolean is800KHz) { - -#define CYCLES_800_T0H (F_CPU / 2500000) // 0.4us -#define CYCLES_800_T1H (F_CPU / 1250000) // 0.8us -#define CYCLES_800 (F_CPU / 800000) // 1.25us per bit -#define CYCLES_400_T0H (F_CPU / 2000000) // 0.5uS -#define CYCLES_400_T1H (F_CPU / 833333) // 1.2us -#define CYCLES_400 (F_CPU / 400000) // 2.5us per bit - - uint8_t *p, *end, pix, mask; - uint32_t t, time0, time1, period, c, startTime, pinMask; - - pinMask = _BV(pin); - p = pixels; - end = p + numBytes; - pix = *p++; - mask = 0x80; - startTime = 0; - -#ifdef NEO_KHZ400 - if(is800KHz) { -#endif - time0 = CYCLES_800_T0H; - time1 = CYCLES_800_T1H; - period = CYCLES_800; -#ifdef NEO_KHZ400 - } else { // 400 KHz bitstream - time0 = CYCLES_400_T0H; - time1 = CYCLES_400_T1H; - period = CYCLES_400; - } -#endif - - for(t = time0;; t = time0) { - if(pix & mask) t = time1; // Bit high duration - while(((c = _getCycleCount()) - startTime) < period); // Wait for bit start - GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, pinMask); // Set high - startTime = c; // Save start time - while(((c = _getCycleCount()) - startTime) < t); // Wait high duration - GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, pinMask); // Set low - if(!(mask >>= 1)) { // Next bit/byte - if(p >= end) break; - pix = *p++; - mask = 0x80; - } - } - while((_getCycleCount() - startTime) < period); // Wait for last bit -} - -#endif // ESP8266 diff --git a/Arduino/libraries/Adafruit_NeoPixel/examples/RGBWstrandtest/RGBWstrandtest.ino b/Arduino/libraries/Adafruit_NeoPixel/examples/RGBWstrandtest/RGBWstrandtest.ino deleted file mode 100644 index ad54c1d5..00000000 --- a/Arduino/libraries/Adafruit_NeoPixel/examples/RGBWstrandtest/RGBWstrandtest.ino +++ /dev/null @@ -1,263 +0,0 @@ -#include -#ifdef __AVR__ - #include -#endif - -#define PIN 6 - -#define NUM_LEDS 60 - -#define BRIGHTNESS 50 - -Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRBW + NEO_KHZ800); - -int gamma[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, - 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, - 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, - 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25, - 25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36, - 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, - 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, - 69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, - 90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114, - 115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142, - 144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175, - 177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213, - 215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 }; - - -void setup() { - Serial.begin(115200); - // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket - #if defined (__AVR_ATtiny85__) - if (F_CPU == 16000000) clock_prescale_set(clock_div_1); - #endif - // End of trinket special code - strip.setBrightness(BRIGHTNESS); - strip.begin(); - strip.show(); // Initialize all pixels to 'off' -} - -void loop() { - // Some example procedures showing how to display to the pixels: - colorWipe(strip.Color(255, 0, 0), 50); // Red - colorWipe(strip.Color(0, 255, 0), 50); // Green - colorWipe(strip.Color(0, 0, 255), 50); // Blue - colorWipe(strip.Color(0, 0, 0, 255), 50); // White - - whiteOverRainbow(20,75,5); - - pulseWhite(5); - - // fullWhite(); - // delay(2000); - - rainbowFade2White(3,3,1); - - -} - -// Fill the dots one after the other with a color -void colorWipe(uint32_t c, uint8_t wait) { - for(uint16_t i=0; i= 0 ; j--){ - for(uint16_t i=0; i 255 - fadeMax ){ - fadeVal--; - } - - strip.show(); - delay(wait); - } - - } - - - - delay(500); - - - for(int k = 0 ; k < whiteLoops ; k ++){ - - for(int j = 0; j < 256 ; j++){ - - for(uint16_t i=0; i < strip.numPixels(); i++) { - strip.setPixelColor(i, strip.Color(0,0,0, gamma[j] ) ); - } - strip.show(); - } - - delay(2000); - for(int j = 255; j >= 0 ; j--){ - - for(uint16_t i=0; i < strip.numPixels(); i++) { - strip.setPixelColor(i, strip.Color(0,0,0, gamma[j] ) ); - } - strip.show(); - } - } - - delay(500); - - -} - -void whiteOverRainbow(uint8_t wait, uint8_t whiteSpeed, uint8_t whiteLength ) { - - if(whiteLength >= strip.numPixels()) whiteLength = strip.numPixels() - 1; - - int head = whiteLength - 1; - int tail = 0; - - int loops = 3; - int loopNum = 0; - - static unsigned long lastTime = 0; - - - while(true){ - for(int j=0; j<256; j++) { - for(uint16_t i=0; i= tail && i <= head) || (tail > head && i >= tail) || (tail > head && i <= head) ){ - strip.setPixelColor(i, strip.Color(0,0,0, 255 ) ); - } - else{ - strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255)); - } - - } - - if(millis() - lastTime > whiteSpeed) { - head++; - tail++; - if(head == strip.numPixels()){ - loopNum++; - } - lastTime = millis(); - } - - if(loopNum == loops) return; - - head%=strip.numPixels(); - tail%=strip.numPixels(); - strip.show(); - delay(wait); - } - } - -} -void fullWhite() { - - for(uint16_t i=0; i> 8); -} -uint8_t green(uint32_t c) { - return (c >> 16); -} -uint8_t blue(uint32_t c) { - return (c); -} - - diff --git a/Arduino/libraries/Adafruit_NeoPixel/examples/buttoncycler/buttoncycler.ino b/Arduino/libraries/Adafruit_NeoPixel/examples/buttoncycler/buttoncycler.ino deleted file mode 100644 index cf1598a8..00000000 --- a/Arduino/libraries/Adafruit_NeoPixel/examples/buttoncycler/buttoncycler.ino +++ /dev/null @@ -1,165 +0,0 @@ -// This is a demonstration on how to use an input device to trigger changes on your neo pixels. -// You should wire a momentary push button to connect from ground to a digital IO pin. When you -// press the button it will change to a new pixel animation. Note that you need to press the -// button once to start the first animation! - -#include - -#define BUTTON_PIN 2 // Digital IO pin connected to the button. This will be - // driven with a pull-up resistor so the switch should - // pull the pin to ground momentarily. On a high -> low - // transition the button press logic will execute. - -#define PIXEL_PIN 6 // Digital IO pin connected to the NeoPixels. - -#define PIXEL_COUNT 16 - -// Parameter 1 = number of pixels in strip, neopixel stick has 8 -// Parameter 2 = pin number (most are valid) -// Parameter 3 = pixel type flags, add together as needed: -// NEO_RGB Pixels are wired for RGB bitstream -// NEO_GRB Pixels are wired for GRB bitstream, correct for neopixel stick -// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) -// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick -Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); - -bool oldState = HIGH; -int showType = 0; - -void setup() { - pinMode(BUTTON_PIN, INPUT_PULLUP); - strip.begin(); - strip.show(); // Initialize all pixels to 'off' -} - -void loop() { - // Get current button state. - bool newState = digitalRead(BUTTON_PIN); - - // Check if state changed from high to low (button press). - if (newState == LOW && oldState == HIGH) { - // Short delay to debounce button. - delay(20); - // Check if button is still low after debounce. - newState = digitalRead(BUTTON_PIN); - if (newState == LOW) { - showType++; - if (showType > 9) - showType=0; - startShow(showType); - } - } - - // Set the last button state to the old state. - oldState = newState; -} - -void startShow(int i) { - switch(i){ - case 0: colorWipe(strip.Color(0, 0, 0), 50); // Black/off - break; - case 1: colorWipe(strip.Color(255, 0, 0), 50); // Red - break; - case 2: colorWipe(strip.Color(0, 255, 0), 50); // Green - break; - case 3: colorWipe(strip.Color(0, 0, 255), 50); // Blue - break; - case 4: theaterChase(strip.Color(127, 127, 127), 50); // White - break; - case 5: theaterChase(strip.Color(127, 0, 0), 50); // Red - break; - case 6: theaterChase(strip.Color( 0, 0, 127), 50); // Blue - break; - case 7: rainbow(20); - break; - case 8: rainbowCycle(20); - break; - case 9: theaterChaseRainbow(50); - break; - } -} - -// Fill the dots one after the other with a color -void colorWipe(uint32_t c, uint8_t wait) { - for(uint16_t i=0; i -#ifdef __AVR__ - #include -#endif - -// Which pin on the Arduino is connected to the NeoPixels? -// On a Trinket or Gemma we suggest changing this to 1 -#define PIN 6 - -// How many NeoPixels are attached to the Arduino? -#define NUMPIXELS 16 - -// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals. -// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest -// example for more information on possible values. -Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); - -int delayval = 500; // delay for half a second - -void setup() { - // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket -#if defined (__AVR_ATtiny85__) - if (F_CPU == 16000000) clock_prescale_set(clock_div_1); -#endif - // End of trinket special code - - pixels.begin(); // This initializes the NeoPixel library. -} - -void loop() { - - // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one. - - for(int i=0;i -#ifdef __AVR__ - #include -#endif - -#define PIN 6 - -// Parameter 1 = number of pixels in strip -// Parameter 2 = Arduino pin number (most are valid) -// Parameter 3 = pixel type flags, add together as needed: -// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) -// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) -// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) -// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) -// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) -Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); - -// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across -// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input -// and minimize distance between Arduino and first pixel. Avoid connecting -// on a live circuit...if you must, connect GND first. - -void setup() { - // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket - #if defined (__AVR_ATtiny85__) - if (F_CPU == 16000000) clock_prescale_set(clock_div_1); - #endif - // End of trinket special code - - - strip.begin(); - strip.show(); // Initialize all pixels to 'off' -} - -void loop() { - // Some example procedures showing how to display to the pixels: - colorWipe(strip.Color(255, 0, 0), 50); // Red - colorWipe(strip.Color(0, 255, 0), 50); // Green - colorWipe(strip.Color(0, 0, 255), 50); // Blue -//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW - // Send a theater pixel chase in... - theaterChase(strip.Color(127, 127, 127), 50); // White - theaterChase(strip.Color(127, 0, 0), 50); // Red - theaterChase(strip.Color(0, 0, 127), 50); // Blue - - rainbow(20); - rainbowCycle(20); - theaterChaseRainbow(50); -} - -// Fill the dots one after the other with a color -void colorWipe(uint32_t c, uint8_t wait) { - for(uint16_t i=0; i -sentence=Arduino library for controlling single-wire-based LED pixels and strip. -paragraph=Arduino library for controlling single-wire-based LED pixels and strip. -category=Display -url=https://github.com/adafruit/Adafruit_NeoPixel -architectures=* diff --git a/Arduino/libraries/readme.txt b/Arduino/libraries/readme.txt deleted file mode 100644 index 96ce674f..00000000 --- a/Arduino/libraries/readme.txt +++ /dev/null @@ -1 +0,0 @@ -For information on installing libraries, see: http://www.arduino.cc/en/Guide/Libraries diff --git a/Pathgen/build.gradle b/Pathgen/build.gradle deleted file mode 100644 index 1df0235f..00000000 --- a/Pathgen/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - id 'java' - id 'application' - id 'eclipse' - id 'idea' -} - -mainClassName = 'org.usfirst.frc.team449.pathgen.Pathgen' - -dependencies { - compile fileTree(dir: "lib", include: "*.jar") -} \ No newline at end of file diff --git a/Pathgen/lib/Pathfinder-Java.jar b/Pathgen/lib/Pathfinder-Java.jar deleted file mode 100644 index d3730e957f3506a96ae0105bfb6da109f33d53b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224282 zcmaI619WBGvNoKgW81cE+crD4?WAKH9UC3n&W>%{>DcJt&$;(}=ic|+_djdzxiDAF zxyGpRRL!cVrlQO@P-q|^NJya3LOvOwuLI;Cr>_I*tI3I}3eic)i!*!!Qv8=-@Rwk{ zKgcD{mjKpRL;c@^azgS_;$kYQ^m5{NauegSGIaE_a58k%Qxnq-%8UyvJBNFRApbVm z*Z6;Z73}NY%Fx*I|9tU(3nBhLAqPVj3o}bQ6H}-ED3AR&^0xLSmS&cwPR{>lOwL6?ao7H&eNP&O~o)W9aOhqIxEeB82);vUw@3r%kU+>!frrN8dlD z2F50yL2e=REqDOaxcMTPo?fS3kB~R~DnCMWAAz7Zj5#O0+F-mSfAc69zJW6 z4-b;+PP+Eh?X07X09T{ali|o%J5pBOxf@Ic7t(~8SrW+_LSIQnlWHB_P<+E> z7h3mi9~IOD#tAo7uTTr|iQkemzb`_bt*nFU?PS+XyWwLNa|>4R65j(m?(?KEImeD@Xp6-YX9y;rkfO>a#96}5 zQ7>}FtV_ydI-aJK5Qwy*th~XdbOM#!z$Kj8a6f*VRa=y-m<@5J96;M+`uYjiATLKV zV8n)v05K|*V2tb#i=Sj?4lwiC(=dmVrB{0*1xFZi1BzIsl~tvUTV;;hndHT=DWYJX zn2>@k#^TFthzDeb%T@W4#+dVDFa9u!zSd^S$YVWvmTyVH#g5`IJV%i9z@P@=v~* zss%0zcH!W0zsmNWYI~Y`d--$5@#C1XG+{s-nw)*!Bbe@?r7AU>)GcYnm=WSVDvt_t zsa$U>`O+NU%l5QIbZ6G(AmAe0Y5gPY`F+%M{x zMeQ_dZO~H$)OG7biB$iB!}BT{Lit5$29l4mM`V&ps#6iaA0G zAcDSa#C~!e249 zW5nq}@`WkeFHEugM@;?Idy;;^%k-ZvRK->SMF`Qa+5LWPKUf=#ZU;xbi>5!I?>QgN zQbk5sne--a=($g~X1)Hvi)|U>GgXjSyl}TcV2sn-Ru(6s&U@6x>^R*#XEpQvfx)Q^s_8f~gn`N}zA zGp|bIV-a+F7|!@vs!kggofi6i)Ii_Vdi0KW^L3t1MWZYbGGI-UG$E=lI)ujEyz(Kn zJ*|HWpIQw&zh~e;j|xy1fZJt`ujqsQstJS?wGT7AiG1}|kE!<_4t$m8E&@0rFSJBMdwiE31usuu0>f2(EyRKk&t5}U- zDFq6RS&=AV6KQ4%3YwIz1hxy?LDd}nPe1TStU4LW+!2yplYJ$dglia+uxHzW0u{ch zqi%yEJjNsI?8)sZ9CgTkehk`B5TcrIY)~A4Ka|X5%`eK zJn;kV5AX+DZ58@>P6_3A`5Y&47B_ge*HV=1IU$qf@b6f&o5MjC`o$^{c`pOTn1d7c zf5qI09M>`~Fc8r8S7ZGf%qjjWOdypowKH`xbg{Iz6Z0@Ob@<24KS8HBE)5VwRJM4~9A&oKQy8qB0D(*>qq_F@ ziBb~F>H$iUBK+fskzZG z^uRORo0&Mq7Ah#q(4C68^(v>T`)W;pEqZ29b~tkx_x5-8AmwJ-P5O*AgFFOGb?Pwf zamk+LtjhqyCRZN4h9;4&!}|+_o2W)yz=r)4$HT2#OoQ~zP?U6+s;TB?Zt9?WQM$-? z4Y^+`6cK}dIuu}NfVq~it`fWD#u6!t#PMe5-fLbV6AA6Lg-ZGM-z%Yuqh<5A64dXh zX6&r%JB`M6vvXeDaqojNdIxah4(yoK`by1}?3C-L*bAn4RxY%YSZf2Mq#nJw_UZcv z<|u7s)+^%*rS3tXBa0t1cBh%(8r)A1se94T#6HSLXuQJW{l=lstOL;KH==!X8|sLn zl0uk7p{wKASe%n^ec=_o<)QBSI@x z!xG{gv7_!+DT|5%!L)*VA>Cdk9LnGa_y!)s_DkGi+Ra=#8+!-qi@HQl_wVP7Au+vR zZLx&oUbO|s%~od>I-tndWmQMIO~nTY5)hItr^@g0d?>UB^XPJ4wx^jsOI_Y-j#yg- z*DPp+cOXe|hJ1noFDHmCr{DOIC}7T-Ttt#gs4DcvGGru0Agz>Id6OP@_WKU#{Q+{O z4>UueHiMbf|0@uo`WAsGzf8XTtKt6*5H$=v9qcXbT>cw;u8Mpr{epbopF%3IXwi;#fw=#iu@pko;-HXhM ze`vC%7b~0`e{{p(pkb&1L!bpdQ@_O5Lz@w)sOq_-PZCD6r9Y&1Vg9mkmRP%j~wIJ|p_`f_KTwB0rA1g1^G% z2YBp{z)>UWv`Thp@^L!#%#h<7hQI1K?h46}^~>0Yz5xMI{Ed$Pm$8f3+nHIK|I^Zy z$CbabAU+P1G*~QIPy(rN1W;jSp}lV!+Nr3JQfi15!h@#e>8wTjCZQR!lrO+NfMOjC zstVm_V7~}`Lr?GUF>zD$<1Oc7{;7*gdx35ru-X6$a%z^^9Zf=2wo1#^8bdu1Ilwm* z1SmIa=PTDc(~5?MRc=DXAjS@~XMp6hl8y(7CD4$&@Tr z1KhHa0g}L`!U8_5hd_D?b|3vvog7T~!+1rj$B+su3gX{*R6R6+H6hB^xtPFfn-}+0 zm1>;Gz6c5)JH}fQ;ev6&bzFjQ_iU9@uExP% z<4(^PCuf}XH?_6k1NE7dU|E%y+eHfpO29YA6GxM3tk!<(C`C(tDDuLby~C21>(~V* z!&CkFsU#1vJ0CInEK9J$nG_yrj`6oqy{jk{!#yU$n;tmZjsDOWu8mqp6iXbg16x#9 zS_?|z>EU9WCEi_vfypgUDGTBn+81{IYLba#I2ecJzE;({*2FK8^J=*St~b$^8jz=&q{(i%ho!?mbbxv?5={zy9+4_uh*i zsIr@5R4K|i%3Kz$9&m+x|ostluER3{Q{{#@@PjoFzfEpNXQ#=3-21OGIQ`s`o zcGw!7U?ExApk1N>g@$ESXL)xy*v;8@JdI{XHr z=v)M{;~Kcm{obf`!1+fe94~nvQDLZ|7hu>bdWSiWP7E!B3!7;iiKQxibvisZ&=!%# z(C`eDeRHscYo&6?sS?SJtv}<@d!T;YzM~fu?1wjqiJK7l5DDV8Dya4x|32!;$)tW3 z-eg@Y8j{5IpuG4jgI24R!7fU4*dy>Oe8R7RtApehXc91HXSYkBBjDEx2BW=)=^8LK zYu#haqql(41BgbRw47$vtR^<@jkm`030vA`%Sdznj?zpW?CpRqqE5)@=a{F^vOAGffoiB@t&tb?)}E-DNet~ zPX#y z82WydAclJ!71w5I>fZYF%WPF`*KAp59G6MsSoc;AgBc9YOKm}qh{U=vs?AxgzOB>B zG1Eo_&3w6f>nKLsaNG9B`a`J4N+4V^ubp4lm^%oZud9GezH!XlD39A@x%GGoAbRX1G7v~CdXra>5kzTS}~ z&i5!3yNQpky2|a&lLOGxQ{G_BZ!%(eV9zkkpHcU@*)gTl3@P`kW2dn$cVR;RtjsaG zHG+pS+z8h5nLI=5z~Ukh0~vb!=1wsP!lv^sCAMUpz`w|i>{Le?M*lg6JfuY?@tb&h zb;aISyT$9He|A=5DfN{3^2w*Is?t|ZX&ZeZft%W;RQf|6Pz<Qm#MCN@^ia#=G$2 z?fUoM&rzU|0^-C?inyO`is)TgJ$X6E8D(pHUStH5-sSf(FX~yXS$mk@k=JS(Px`oC zUNyu+@2pheTYoI0y}?Dd^zz-8Hk9$*zij~H^8@Ad7J=wTgAQ}|8AJ4z0r`}H9i6D{ zEG$5J^?V{lA9?tmzW9I66kLVn`UI81Ci0ZDLRf-Jaf$gPk&;Cx^e0E<f|xW)MSU zjL9M0*=DeFb5?_HWWrXo#8`iO?=V+C>nqlemuB|rc<}5{f%4iMaoj8P0IdTApJ(7) zzwG_S5QhYSyQLHz-Mw)|HS{z(Zk|O^rz~=d0K0XEmBhfbK;@WEw`?MqmdB_Uoc$ZM zS+-w27KwdZZsiox5C^H>>%?=MDNI9+X22n|-7@)vMYZ2DL!i(TCE^qKuPfBoqVzA? z`tKNKGkY5w`!9z0|1!*A0@Eb$U+Wssmy2Nho3-tKMv7WGyBOLTn~MK)uD`kryLuu9 zT2!iHs^VhxU=y8i1~f6N5M(M#DmsROL5xlt`q9J-`Ub7N=h@r>{kJ_>ZV`u}FB0xk z+F#flce+h$PPUS6^q}o{i|>i+nD_Yn;L88w4W^gw+=MYWgmr4)F4Q2QiWp!HD+Bw4 znTjP1`^4h$11&VnvNK98R01{*YYB5{)t)aRhLj!5sOcN9k_o_&l7$tsNN_0S!9fBn zfB=%TLOK<%Mp#`>Er*(+D2mJp`deGg`3!;|BBtKz&t?_Qcth9en=xuio95gpsQV2! zUW!f<##HYVV?UW*&HHibosG!-vPD2?2lYyF2Yohd^>edJi^3&9fK zw(I+qnj!;gwihLz4xJc{|fwn06H#f_$+l)TrjFE=GXXkk2`J6ukX}Y9$XX%&89o`?*V4~l8P~hq+I;Axi zt!CbaX?UTM+UBspdQoXh6g)UJ#){KGRcKfRn;{Q)Wna^+(GiL36B@q*8*W+3Pcub2zZzYkPhJO@nw+7E#`b3+V14Y`IovEHYa@4a>jniERfnM>-*MW*>Y6&t$`t zyKIX~nmT3gV5wd~a$IGt@JQSOw{nSA_mWW3DpZC~GAk#r8#(I5V^VWy?dQXS@z_9dv8!L6FV%37FNm>1g?Ml)W*Hbd^orp?E{KEsKJTuV^AD37J8!KiQPT^*3D zTP3cpnB5cuMf?Tn)m_k9BvX+p_wnlY4m@+IaZCEN3k|c0q6Qz<_Pm}Iqy8l1Al+nH zfR;TvdUqSm`rsK~|FZ68|IV%N+={1{6G5Me$Nj!EShv|{*v!SBPh{bkOdOjJf9Nkf z_Y5Zfw%p85N59&~hU(b#I}&bcemzdX_1d$uCX?Z0`UQAPNfEx+I3uh7+BG-fH`Ka^yt4%-mM_*7EjpK0$Da- zu4K`KB?BLIQx?$@5hEni8>f-#IY}9J#exhE6#VRFuC3CZy~U=-gXOJ}K1HQlZ^6zq zJxz)sy#ou7w2kUBqhzvSNdu7@u7nUf{gcCxr&g?0uNPUiXlklbKW(y;i8BYy`^giq zTMRc}f2U)nNViTOGF{WGU=G%PWU~xk4IOQ^ZIY&g5bMD`n$~SzIBh!=9v$|)jL}m7Z9D*8d#^1{ZL74&uMkT;p4krEIz?obNh>wpOCDar>LpqgpUSN0Gr!iN&Ywf-5GK zd(ldKl%2!0mw&GtcKv7GYh|c0xUOb%eBq;LgdLpPp08=Hd)H3;TyE*(0$B?G4Y)AH z0$Dj%HTUXrtP-_drhJg_X*P-oI#~yP8Y>|y?>Z|rE84I+$b30nrcUI8i5Pgx6Gfnf zu0`1zmAsj=#5lF(GDbv;S4v@g;c$`m4R$vfhAn(D|3c>}ob&pE;Z9&ItrNGI7I%me zo-yn`Y$+BwW+-E&F(_bwOMil=L}!#iMV@c@971(o0ZagveUXGuf8RB#h{N$blxi1%~3E6qqOS;O~3QyzAvPu5eL$o%64Gnp(lcB?=ep>D#+sNzEMo}eF4RCga1VH?rF*Ao4DVDJf70`h z&d8Z#utOGt%K*+lybjA~)M3ILUgLsoNYB@7P>#$)G@=L;tm02YRQdDvQYXax%KSa0 z-h8sZm=;ARM%bvDWIH41NebEWvC>6RHp2i}5(I77CFPtGYSOtp^#o?5=b?~fmlCYW ztt2;!dpQ>Q1A0>Nhh)0yr>di&RdYj%C{V_&QiCP=$5wJh@bxDYTLE14Z^4o6k-)DU zd$Q4rxpwA>L&M3%ki}Su#Q82{6H?dv=UQFA&MydHYqX1Xm<_MrbO+* zDLr@iZyJU1w2GPW5%;ZYZ_>WgDO}U#>_NO%_y-tu6wZ4{o|O)qm~Qm>tng)W>MCxo zTQ+ox959Z5gA6ZFDmYWOF8UmTIeK7+zBrBhb-FEL_B3<|GqhnjFyG~?2u%0HkKfN&`+55)j6{|wI&a+{2{ps?HqNlU+Rut*WY)w7wYA# zO9Ea)^6%u9d4U+K`&X(a@Kx!j{2O2SzsM~WQ*&F>|3@XpsOs6HNTBj{e5|Z&ks^i} zC~GTYhx6$;z*q`PWdO;?Q=C7&V2XJm>u&=2tz6WY$PYS34px zJxWg3ILZh)6MF?SMUQ$0m3cWFZS&8`wbiY!wdu7P0*^-f=sEc8?N#JCf370{4_4?> zKY3-+usv=6J|1OqOWJWP76+%_0+?Mv8$OvuV*Xu z=CYZ9wd3Hz0%OGS_L%lJPQ)cm@dl)AN z)*Ay4esGyE#eq~Cf)XSxxHfC`qM|z{xbOSY?n0;Dz`OJB(KiopWkIkiC&I=g|B4ou zR+lFso0yZ7l5t9DO%#{jsuh>sp*-shJ5}8h*KT>`i9`_n`MVu;xww%&#FeT-MoCZl zcY#Cj-1Ij&&un*@yQU;;D*bO5zbMN-N!T*)*X5Ph-;TU}j!5~K2i&uZG*Vl4N%@=y z?&Rlq6wW!JAfleLk{qyz=}|CH8H{Mg<ZI)=*BUYA~QZhKDQ+B%53D^cZ>Il5BrmXB4i_ z;Fa9}N`b%|!<{!V7;7zps4KUR_EdInuPiN`8i$nU?P1TlqeA@v`)m4zn|wKv`4!|; zeC1W+X!WC0dOxra5PJz!m}lO)`IPY>D-x<3xb z)VU$jef)!udaGj3mwKya4;`!p+!2Q#aRA~bAE>-mA=XagdY7==Q38>mPa^0Ulb=4* zQ7Tp@l!t7L0(FDzPY0S0GZ0>G;$*3*bDYg(%B0^aE~N5xA0hg_;*UvlQZAxQ0J5X< zpt;&c>0Y?%i!=4*&-ZWC_^LNAK!^T9gCascNcze*rf3M`G5Si^l89#xs(pnZ0l}-= zmZy#+^n`BE&tWQNrK=2zt6Y^=vxOySn?~f(X4RD(DkaVdKPZ&l+kUhxM&f{|Wt)wi zU`svXJi2uW^rb77qRpfHJZq*p-6&edVrBs`SG1UjE^#%t=#?FW<7v0`TG?6@Pu7B> z76G%_#7EJ@7_~~6Q3;yGA7)nxnmnA41pC&UKddu^8`N45L$Ii+Jm958UC3i**2^0H zbFFK&nJyFBqY}yPS2n-zQ+N`-Bjxf;(j4?V$+vHzbc(af#CdDtL(=C7LonHuAwPuA zO72M$)P^NX8UWByKxlKgZ1a@1Wk&ISuvJieNeN4>%yaH@eCIR6 zbE)Z084B7|ka{^O%eoxj5SkF8k4%uPc3~wu6VrO@nSs#0^3s;HDRlr={T_6;-25YE zkQB)wB-C2PyMTv;^a_jd_>V zITT3Enx{&V)b$cd49yF)40W9Eov3PFRF`P$Rk9p~c|4P<@n&4ri-ULp!sM3p00hT&Ixnb zG7N<-_j4|x#h?^1YVF*U21H{X&Tte@CN$F+S^FdjnY z^c|9r>r-HRgB8%YhJouDsA1I&{%P^twBYD>gQN2{H^Rc(S6Q>m@l2=E6S}=C1=lky z4(H#ykNpuY07aYg!Zz;^aiD$Ozg)UI?I8`&pQ+xh8L{xtX7^8;WT|h1t|s?izD9Uc z5rOt*jo#yiJF64w#V8gk)RH-KlO-?w73$x%B>kHSZur`MRBT+Tni36XRVMaxr>Aq! z7HSi#_S|G18B7H`C#75+y)jv0UnY&7y_k1K1`Cl)R|McZm*)(PetP*cjMtFbdw388 zdYb;utBgWm`uuX6-$bWyHPGyoN}n#^@UW8)#5{+)6BQT3!b9oha3CnoRMWq<9h)`F zwmF5}CTwvrQhD}!c{G$6?xq_vk8HZ6we&?|N@0#X4pmNRK5bo_q;+a>LP}5CZ%L`Q z^8PHHfoo-tc$suY6XKP$QGK;d7?NC7W6QyOiRmcE95mF5#`A%-dgjBnAC-*%Qa)t$}}oHlUULR&FCUVfY~St)fHS~d09GbUk6Xc1cYg-v8%Srxw;;(hY^>tGUEpx?63*2T1{Si3*X=HE`ZMk0t z+eqk_5pqs-XuLZ}w@&RdkIDK&=&mRFng&u+SSkHVU-fKLBth9TPjrVMCWN@^lgBsUkQ{sHYnnB$6 z24r&AP%`c#tNScivu zw?kHFL43+sZIDu0MT2L^t!C)^Ph9NXfrNO)@z!SGLvX*lID`l+*1_q_4tfiWHQ6cq zjX|5f9AxjCwkH2M{1ryB8{6!xDl}!KJCqQ%wjD5D7o=Q6XbnMKs#uf9QEve)gLYo2 zo;&CR<_le&)eqvB)m`GycJeuOP8}ThQz2j3h06w~$MJ(WZe{~_u_YjY%+?qUp z4ap$akU8YPDdICEU6*_SkF_uII)q&1oh7r1%~qa*$FnVZk$HP zyY;npi@#p1UsutogZ;=cX^leUb+})Kf{XnFKH$$F=K$eLy@|~z2M(^w z-3tN}`swwa2xfbSAX@`3)tJmpgKwwBZEYQ!jDCeU2zj!fsO*ec>hgw29s8Q(`|5p} zopUqxZZ&Uo;dKH@IIh$)3LGq}2>Q4~c8^eV-ZyyBdbl41e~s;K@%bvlT z)6`vTI>Gu7E^q<2ru~S^pk#_b_Mc0$;1MO~qBM?xf=*?OH$<)ljn92+{E2Q=o5hnY zZGX7c+1$LbTokwVEUhzdl<5)13YS)b#I~#~v(BV(k4;78W=?c)gxbK>7U& z-2D{X^tVbnZYXz(3)Ibxm(ClHw$Uo`nX{Q=>vIlfmRS{toMlVkcY9}nV#*7qD_W%i=Kaaww*SRSXBH|A7zdQ3Au@FxzndQx| zNl(+KDPFYKvhO0@I)(r*=v$5h9mEu5?nJNW&Iwo=B2Rxt`!ht-D0mO=&QDM zy|1WJs4#fSCU9vAG9LeCgiuFT>G0n zoYc{0rq9UMH;8%UyPECQjlFFzfEAVSbkm%j22IVT7)Y27R?i9uk2&V&Im@33{)XxQ zx_mk+M3i@x@bl)BTG^tMFJY@SA?q#j8nW%AD}Hlc{J{>~wg6=Ct!j4kSZ$K89DD;v z$jF;@a6pJU8P=mei6q{fG}W9ql>*vR9O(0Uw=uV0KLNHbpgB0_8kZS4`14Q4^8~E|Q&jJ> z8x$ayC>uX7O)kD_iYzXB!C~A?fKJjWDQ_Q&aO~Yt=i;yr6N8s#6|0UKl zc79LaND;bW3@Lgvu*dSivV+fp#p=kP#b{8vsw5Mq>zR59ddyJ5duai?ZE*`03VC zpit!t5ktvW9N#|2b8ra=1-a~2yYzkBaZiI*(!x%~1|joh4b9yU19O*owe#KC9F>y1 z3UN7C=!ke`Ct($GNe`C*3ZU97pWcL6xKOheS)p2VgIu%IXhMZ-SG9E|58g!N&htLC zps>E|9^p2yE3;Dl)Hf%mhziU$G=Nk)!}ZNo>!K%!?N#CU1JaRnIKrx&-jVT#v)E5 z2zP(9`lK++1-!F{3L+eb`uHN&O*l~OUG)6~!gV0xLMZDqfP?EnBi|#0bG&|lU3}zF za%uP40vE}GD;`V{XRloH~V;7__(35pLJe9A-=ZN?oQhjrv5Ap@wn+wt(Hq=!c zeawu#kJf&IF`6<33q{jwxDQ&B@g-wULC=V z17lWzvzm?|jp49~&uv%M#z>Su=?phGtwcJAkSr;lFhNfu`nst#?SL7UENQnL934A! z;}o`88dc_lpQt9fj;SucmJQ0rx2g7X+Y7l7O|PZs_%aXVpC-8W=M7kAj*4)P(S$;Q zfAB@f3CKsCtN+Hp45Ae*e z(rH!d(y2(5$%m?`mw5wuUkZJYX;}Gy{KERgfeFSbzP~;3Bwg>ZoDAqbo}-divho-@ zEWy<28CpqTA<-6B3N#E_GO9G7vA}@0cE`eA!3@`gjb2e;#f)pd2@UdjLbff{@Vb{a05mlhM>y&sxprT_(EY z$|y1P;jfwppaUo^QloW>2=0C(2x5j>QC_p~?mq%pC>p6I7!(@hqzropbHN8NoNb)q zxk&Fc_5rW+S_4w~K#{-kkA?}Cpc6}zLH2NwYk!Hyfd2|lZ5Eu?7Nz|t8YfnQP9MyL zD9Drj<|q@ebebW*(Js2tt(dpFrpFY6I=IzVxyOE`%W{-sEq<)UB3y!tyyM9GE?BPi z&`GLr~Bf!gU5Ms*y--ouFhzhHyh-nw+@G#4(o5T${FAAD&TAw(f~6x@c_UZ& z3EOc|Z(B6Cf20z&|FDR~@)+ra8n@GtBeu!6G6@$J9V#LY7~^8kB7x&6-qp3_ zRKWgD1lLhysD^FE*6rMD;qmp~>#}T4;a&Uu!4w#K$}y_TqH=Vfo@GXE`YOw1Mt+WD z*TSUr{J^p>j2KzVqcQiPP4efA4ptqyHNH<7n8B!4vzLoTN_lZ3$A(3og?--x$#gYZ zuWpi)8*dR4X@Y0mjCR$DOJ_{0o{LN8w^scjrVdXZUYO&zu&OSd$Gh)jegbjshGds} z22&nG(Ry!(XasXvT;0rlS*IT?7s>1DdonaAlUN)i%{8*D=BbQE z<71-EM}^VP_y4$VLY_f>y-wF4J~o*O=I39`(n1FTtdZ6XQlSmm-Ym7z7^BPY5Q4w@ z60~S?KyX>$K_y3@{+t+`OD@vCajd{>ZvEA71Y?=)n$+0J1HYea{}wXg4~fMaJS5B9 zQom>oo{3PCR~Y&|g3oV6>Af z+Y4(pc~8btTc3r=c;tb$=sffsafUkPTk=2`c4WFWqs*xLbs}OL=%28SKWRx%vs>?X z9_El`awq)t6U^zX=TLoVe&xMKgvAD9Ng(DEe&GYc^93VJcZ+h2jYj8D7o7Yxn zY+3k8qhK=D{&^<3zf34`pP*_kqBhvE8pNuL`GG&(aN%bchNn0_u9iOO2;ANo6m&mp z?q2ozP2XAiJAB4o%?Ey_DrkL1uXO*{L+YW*k^l*R*Vlu8%<|_g)!Ap0v(6`n|IUNG zKELbxHt*)Ezd?@a`}W(X<-50iQ}t(NN#$oI^3rG3vDVV3+;RJdeY)BEcK_LD>L>4+ z|EhogLl3RtyZe67T}@MV9~VMnHdfZe=`+e}xt^Y;eIrc}GTu#uwM}wHdVB^*8I)9+ zlWxL}01!EjQ%~_soiu7tY_kP6*NDA@b|HPk3LYM8snw+;BAdrKo1s6s?UryQ?+%tf z6Rw5txSOc8FU?Num_cDeZb9maAI<1XlqdHBcRqY~o$!T6wl~%xleE`&;aBWTLMId? zsz3*FVr8&|q;N@;U=pMR`tS)+&?jml$En79)sRGyOGok(4{{{bt6R7UqQF=bAy>i^ z4_qO&ZHL~feJQLFAI4h4*)oQlqJ8monE}j8N1|Jg1D*+`+15Kp8v-sR>!<>h9|?6I z`6gL}Lx)LKqMfhTtwDE^U?{H)TD@Wkj`kvV2fG0HvzJ_eg^Bmz0iow56fZ&Lma zN6a;J5h28-p9IGJ|bSfGGH_AhXwd0KOjktX3aq_Ns{m)jTEW^ zz&{N&cQYd7uDd9CrHX+xordfC0~h#oTQgGU` z2D#O=L-N4epf4fKq6@-E;KwHh1zL?yw za!=mJo=tooKM|TADtXck15`7GP0kC=j_7L*P3SSJ4H0%3Lf_`O%>BV9%8Car5sw443)o268a6L^T-m(6t=Dir#E`D!#Y8_ZtWX%m#x)S+6gM2J{AvLriZ6m>p`X z&JG@kJJd!j-~9!_VJz{w*2I=M#=y${AH#xJe8E|6%d>K1pU)#|=JCym`*M#v z+#JOShL%@!CaX(gB6!aV9)5HCsTxv7vm6+z>r zM28&hvLd&IjUt|{D8wI)Eu~6w#+)o5+tfse^{}6p_i1G3%vYd>vH~t_QQz$k3eYjFd zg~j**-fKyUim}Dq9l?QY!a}7&v^01J(qX}e*_-M`8+Y-wy7F6~5s?<>2T2(4G~F() zVCPEREyCl)6w|t-9v;P4PSj48#iY1Aeh0EWM3d?8ZTC**opH7gScy=EnWx8+@eo74 zQdO?FH8NH?Ol_{&7eabfpj3^Hd6LdgL1fv&sjSjG_hvEQIFwVEMG}508UE2pWylxf@AEP?3`BEhPURzIh4l`53%N6v!VAjL*p?1 z0l=e{%r}QmFzA=|A6oq&UTlladB@;0f$zZ>yO=5#->Up_%Cma};Wkprti)iLiS~NK z3mFBWxI%zah~>i($uTzT7S!`xWqS^c^QdTQ2T;$1y#J}CcWJ4Hr;cjtp~V9 z9&KfH6V57 zQ5#|hJ}JxojA3T!2o=a$>W#U;eKdnBNe5W3!C+V@HnX`g>u@rxyesvn*?Vq*nRjdM_ zUU3Th4z8!+iEPjzoHtMy8q@l4CUY>xxx5PHS%fzanG5Z~UAt+KV#GDRzb89@Qqlc? zbe&^xZ?U`YciUaN-L>s@*S2ljwr$(C^{Z{$wr#sT`~K&=IQQJSYcjKvtW4e{lVs)j zJl_Xx5g7ic;-5=ykPJjN!ZBYO2tln~q981_A_!+bT5j-;be^l;(L3H*(wUv;hCWh% z-$NKwDDzAD=!t?k4P4t?2HD8>ueEHIotw(%-DtO`os(_Rf6xd6%i+laSjXL+h0I|k(l%pIPHlqDJLuC$K$-6X;GfSS+1*CvjfDv&rHwc#g9#w-v|i1NEcn3|rsW_0n?- z`i!_V^JcPfvY1t_ReaJv4iQf=D094{tXP5I@`PxhupzQP5Y#yZdUoJvHzeQ@z*uC1 zxx4&l5`)wNu!g=tkY&QA9vc~C@QtCeW?3LHc>%!cFzGn1v)sj&vg7gENg z6hbx-g?RxmhC*Gk^D-Ze#_ev(*tJzqfs-MGqX#`=@l=*7!FBc$-9vR=g>_!ciuc9C z_tAs*$}(dw9dCE6OqQ=H(xa_>nXlY(_PtkZRK9}3IM(2+4-VA^*h<~TUgTgFJLGCP zM5U86s*k4Avjk%HR`NsBs@Uq&*xP5MuTe)`(Du+?sEP%($nFKtqO^Hkv+>_7b@Jtz zpV?j|1Ey44UO5M&n1&*mGx_pltLUM#5yOR;7jLmd7ZhVXrWv2%?`=pOv3bc+@NLdI zXYZ6Rt=w)}bpR)hc-ZD=fBt;5JqpEs;n#6-$Gw6=mKy;bLT?pQ%buk*4!x#NfszL2 zw5)1$Ec%xRc?XEx{mhzEnP+z=g+;?o2J<77%U*aM2_i(DIieLAq?+BhsfSk`%%334 z$KA%#EBc+Hxs}300R<*@zxw2;JS9~lI<9w^O z(Qu<^GsFoObFQaHzyQ+uaM-(371qFNG~ziSlRsVPKWksIvVkgP9o2lWb5FpnyPx(d zN|7hzlrX3Hiqq~g6<3uZ2W5?%JSb%a3P$VR-InL~F@NELr#BbYM>DYyCIDPCK6cH# zk>#s392RSptI@=HFyS4`t|uen!P^^RWwh*Dx?vEK&-_}acC{A(*(z)1MDFh_C$2;j zR42CMx3C8d@|6165iVPHJ6& z{goJeFO?(H^+0$HhvR*{ekXqNW;i|IoAJI&|4;_bZM}vkl6u73O!5s|zsB70K5f75 z#QGA`8f_q&F%67JE{1T`N@>U8*H7mNU#_UYwjbq`+J2n1!wV{Y0bA@ji5MUZfkDRl z{)W44;by!UrOy)UC>BwE?2xRugH@F3TtZLIl5= zW0G#BxSmwiN`*RJ4}vAmw*k%hih#eKqtlG zh_6?3Hnpa)Em_|G(!MkK(+GGEL&yIxPMPZ+Ey?5&bV?5|^#qY-J*`$I{X$hF#2fiN z7Ue{?TY|9C$}iLmJ=A7$S7^vIZ{5Btr_(&KIOBM`==gRakD%Ha_F$_e&VXP`UjV~I zvg3oB{^ksI*n?**DQ?T4MX^sQ=XHQ4P)yR1s2Z0@y>?e#G`5yIE|t-_9N(DGB-7aA zDegl?mzvqBMVoSwnXiRw%Q|M~SW*%o&96e;=6p8!>3M>|NTnD&H@e|8uJ7}A*-0nh zg|v!TO^Wabi~l<@rsa^RO82a6?#wN7DrUId0IIz^EdOwg*fN)ZWz)OU1?(zzlfvC6 zcZg6-wyb!i>gYt>A#uK{IMt~@ET!%9*Izp)r)b@t1C_G&Ra@!Y79?d+AIOV@p?}D zB;igbRv16szu$*(T3PjAk3^$4+d@?Jc9ZU$7i!ry%0Uas*XiJxWnnNJXkd1O1>~;z z5ua+IqJv5GW-O#0d&V}e*m9i@f#B$Fj_ve6-XJ*`ZAOYxQ}^P&&?!L2lfN^W6j43- zQzs(gjmj`n%GnEK2$VdKe3E56ulFckny_7?Ku)qL{ob^_ctqXMP`Z+yr(f-Zplt1iwQe;%i9-!cfNDKN zD;-U;kOJsBF*;U;1lV_hH^D4^ZPfl-hp>RXC=*}j{IDDSG38>)ykXeIahUK^|LU-G z6ut}LAeIO}Z-jX?;)!>m7<*j!=?||uf?u`OhUqk(#H=~$Hk@<=oqiQb>GX@ZsEl)A z_d^@>8l^f-yi*ULF?_Z2%X{{nV>sLx5Hv!!REhSGcplL*isrWQL>cd`hJD=|_B8LG zn_n&TeBrWwoobmp(oLeQ5f~K0=>F|`b`G74ShJ3Za6!wRA#Fc@g@bvNN*dIT|1faT z!q9Z7*B_6z*w;$6Aa%mNR(TcZq`Kzes*PJkMb^NQso#(z5%=pV>i|Nhv}U8H~4Yqa?50ag}X$yZV!3(J9!>#2qL=EW<7> z3%RJJQ?H4wa9S@gFvZ4TvXlITzSg)f`PGJ$MxlDi*iD5ss?r3FR;HIwz7ED!ta;KK zCI~ABv8+I^pM{X0q}81Z{d`QGsX6Ea*J%QmJ+7N?+5>c1OOt#Sh5BSB5OS)EF9?Z+ zrha0a_E|8IU?&#V@%M_T7;Iera$iiH{?>kozz}wCI6#xHTvU|P*DWF&Z$Ar#HdUTD z^qd8sENpe0__=C8f{t9@Fg-2WBb|tM!SCLUB4tC(mpqrsvmt^nKVLqnP?Y%kcH`Du zoS9aA^yu)XB;t|(%?H%8t-sahQsLY1#PJVr#4MvaC5epcH=ERot99KQw)p7oAWSyP z-9G!VYDwKT{+Mw^Z3YL@H~SB4 zG)Q@qZb}&3%D(bdbY`i5)Vj90qN!v(buaZ*X+jGH((@cGx8EXcZFXtfqG#Sw+aqV( z0yk)<-T~WmbDl}tbPJwQ+rD|OY1?FHUzA%7!pQ?uS58UsS`lRz1hc|9V09;YDb} zF>HkuvguzH_3I!st69{FsiXSa{M!&spo)(|>HLmP=7g5ApI6w+P+R#c1#4v?cT1)P|i(Gz;p@?J86g&bbx&B8Y7%l`l? za_Tgo>D$9sQCZSju*)-aW+x2MSTK5LZC>dqZ)atGwsB!?b+NX(d0qEvQ)lV2s(MF7 zSyj_Jxgm~dIjTEkx!uClTQJfwai=Yq>RFYFGbtMiCV!f@7!PZ*9(wts#p-FLg}h~D zd8OG)V2mctbk1ACIdXn=R!dTQ!m?yVK#sk20YWp6ga8Oe*+#~gUR?xuO zAhFghZoXb*rJ9lVPQsaTsb#=aH)v)M-V{!kYMyPqnJXTLiR2m-s+Ho zYQ^TgG=wzmd{@6YneUJv1PAFz+$kkc8kA1E=|h(&QB8oGy1$dsBfOV;=ekcHv-6cz zv-(H$l1^uXHc9N<^hVi=6Psn^&5@x4=u4OT%Su-5^xhP5C*jr`lJV$fNf&?57)ggp zKPQNaggWjP7gCaBlUP4HXoJ`)_4bCuORC>ie3fi37U|pO`+u?v|BW#G_e(MNveJR_ zE@KLmmhKzbO}Tr<&6_#*&c?jjqC#bv`|#97`KGG!*caOtnLRwo#ajVav*lh6F4fAa zqS|&X${0n=iBzejt)dxj!I7Y=qPPP0z#XXv(jVp5>u1(j@Lh;WR0YD;Wu>LrGm%o% zEUGVbz69dxx?J>~L=-F2d-*ozZ%j>gRU%;NZ_4rJK%k1st&ra5l66$z4unk&W!05k z!P-o|9~IpLncuENt6GvvFAAN-V=YaHeLO&wnvj=hwZWV$dI3Ty2mxGPL&wVV$?ktK zj~u6NF`JqenV79)kBvSZ#@|0iIA@mXOq~Ofp!CeR>F`cv|wv)nIjS`Uil4W#EjWMOHHZCUcK7nO>)tUDaP zyvJGpYKYD0M0w;{eQ)pND)3D11B9if z#y#^MHY~Ig`zF|}1`n&sA51e2z$pTPx?A3j~cLf;#4>(G%e8&=5ueKBjZ!8GBl{- zU*atk;3w!|$bM!!h7Inv3L*BtJj>s26jpw~nLoVGJuXT#a_?yuuT|F>@hpOmAa9A% z|2E>u0r2F*@fsMLUlLq2Tc%!vt-qSb%|t#r5j{OIe^yq}!IBozQ_*CgOI=H!O`S|# zOr2(6OIcA*j+#mzOPx!FPC^tqtO+!Y*_?^1c|kdUuJNWv8jJ^?thq|S)4FLuNB?;( zw?JD-HgUQb29qU#^*WM-4u)qNhsvIC!Z2kiv|hhD{oDy{a~TH3aUsHgGHN9dc##s)^VA&R^H?{|M$ihgCa%co6Ys$OZBr zV9516)4htSPA)~-C4#)QMc(Bl?X4l}J%GH;guLa1{QFHbuEItHG%evrC*?;c?N=k= zhepynfwa4Uv@1*8Yl*b$iM0EHv>WkzHFcHeGfvr_z4y3!w*U0%( z(A!NHEEN(Lw|zGizGvxHP=&@1j~2rS#E3*6er4(he#4G(+i`X=p^W`Rfm$9BN%>^p z4~g-a7Su3{edYFJzGQ*NQy)~#Ph2!0*3v;SYx{U>@I9-{7%Z$J3z3X@QWI7py+y-` zNo7nb&e8ALX2}Jyc^HNSgFq2p1Yc%g_;+N?Ra4oW&hqZTufh#fO0}kL^Lg>6hJ7jS z*$nj3Ns@s$4l`+1Cq_$+`)Ohq_Rbk&aFbI!?rCny-*b3>hR$C7Vmu_y-SHfCu)EB{e zX2h6Q%tCzq{2y@X{{~0@2{8NzF8v3N{y)^{VSO}g{681!+t^>f@cu`;|1UBMq=Y>Z zZ$?LLW=wRmPtJpMF-_d}y*kX|k`$yS(V2ju>ClLjpoW2sAW+M&3IS2uoE63ipL;C*=|u$`R{4>Ou_4U+GtUQAei5q3|fFR4b~3xvxCIyO|&bopi~~0 z5dNIQ?jZ63J2;S6UOMKSMWxCJyU`&Tli!%R;A!&hB;!_4re5jT4T2K2o!QQ={z@K|VUXq;o=$;hY1d&qLmuA?^R#IXFZV9oTtw^EUjqJsfnG5Hp3~J0kBaD9rM)Mtqj?^GYQ-fgS`FAA72D^d&VFzqH@ZHoOnwQTo#!pyAK zI-e9J?o1lKaVB{;iDbeJmmuXB@~TJ(alf$Duhkh(Q(3Xfa2_1_(=+V+LPt76F%J~QBDx! zt}yD1J>V3AT3^(Bg!)GTe7j!Arrfo>?U$6Dwhc<&M(Y=K$Detk%>?!-+?E(OH`6X4$T(nb}#cwzjzB*4LO0sIoFw*HOLB~90?#Ild z6XS}K50{aN6%16lPT0Rh6L6<3zH66l>=2u1X7X_-C;AHrXgy}BG3P!BB-@6@0CoLa z%E`P=+kT&yLLtkBdPL*YT*6AWYES4HWCg~SoN)aci@N2p8_J~>S?XMoFms7NGB9tj z)n8HHPqs>sK*bgHiz7JaUvj9>A+5U$N(kkfH~0dPrZetjGo0E`TJ_0ifV!uSN*?XE z0dKp_>(0G63cCFoJ@#)Ei%fV0nt}6kuCjb>294r; zz!XUM+7eWpmbsFH5+IWpZLV`qXsmoZs$|kB8bwT{1NkttNxdscyh@iGv{Z5QEXl{| z#^%t8G=3rdFiXa<4H3F@;njtz<96ME+D2k|ep}uhu-r*Im0R4zx%eCg<>d~$#P}gv zQf8x6WqzAf)d;3IWsY_1c^bITU= z_kEVXwPM>HrNZoJ*bAj|wAI?){%#ttTp~^P4Q5a>!Pd=^Ca1!(w{Ofm98(c@e``tn58GHHuV)jwI+LGRAfgg zgWDrzTJbN3sdx6r>l0i77e0~!F=!8I8SIf>;%7`j-ghw6AOOB{v)IFo z>Yoz8lhftQtkPD@Lx(HZJ5<5295M!7z(6aHA$|yRC#&kd^sPtyY!8Bak-%!zm3tK34*FZy@n` z=f@_gKOT9o?$}$P&IWMD;tXy>CqunEPk004LinYQ=rxP7k1ui!A$8R|zK~E<@ol~% z%f|WN8-fbbfF+m1JQK+^>KtaQ7bLEgpSc+CzX&GrY0WL%RX77&&fd5%P>aWMihnz2 zXFx=%Zhuwo<11UH$+h0W9kb`*)R*mCOqJy(TIiu(qXxs^XDIeyw&FS%R-Su{fv-Cu zRPw$*NSQ5EmBHF8X0qgUcJDJUt!_neYzi`?GpWhGA8OyEzT^P8^Rf`%jEEk7Z6M$C zuuwdA2q|)iG2hUwEoOi; z@j+HCa!6#Ww{lDh^_aMfEMYeTC_^M5j^suN8oa_luf@OGLSZHh7o(dbLSpsN8x44r z7CG09cr+F;kcNy>i<9}Q@S{* zL?o>lH;iF!L@{qJ07Z|qZQPT%>?H6Y<1b3tp*@*2ZWF3KKDxy((RV`cqQtp6 z;^h&pa1K+J*8qg6xRa-^DR8u|`jx-#PUA{gROgUd2A5p#5-#816g<_(bJm85&;kZJ z5gY8x?jLgqi7#{K*JGo;85W*N=Q+)ipA}cv`o5 zUdEfj=X2uDf8wkTzY;bE*|^`V{Tp$K!!Nh=PG8U1PWa`q54(r`j^-ey7?J~X|LO+4 z9PG)&NcVC59EbE$ujBIDt%pD1_k+vq1y9(A&FCzlo4+rxb>IEeITAXZsvM~mPSS>B zZtqpBa)=E!S%1}d* zDPe0ciaPbHJPHzHbh>=P;zF$imNADTe@}wkrLiCVcyn!t-CVPBl^bn8GnFWhC^F85OMKT_Y2VKS>UnGqs9jplT zzXm@(7RFnP8AJ`&&|kbB{or6O1WV4R?Q0XEKJNCinEP{v_0d;?x*#X$K~rzX5PTsM zfu<5_ON+sYIH<+x?3mzC9K`8-(-5|yj~Vl~w@z^=3=@3G3XJO)VM8m3ggX~S30mM6 zX^D(C;cIIe{GZl5B4Te*Nw)m&kw_O}7@9`b4%;wPeQ@j1|XUuZMSy%&w z?9X}zsM0Fs?IAGkquV=1J&FB& zTs15Dlq_D`tl8403v$5E4Ty5sb8rVbi{kmL6ZY&CumGA;h+vaC4AS#C6N50q^i;IS zj-(OlF6n6tsfTVl5(n;CK0J?Sz&#VVXykQ5p!MiCS#Q zUP;lwwXf?)S6v!K#pqy^rd~S9@g&)ND)l5jA@w8`U>W{z;%7rm0rcE|8kd^9eyHEs zNlapgj>-PbdoYso4#b2Z_V=M4A|!AphepF9&*ZY3lrSbfG3>7~{q%S^3i%xx#52dB z!Tf?n8Ik$_e09PjsH-93CJ}kBN6J1D6B;Ki0*P|!{kPnba7@I9F+Di)RSe1@bJ@{u z&kT{Jp#HF+l%|K{cO-VHIVn6$n|;eUxFU_P5P5DJhksGY zNv#`M^i33j%9@WWa+O;>w$hhs2L9y49cMSS`V7wi`dwWL!Bkp{1NtW33+WctbL-t0 z^&HQ%vkl9>>@Pf%+cO{XkAUvUX? zhOPjs(wFYP<1G!dxpWO`hQRVVJj_4K>y=(&@V_w%k|hdv;zN6hr#X+zOUH(a0_-~t{l{n_%WwXzxHdk z-f-8MiB$gp13H&)d&VhdDom|0xApru*T%Q!HQd$O*ZTU;^Gjt-NqtY@OHpG_x2odW z4&HX+{5NWM#`yR87RA*~uw(h<4W+BZ$H!)y((?<)zntfz7UjnW!M~iQy-oSolxt~Y zPfPZP;?>QZ^AE;zOMkYR?@kA8)7MrrrG>BQ^|xbvPmV0{`cAcLX?+jpwTyx9*NWQJ z&Hf18%(sv07sK<*rbmXp+Rurl@6E^SPtWrUpM1gBRSYNJPJ2I`^w>NX+>)cbGAh&2 z{;9xpbZZjFZ(1xB?`iQ3K z2NxKb%$JQ7w9|^M^0BDkS!ZFtM%Wmu>){S&y^Y!@tWNaPqm?pfnQEb@F0{!@|fBiXAQjJ)q2CrK!QtIgH!G1=Ud+!cL$z_SM8SZ`?5Q7 z2WEg%{m${597sk4R&k21mTAhhhE=9#00bGMz`AE9GiN)?NmGe|nC1>;Q?bUzbf*9U zApLF5qS=08xoKX3Pn%6iU!hi6PVN@^R5^4e+$kRMcqg3$`aevw#vL^{A3tlYxjuw9 z;r1axXeSI@uBnKjK|~q>ba>Dc0koak&HbShoWn8Z;s%`aw!f04siKNT}4&#D10G55oWJ#+jGw{2NYPi8juydy7GMJ$A3L6YN-}cC-e4wSH)}niQuro-6 zkikt4GU+owP&1g`J?TPC=;sFeR##CA*^TnsaC6saLroCpv?ATmt|R8L>t+YjH}To-#F{87t2A|%q<_kfn2)>t%dvvz8~1&e`JR2?yMa_Quavi8@=OF z%A=>y%<8P@S@v*5RXhOY<`<3VQkFTxR{Bva(}Gw%-jU0TX)ZDh>qHZCCDOc&>H`oO zW;1%j@&!}K_lvWVX7DtknJiqOC2>mr!7S62Sa<~MTw{2nvLc>(?CYjsEHY+TiLQfY zvHHVQjn%PeaAld)`CC2MSBM4PP~uJMW(QX7b25$Y^Z^|I?7rR;b3EdW_5s_Yb+bJF z7{v4v)Z{uGFetWCxGXVVKI&NCrL=h$A=MxGXj2zmKa$A zW7{XtL)#IHFEjKa5~d&cwT*{8^YkL(z>-UZvTN)(fc@cc^)3E4LcFhp{)_Vm8q++-& znc5TTlx96K2tjkfLLLz0@!~>g$7z!Iqfv{VIRg#apC|WDWE0Kox2$Tw@1OoGM&RhN z0pGreU2}VjvEC~EQH6Cvmb!t%CO~(z6Cgw=Iz%+MK&T65Z-#V2*;o1Es2!~fbi?8C zo9ve3gA@Fv8w$<%h32-f54zpx=Fdu_vnw6>-$gN75d{R8ymd$w&WbFVn~emINJ?SS z;6LeqZTXhd$^x|>HWnP?-c-%&=f_T)T zv(SJ|zxjn#Qs<|Y3}Ol_sUB$VbPGfLT|`@z)6ENq$|lDZj##CrBcPBW^WmSR9rXH6 zF)laNPvA+>C?86GlSCsr-)kn zH4Zy4DlMKc!$_13q_0gesUxHcH62$S&T0j?Rm^tJ?3h>r!ZjwpE5L3AyV(zV#hLk|@;mdw~&$?jbWninDP11IdbG|jqy?%d5T+^eM3k!po)KUv3myX31i=8Gb$Z)cr4v!#y|B8O{mkbVYiLCl`-GS(2rC z`Gv1DD>8QWp4X5to5_6Z?QO>Fo)QwPo_MeOnzYUztRo0&T_wcbDfCM>W29*GT7 zw%8Z97rS=Rl8M|@D{Hcu$;}elmhvQfj`JdW57udVk!`QAly8x(C+MeRbU6{AchQ^DfR@k>P zygs~YenWR&hZFYV^+{1SZs<2xzV3%UM6bp^nY!&(2La4NMvelkUNUEEp%*8RX^xV< zw_n_Yk_}+rH!%6xkIM*0}zk` zAqoGqzZyW4rWDsrsye)xOmMVtA*#nuD?5S62dX^`uF+awVm;bFWB$cj`bWY}MqjUf z)H`oq$wUu%4+`VG+MmQh!PN^P=J7p#u0}RI3D7G2p%GFjR8x8gQBu%-Iys-vo>}wt z%MCjlIc;F54?V|QWL;9#wnCm>iYygZvp={7c3<0iNNF; zVDaFykiT7&p_18yG17hr;uH<1LQnNA?_Oipx$Sz1I}lO?sWBTlQZ)1;-~cu%ExfHa%%D+!r^&SJm~9CG|IgyHgsWLUOlfY$m;N0Mx#`XW>9qnhz=Nj>tL zVZtXPs&VK&mZbAJTiG4cio!KvbZS!sQiSQ9xygSL`?nQ&ydze~4|jM7833}L^-sE? zj6nB5R;t9PE5Btvd-{e&;)e@&zKm8NKI4aepZh9~WUsc#bE1(H5y6IMIa zrcM5|?gF6GSOcDyi-D&btar9S0X?iHrpL!?Q=3xgFvp(tYcu`swMotMBGsnk2|E75 zZr-U)?k;kFBTQ_5MLHbJ+{+N7%ZTXfG83~`Ry_)NMb0oiM~T5)hHffW0-0i}3p9|{ zm&i8()XBjHovdaQs@KnTBH!cPge*kme}W`Jd4{GZ)lX6Wr@^@+PJ!!-JMYVK1H zLR-T)<&#MhfJOV&p9%Kc*gy*-F)KPg^{1(^3@yYaemk(DcwyVvJ8kmwpNP<$5IThq}ghy4%R}}-p(jRUZgBlauxc z$3{6L8_1BuVyP~9uQSejInqSS>&>nwy5WehRx&_r6`B8HLAWkQa_-goCiUQ=-(82Z z8Xq6FKs9E_X-D+?f_ zkZ&EDf=k1rX>TQ9oA0>D%H1Uouavvdq27?#a%o^+fzjrU?VBN&^bPxu7=RqxUP|_FeH~=p?;w8d6s!DpU>v^CW|d-%v!Fc1?OX{ zk*>gf_CMuwT{XZ}GfZ})VNipwVZtCujJYWv9tq5hg9obQdE8a19^@923L4qMBEi5Q zDFK(t$!`A5XnhzvA7mM}$T@Sy!j}2US7T?GBY3Ce<$BjBfgRNO=7amQ*vvV}p8L1M zwxi`Z@6(*sgzb1jY3tm_;{f6^9({#r398!q^}WIctc~ zGj;TrPAkPd0{&XBG5M5MUDom35WppJ9ot=P*VZy53ugjeg$2HQr2td%+l-Pt^Vv9h zVVZR9yLj>Yua=4ks4JE6c(6$J{uM0b%zn}N{86nKP&TcrsUd+*9-rNH`Oxai^y(q^ z=3yv!>ljJ6CT0G7hi<>iNj}RvJ~dvFCs`AJg~|s6?4jH<|9P-?_?vNB50)qdol^^g z?Tx}<)*$stGl}}z2DW7VwJQyOCokFw;d|{wa7xOIt_Ba@#7il;EUJn5cf>39HXFL5 zfgNx7DFWRHLYU3Hs2YdCsD#o9kU6v^_HdFvZs#NRq zE(9=~JbM!P02#^b>``J^R5Lh^r7I%*EspBJFT8}B=;NHc&G@p)Fr_)d4mle8Ex%20 zV)Z+&!sE;ZBIL`61uJUykw+0^WDv%CzVX9?%#a5P2Oa;(rfSQ}UvLi}`=2jaY99e3 z=+1qtBV*>pXBf|b_7JWIw4zC^E}e9rF+$!ko+VIjY1JFgLgQQiO6=fQMK;}tvFRp) zl`3PW)S4(;mZ8@HcXD`lHMUI^1JRc~yAHgaebMEwGRo5elaDAP!)tdPj)I7}PL|~+ z&mT&ITX(=8_WrKG%9Kis=7h?X9!h}8Yc~n=0O|2rwd1(l$||X4XZW`ec%^x|&9!{W zgDZkk1)aqezYkK-wkt z#a|F`#_w|&*~r%`%2`jP8(|bsM`)e;J2YfE37pa48g_(|C78z!@;w9IR3vs{Ynj7@ zbqC;=gIl^^`^J7z{>tInt-lZN^NC*!IbZASRB+i7;T%Zsq?-=aSZ14ZS=OHwvsB3i zSq|PLC3zqAZiWKQ)y*)cGiXt~!Tjaeb!z>aV++2D?AJUrVy8&+!q?B~WAbV| z<(J1rvzy=ztqMQSMB6Cpk{jIR;a&C}KcvY!Ijq5_*X!yyHs>AB4%=)t#;*bwZvvO9 ziZFwFJJNwZZLI=tsZ7yNXXgJPXrf{O(MBzZQ5D1-a~N;Gk$eJ4#=&~#L~YrsK+$wY z`sB4DQ5_9PT#43yf4c&dOSd)NrT_h6+EyiLID3%97TI?ZR45OkEU|`ZEa_V)TU{aK z!ruBxU+>Wna@36N=jCiuT}xLuHGm{T$>VRvmHnM zSpKW|Y&t(y?--X^RrWWMCw|&y__I~>I_=NpXmrQfK)rp-0E0Q-GgN@yW#T->JEAP0 zO8b0+dSo~V$8A9xXzmEf{}J@i_>8<8hggaK7WFH6!sv)#X-;BNK_P*T~f zfj&QBca9lEc;ZW~c<;=t*9$Dmfptp4XveLmrdB1mS*Z_Xmzo)YmTM0RneDtu1liec zxgn%4#)<$YWfC__5hu))khW`h)3g{Q_RJh})9*;BL*Xn1Lv1@DiYmz>J6o>cT~CH0 zi@GVQm)R2fk^vObo8-o+f%RsL#%heFYR@~7Pb#TM*5g@cSZ&9%4AB*@cGTIXIDqAu zhS18Blk-AT8X)tuJs3dZL{n^up-pw#9tvo3st&Zw&gT0}RM>JZ<8++$iF8J&k&aV>Hh2w^P% z@#6F+a;l)tqeu2|rxWz&_Yw~5QZ)QdUE=rQDu?~f@qC5!INZ#!Lh-rI&G6LA@R8Mv z&9(-VJ13r!%cVj^MDhoVTT4=eXocnZP1u)yC8tDz-u73wh_0lwrnh3DL*DR8lplHZ z!%=gS67PPcxuu0WVM|-_S>3yauJ!f7Qgz!?bgVM#;))NxYs2p2bJ{%#F>J}!bhDA;ZiuOt!s2bXu;?Hfxg)-6j9;qns(G5%8k;N&%2c>PeP;l6mXf1`F*O(3y;jC)=U;hpNa zW5r%Edf(u(1nqJ{9$>QQ1~391R_vw+-dM8!QF&U>Czx!u0SyS#9edOvj#OF3cGtlT zK+_}7bnZw0i#+?kia(;F&*0dcESGK9>zj148ywr2%T|^$8$Q(?6%`dt)$PY~6&dZK zmAKEUEsGIXx%SQ-mbqqS!DQcE%AV%+!cIYGZ?(>mGgT>RQ#4P})*lF}d?qr$ZQe^y zuxUMD_mvwJScuccue4H!`~|~g&__g@ixGN2ejgT?85-Vcl!J={-7FrBsK_6g7KpS0 zt>tSgX(wClZI^)let5%ck4fw2mZssOcKVhfRq3!H2L44>f=@R|?@T(tC+g_7?$+$A zQeZif)Z6n46R&@{f>_hCqV+g}m1X(bPEV4zrfzv)q9&e#@}?25*9DZ((F@Sxk{Zl-yk^k*Av$NQ-}MB~nI z<9L__vfJq4b^ScU!u56ilO}pU!TRK&J7vTx=O5esDv%*Iz`$GIG$yeBV18zB_(iBK zr30Tjib*hE<)j-sr(IhddEFBrK*Xvyrq$}?g+S}=4zWcn)Xu(wo_UIlY(D$`^pR6* z^ku1G1yGpmyCCw*RMFUaEqhhZI8>e#a5;s`+xUWXYhGAU(A|>zQO|`aLi^AtEWdVg zyMx>4;&ctK0b11-(Zf4dA+&*IPyzofSA;)O_ekpd59O3}w)S>5tbCOy5er=pPk*Gr zH@ypWQn$Z@cX4Ac7%NF*eb@o(PkbWx6WvAf_#-h3lJ}YP1wg%Pzr`+8Rgwedi8(tb&j#31znmxwr$(yJ+|$0k8RtwZQHhO+qTWVU(%Um zW;&fzvMakPJN0K}*V6M&!#+p%P~C@4c|TjLIQOJ{&%ss>T|srGeSslfj#|F9o_+M* zb3v-b>k#Wqu~6StPI=SHe7b&EWMEmgHv19WRN9&Wdp>hP)IxGyS*Fij=ezWRigwB& z6z&pk{06PY2pF}Nl$RH`s65q{q3&uBmNw1SnAwzHT@K?o#&!e6Mnjd{MO{+Smas(Rth+q9c|IICg>f*2Zd|g=$YxVDt!*TE$f&YuL z5Q^J3N0Nf&7M_;bAV7Z6^4#AG_y#VoIktjh4^tIUbu$yScE7c_wPi{@<=pwHD$T`p zl}HVaL!6E%=6d2+J$T~cS{l9fxj;lMbne}Pa1^yh&P=ulW+wPnt=4E~y_O})2Ja!7 z3j@6Lg-6Ic!{DSeKVo-AAN0mHSOY}pW1P~i6!s@GXn0ysnPJPm6G2yh?HKjo7Q^PJ z3?UHaR)czoV(=ywqK+3SC+LBmQ5)je*Jc5b!yrY2G@VS_uhu}_2s(by?vYh+%WQy- zkaxoFrdg1}#C=bndoU5;)`SD(i-kekp%oz%H{r9D$ELD|@ zt?v%tE;oDTJs0IbHN@V=2Y3+pS`!C{=UM0b1MI|C093l=kkF_70tf!3onoRhb9Sf{dSbXmpPTso{1XzN9A5u{*9; z6{Ld5&L2`)Zcp?e+V0>7?n@Ht*N1^FatHpDY(2ML9XtpBhu%xArpyC;M?4|_D?5)A z?&VL`FJ;*gLKpJT8iDaM?2nPO6CoYE`)TgmLbiSF7WQeT@^vyVbSIt((l#nGnOb25 z8cuA5=8I6#CZfy)(q6tM50|tS;UeOY^3v*{a29$vCK_ME#6g9s1U)OAeuH&|L)sNpobH@u~eg9(zxx|*@Ga}je~+NN~U;iI$|;A0}U+FKAV z)p@@<(^_x+(Ne-|LKjdqj=G?Y!zyjQyz&M{m7nlo zbM114F(q+Hke;)7S_TPR3L~{xC6jD1#B!7jCsp#jnE^=#MxetJ<>3q|VkxF&h634e zs)>>LNRm{61anLggo8xikMIAY*7zT!w3@li|5x$<@Adz|PDB0o9(`-0|A8ny=Jo?h zi~LV_oEHcH=l|OI|I(zbtggDfy_AQSIecz=;z$X%L?A;_$1DQqLd;n5`onG}z-|Xb z3k$4BLe|WpY*_~AgeRr!kTdQ6N>MkjSwvP_n_FsaXyyX+T#@l34M+j#0#Sg~ztm7; z1tfq3edjPcp5Ani2fVoZ%-(*^rov}>nx0Her8Aq(a56iZ*v#`-auAQ&lf4Za;H(bK z`@-F9{*K>abJ{k84O`9%gQKL;E~_qP%!kJk2L5KKyhhDZ7P4A5$9N;cRkK z8-u#7^%0|TjfoIyTx9p*<+(Zud+YLD5!@>!qgWI7D~L0cXC zYazuLwbw@O9`hMAqQVE|TXoc&a+>4{JPNDyP)FW6!XGZ0FzKEW&Jz-HZfRfP|Cx?y z=IZa?Xc?|yy_X?sG0+TFGxBxqt;ap+xV#a@`p1+#3;RcM7nqgTO-H*hFUp!7mMZaZ zqE_4K*SqHvz=xGK(Gx6(+6^}g_(xZwpQ96*S#TJAka?W}gU-pA6_ms}s3oD}T4)bP zjm~3l{#MPd>AD$e|1q?0+v^7Hr`Pv)oKLQheDcKH$+$Q&+Oe^U2!z&k7Fo@E2h^KZ z^2C;o#m-9s5C~R& z4nVeX;H_Rw5x>xEV@-4myk(z(=6{J{?|Ud`hS_T7T?@(6JRto1`nHKF{a5Waewyx* zSg@bhp&mEt|5}=LRvg?NOa9gdCOO_Ip&plFpx-iqv#|(Q^r=b#8`xFoCk8sDm#7Nv z`^e_oF+#r7<%tI{K`-=No;Z204xfM2BrZPx#fIJ>cq8gBU7)Sv@S`oh#+SyW!PDy0 zM^FF+C|qJ}kWH<`GD8W^5)l=4akHZ%^Ju6z_B>rMz~I1~b>}`tGKx^qvhSm(uv{}A z2hr#J8pRMNTWc`>&`>{-<}&B6`v>Fz4~$ST%rb=kh&jvvN*^1DF+{+Pa%hYYLARJ1 z;TYv0GpQfp6GIp^_{|DpNEA##hL9_i|IZ|Wh1<2ApV5Fh!4M7>p{SU!5$Z!sOXy8+ z;EQ}9Q^`^gr|Zx#! zX9MASUkKx+9hvYN!+IGakvvSLd!cMV)vui2EU^vB3eMa-`Vg!FTwi98iAOlIG8JPt zvpR$I5=4oY4tbh`d$wM~BUiuCp>qIb_9`S9buF?q+P?(^M->L^Few>P6td)uCzP*V z3ZB`(BT=4&v1A#|`SzT}2so7Nz&v&`q$c~bu~bv}IVvyj57msAY&ze3kUGm_;#Rnm zH>gQ>&K$-glfar82a&dA7(wJsg*0?Qs->(}o;46tJ(h6}~ z84g(flBbp;GNXoeGF_-pdqnR<*vMC##cQYmSfHaCVgd^bRZHaM*Bw9bk)La@rlpv( z4W)<0tWv>(n3av26y)zPnKv;QbC%>=aQ-cyz^FA~RnjYQ%J@OvYxxD?c*+HE^|`F$ zHo+Pd=gK&jDNa_r&%GUyoh)55+mtECRnc( zYY>YqsuF9^iZx2b8<*utu=XGk+C?0%0TKV%Wz3ohG>XNOND^vTnJ_zOx`;TpgLP^} z>$u*`>uj3Kw++0R7j%X5kICYdxyB_TRWdQZ%5Ds1;it(zlmq~;{t8Fx%ctzsU z*m5VOMwZKz;j(f{i7Nq=38cw)Y-zGCBXyEpL-1$yB43jQviyTyWuT9!1wm5H4L7a} zFYyB_HRAq@E|hSo&XnPe4=ds0N4mQA$3y&~YCj@7Xb_7)2OlVYm>><&s1W4E=s2>! zU1K=VstkSXBT7xrR4&purdK^DuTDJjtsSDQaL6g2}J^9 z+KOw&>C*Z9rK~Z7?Z7m|dk~Ux3gtN0N;r+N4ZmP8+}~jPaPGDhgGM+6DmJgd(M8sS z5L8s@W&jYU2dUEcHi*`X6s#2(o7$a#h6`2rIN}*w0q;TBhP)N(1>$~#Vio3X)zYcq z56Z@}TqdPuv;(J#>hQ(#mgp?mX6rqt3fOxEl})T_i^hwR&C51{Z9&xF3VAFJ>s^H4 zhxP_V4ccCJB0UNR_OR}Ub@;VOZjd$ zC3g4nlkHu7S?uUAJ@HqL_ve=qU$=v|-pgx0JUZgQF#Dpii7%2|*B~<%GP+6ugiqq6sJ<0$qv%FG!NnxN|f1v8ciU zHT^(f48<~DU*s5@6*ruSuujG5{r13cb+55nEHKs^fwx`L%b{6hJ<2F=BP?WY-(lu? z>2^oIf9Vfs<)bTRTtSjcbU~qj2Q&;t@IOlHfBfibVes>6QV3(DM!+tc-Z?zhc#J#d2| zs?qgB>MBt~kI`~cLtQIjp<1NTLHxj-F$@ArXw3b`&&m^%iqSnCTt;SWIU5vU85xfk z+zJ&LKZAuEMjl)z-Gq5RhahD9a6bU`u`?rpGFO)x1>~iHNR*3~ll?G;EB6=W`aHGU z;6rbg^lF?%I7*{_a*S=cA|(#L|64$J^ik6!cnS5>2-5@j{jM(iHyPfvw&GmPBx>LoU9Zv<=gDqePMKWgAQS}G9y^rIj`|9K!BG;y+8=LJ>{qL& zI~|-_$Wg4RWGuM)E5Ymv%*t5!l}N!{U=SlDE&G{-c8zfDYNA`ApaFP7n|6+SNJ3h( zePNDW4J3b?E@xBFW*mkCj^GDoQHOs30^ITup-Wuq#nRG+qF^OkKOPuUH5p+g_`YPw zS8aSi{Mzr6pq0)dJC5;`3z?{a~u1$-9&3 zD48yjzM53g!bZYWxBo7?RZ3TPJ7MQjI|XPPz;z3}!oo@+XZIHj6M4ZJQ$-sY-WYP$ z+d(_bdK9L+#%vH@8?z)F*cJ_1s|>W$q&V@j8qlDclq;*{14bU9pY_-gL<35`5T*sz3p?%8YTFOuDa5I&4oe59b!bz&#@~qb+hm_P~h?0TwApjL9Y^wxq9QUDTNKe3yiCK37zJzXt*# zt1loD60L|sxq|(VO2prFUpH7lgSk|Wte-JQ4~9>#3RyjmYEdC$&S%frzm~_8u1Z$a zV2woTuBV|&*XqTA^%L(IW#k~WwY^S&x<1*yl2o$b&!smN-olH`&<{RosDTa(J15hA=W6q{Ob+4t1tHw9wFI?Bjz+8CD8@i@WoB_4phomEwOmcKZqqtKn;Lgw3hG9Tn@=)VE3^()X86q@9ds1iIQ%(X*lbg;J`PH3|4EoEv#Ah0o$*_gB|o|P>O0AyhDMBxz*z`}6{m@8=J>7Fk8I#B9Zh5Cq`cPVUA zBL3cQPLAvCG7Qy-Gwj$C0>jwSBtOoohQ^qXEH~)UZReU&gDyuDrjb`h&^!&V@-1*Q z5V1H(9B4n3L`-DzxmG@aapo@z!vvOzFy*r`7)vaLn{`l1LCla|>?RExMI^s5k;PF8 z_a{6F00oC<ZX!=olG4VGeqj;s_=yg4-Vq<4P);k3BtRLQ&jhhw`y4!=ZhwU`w48anxh$jR?m z8&^-mM@T851z1{$n_oM02>sR7ut|iaC0r5XxRUgPOGIQBF>uv2TLw+GanCsMwSC_zv&z)DrJE zBi|VBw8&pUbb#j$BOBFb!NAyA3(ICR%jy&*Xi9TRyPmJvM?lxkrarj#eXqXXIl#z= zuSY<>YGAsQ+CTVq;c#ozkEg&n1;BKvyPS@Adu!6PcFA9#kASzpdt=%zyzs$xtHVww z1ElICm_t-cn~U1(#TkfZL5!ty0#o{_VqEK+mZb)aS=Kp*!-SC!kTzJu(2E2$b_ZH; zGJbr4k=7i~9J*){nZ~c|l4!T@4Q|aEKK%_xIrNhx)+tme#cy639<~c0CG|A#r;`sY zY?1!Ph_k83nARygrO7lZr;~~W(+@ylvz26Uh)lY^3_;!jJGBXeWAIRZ4Vh z70EK+U`ogYBD@|vh|VHZZfME2v|s|@a7+FCBZK#_p*Du4=i-B}=@#9|v@UQQVWGKZ z_{0d5D-^N?#9b*iiHbE;hG2te%##l-OEIJ?y+dQ^kyJUFWR!?T1vZHi4VT!6qrs^{ zMiHrqoDY<7yd-lIZf;za7lNgOq?O{Nt-KM`Xgmpgm`jzh1|*>$3FYyT?#vYausKrI zaxj1_YQ8LHYt31<+BsRW+Tw4!&X{&Os{piu?mcWA!v^}(8SxVVd}jfHf&qK)E4P9M zn9IrMHT3ge!;C@m>p-!1Gt5!LK)A77b3w6qFw9AU1=$!HQp}|`f&p$1`t=#eeR|*n zZZKk)VF6RE!Vo({M4aLV=zJqot-uR}`nc3&rZxg@6xnrT!_N62H-A{R6FLGf1REQU z4Gf{oga(evg2m#l;*M`7jeR;1D5dfQgW5`y)2yMI_P2QlS4P`%x`7(Lvp252R5Q>E zqorF*i5{M8%|b?{+C(&L3vF_4Q6@b=!rb^}-jcUZPT{%vpuf?8`a}T1pF1L3nMs{Y zbyqa21e@V?ho1siZ$L|l#xwTnBty){Lp;97bh*?|1Kyp$g=q!oKTe)f=clFAWhKj3 zz0h!3!Kl67vT#dWa&}yl%j%o!lUiY`CXUQkU${l3T1Dj;!ncrAjZhRXO~AWSAhqC52Mw)1vNK973-APjhsPRd8-mzxN=pR$ZSwAdjG~W zD#i4@Ut0<_qw&yA+CKbD?POqDf6{LoKqrrzIt} zq^nUTxVeCkF{Kd=hY2H|NoPKYfh8rOYW}A=IJo5l7lkO^LD*9%TTpGj%wj>eeiUXX z3D!w`?<6a=+h!Xsb17V4BTy$)Mq!B$;Hgp59t;=8DrtK<2`!gso>BsQxaev@^9rSA z_Qem$=Tc#4qP(S~5VEVWxmnqx&2dtQEP?i@+7@&WWZ#c zv=p@_s&j1)PVb3EAv$x(^YJj-(<*DBUFW+67yH}isCZ#syxg3^PBg+s?v0>|mDG#i&j{%nG^9Obi8GxDu%bp>O)LJAY^&v1ZYAR1_Y69x ztjWC9n&w2%bP#a$n#kc>PywaGN<{5|MPi{7$ET~>_w(!f@;at~_5GxpHW~_h&BK(v zy(cGWIW-fmgpO)K5@>5qx|ta%9+qVFBBNYpnzry#9@`z>a8deL| z^%EqV$Yu^S;uuW)lXxz8sF!cE!aW2ppQr#scOV?yiN$>kd^dY$wQY%6F>-mCWaBI^ z*mNXWNXFJ8kZjcx=~d%!&LtWbTEepws~)tJ2iBSSKELdMO$>qs!J#dxlwWEcS-P2v zJ2!-YfyK}q@vAbYRMqPx2Yb_IM;VpK!wL#~^Yrh|Xv$ji zl3Qb449vhm8+D|b%!*MueJIJPb9PRjlGWP!;lk8H7ahXvD&dCJ?z2F zaM2nT=#+3aNYAT;H~)A8(Uqp_1l<=xld$uXO^o(j=RBtczKiStBDEG+$B8WNW}1-3 z)Z0vKo%4aMq+zP){@rmgEo+UOf12ga5gy<;dnzayc<}!EZ=A=w957_d;;`-Lv9=|I z$;!6CPzvW0+R6lB^p_^(tCeUIB_P0i9(=hZ_-?nJ&dNw*h=irNZSxv9cZF+m(=h#F zcl0Jx|6(JR%iW2JunR{8x_}RjEYLvHfvo{~608E&_iXcN{y?KFPxv>S9C6$3wI!{b zRVB_m`Q3W71G+XB!IkUs9uwF;Gy(uLh;$&%qVwp77!;uYYmenlI+9Ac75f50b)l1w zpOL68P?nSh+(2uZ>nNupg5bZ7!@R4uMfbs~fCt1&9lk%K@Uze?Oa;V)+pX*KKG$v% zll_-zvP1|sCwQ>KEfn&BD=4_t=XnpjxX*t89^dQ2wwOf4zMXAAmEjpQiYwYtYgC)4=?a{`5X-L*yYJ8?vOnsgw}xgBogIlsLhx zX98TDnEDc$kzuaeX?@ekv#RGW3KV$W8oFI0u=)^LD~kOVS(lyWOgrk%+$29Qi2-hT zkL%r*KD8>}yTjJ-nZSZ{x(yrN0q3r`)y8sb+@e|eJl{C`ZrG7P$JlClZ9x-{hkq83 z{6nz?Ndr>@e4OC*X8tb~b#S;d1vn?8=k2&%f^E|smv6Uu(k~k$S`G9&6yeNoyQft3 z!)!OFOUjQYgBcbpC7In;l+RmZlT4CZJpj|cL*nQod~yx*uN}<5bY5zC-5v#N4&CdK zH{H{6&x7WRI|M*B57J&IE9F~wv_>BU?Gbz{QusGJ%@H?q1B-oTlXE7DZCrNFL9R$D zh}4(YP8x1et2Vhay>?J*nn)G)=Vh2D3rCt|8FHSpK=mLFT*?~eb&6@9GPbxsgdjRFhc z{IuR;VV=ZTPs<3&7kwONaqyxHZ(1BvV0q9$GMCNI*VL4xg8hz9GLS9Ex4j`G%n8{k zG%wvH!Uh}SC2ew$`s=UM<=g(1ABj^hJpnDEXE8IbwktOHKpuw>J;tXqWMAJDLlZDH zQ|m6v`;9=^;7H%~o5Rl+Pr?UDKM&Ww2MDt&oz&|V*A+ExnYv4sbtV^{?hB&)kOTef@JE5ua06$vcv_9D?#v4J(c8+!NDM0~eun}SXlm?PjD^&#X_`9*M)D7F*& z=}CtojnK}-Kn$&k{zx0&OBbrxi_c+vmnu=N8kU6qN6-cE`_-xj(2|zop`kHj0(lFo zDbC!gH0fhJ6TowmSa@q74>Pe<&PNZh zWf&7t>^+b1Cgr0zkl-_J!9=5MpnF2qoDU*jU{LxP8PZCtc6#wl+!iFTR{`WQ6=Kn# zbt$mQJIkts9gSUJF!&s^MwS4{Wt%q)b|wn+w3yo zM$y6$vVP`6h}UtiY2G(m^Nh;x`Vwn5r(Fz-pI&hnWK5&hOvEAq zqy>$8l0RGVqi7dYIsLM0(!CY=6wIvl6c>q1jU6)4lFbjT)TBksBU*>3j#Kov+R2tI zFy&HXebS4DN3U~lkyP5HDv-|r_$xhA2D;jyd?WnvjkLbqdZw4|e$eoHYo?L9qhT`LVU_(b9}djV75y0J5Fow5qH z6WXPZ_-N{9WVuW`rbN2{5J1Yto_+p-Mq6RRC957Y?KwkEmC1o!E4)C;8^PqU4crGZ z1tH5D$8DBu)&u8B<(z@Waui8GOV#q}woHu<`7##Lc@>^GWVQ+VHyqbav5cCKZKH_~ zuvaW%4|mNNjpU7PfOBxQ_CC(c2Mr0-Qx0TG)CPG*HPiOE^N-P+|(i zGxDCXiWR$f>hU2$tMb&EBdgQ!D2~hI_?Q43;T)wHM8ZaL%yf3~LUqc1C0pYvWm3?d zoQ4~O{~yJ%L`*dH`g}q`ehcJ5L^CBZ0ta93&xm@1VL&i~B_jT}GiAnN>Wo>@CE+k@ zRnJIdrHpW=i5+YX=j#dRfJVauA53BEyiD|0Q4zybZqTVVbj+A0sqJU*?{TAYQU?f% zkf(Rj8AoV9OLCZwF)U)mO6zw!K}y6TaY6`~dW5R_^f54G%>F6pA2^WCOBm8mT#Pay zK9-cMSjJVV@pTM0KN9>$4ef!hrQY>1aRR_cYJ@Txlp3f&5IZP7XhUmafNZ;bJzF6S zfLkU-HlW6-tV9NPw454p$MA$K?X(Ypol{Bbj8arbv=F1}5>elz}S~Q(d)M3hnvBBtd#3_SLRBTi= z>T+1BTvfm_qtd$aHz z`c_j{L41yacc(MaHs@uI{*6=awT(^!>)o{WyI8el%Y!vlR3*jyL5RDcX*&MelxAob zxKD^b zg88NzAA^~Aeb8O({8LPSOfIM^z*MH0aun8oywBA0u?LXX=|IxCn!AoX?Vl8RbHJ1p zJ5?NZxDY5%rwYCma=$~LP{py)@=yStLo|soPDD&bkWE|FNkdQAWgv7AO3YvB1;mRa zn`p$BfB{q@LT}G#qOi>k1Dlb{qz-OhJW1rLKJk?%tc=+VF5NcbG_GA!PVrqmBF9I= zF?ee%HxSrdU^H0lk$O<25Ov#v53e(F*s&ImW?v#bd#Un}pDL3#*?@KD0H#LV(=mA&x zCSlPWvPz50K}vB0{j?e5XH%D)noR!lZ`^Ilh#8;j0L=bn(g4>f@k=EI0GH18w=ty0 zwMkoo*2jC8T=l=80QsC$gv_9Lhx+;R6r%ViTCZk;8DC@=&^9^XyG;s8B9qlKuT0-B1(?I*w@@_ z)BN`3ENFr?4J)8+SXFvkMzNa&bs$l6;en||Zp2jLbS0M9Hx0!fpvS06O^2+xAq|!0 zq&02dY#n?vCIx5fN)zjRFei;IZ*3(q0>F6)P27X-x?&ij6HVDbg z$IXVzfG3Vr8^|TczPIUS_`<9}iIZdG$h_WqPc=Ti8>KZ$iI~)jFg^kqkRGMfyNG7) zUx{>N-P=AOG;}L&Ue}T3v<=0LZd%O`$QDBB`Sng(CU$a}e)|#XqvO63=Cx_l7TC4d zK6)5FgnD`Li=;`y#l9}P0$CI?E{=C6QjCz}GrZ1adDc%7U5wKd!7Fb#S}()xshz#G9t9{A{l0@gbt zi~bqV6MwWhHiY0xlvBbJWyWYZ@*XZlfCikPR!o7v8sv2~NeedPEE5d`yqO*WIVif$ z3!Z=Y5{sNmCpQB@RUPo1tR_GU9yH~)#PrAl1e&r$M*#{q5~K^rz+b4GY>u6vKDqNK z%EMxyj@?++ZLuA(?N}EO{TAG*#nK~YE6ja0s9vG+Z$qQ@dQhrQLMmDktBtFSSFh@t>6 zs?MxLjVjEYCC{?n%y-3)DbBJI1vd&nD!TL}X^Xp(7^Qz~_841IhATkGQdTx4FzRhAhs|mrIci7SgsEP2UKBobC zd?hMP=A6tK3d`wt9&bMJ^Z+}K16V*98bW(zJ%QQZsO2QpD zNful3X4ozc92csb(rKsx7~L_^p*89_)OQ@b$PuN6q@wOz2~!*v_VYGoL4VhG1>QfFG_Xuyq7o(CMX?byPsMRo^Czj>zSOGnExUQsw z$+2oNFtiMCy5RIzCgssmDaBHg0w0ba(?^A<>Z1C;dH7SVM}`yed}*bP=-8eT2K2hx zrCnW8x<5ugM~b8;oHVvDv7+%Bev(`1gsuYOWz+!W!!&-rx)F-{0GTSUJR+^M9xzmL zotKI^L=H_Pr=xFpwBP7o{L3jl(C3`Jq|dNj?dSkpc|9_my$bTZ*fA|dw{p%hz#c$*J@@|iHX#l=0`mSlobS;6HZ!E|koDT@z zCHctvims5wyGu{vh@HW=_s?Xc*HjT3el`%$TT=gW39rTUCP8iDYa^kzP}9G==zorp zV(E9@CH#Wwe1$0=T2h3~g0oTCmP!{syi}G49$D9@?(A4cPHxVYEX@D9eoVFRq^R%k zn*Uplh59Ne4?n&x50B`YUY^+OZdf{*vO3?qyxP2-y7Gf`W54a?r}i%Y;=gsN{+bWl zii%b`e0r53#VL~Km3=f;3SIc)Yms$=_aR$mRZOcu0YiLOKEc{ob3Nxboa%`s)#z}{ zY&=ojq{ewDus`e@;yyKfA*}GYHgn8#c+!JMDy*!OBo7&W` zZUbC@SE7+N#vCxTSj~z3p!|LpibE+E4;Hy51?g!o-&RNxmo5f-YYn5}%2F~djtTu{&3t4DCOSESjAc!J0p&-UOOKJ9 z^AAPBAUO}i+)*>9X9Xr&{H=XtND`+HcoRj($onE;Xp(;`(Kk{S9fq7B<@ z;A=sbNwu)iw*>j3+-{+C2{8}Dquo}xr=9H9+@!PAU&UH6tUK}1dD5bP5i-2j<)fQO z72l8#`?hF2Oeq|pi&secJnTXJCmRmozgRBVcb2zBse?ma;R_t`N`8IL@zc zs7ZU}5S)Pp{m9bWC;^Ro_PSC*Zd8$2;ZHKp9~8uw{91<{%~l}c4F|a(&ITfB34zh=-8H428Q*?R_+@i zZ_!1Qte8{-n0^dX!(%h0Bd$k*iR`7^U$K!3aPB+mw7B@bpIT>YkJQ02zdtHjG5xls zh4Q}u>!Lff^xA%2i^P(iN8g6wn^So29t>$kbnrLWHl^VCfDD0KPoRFcz%m`^6nUU? zw>MXb2D|(B_Utg=9z|ho5>a@RV{GR~NO;$16mu02QlC@AxPT|ZzPVJfPa24EhT00= zo%FDn&kpT+0g_!ek!iJJtdyFKvXP#8WtMT!q9@nL{v$U%i8%o+q%MqhWGBdf7FxQz zA9@^Ov^o9;+SQuvr|{mUz;y=q;+=JpdV^?OaqlxrwHk{|XWliQjWKheT_h070NNk0 zElTFDD%CG2LL5({VbLAfLpRQnZh5sJgsIg@z3n5S=qVy;5W7g-PWXZjw3F2~aTKe< zBa}-{-5|b`h||7eeDbV29F>v)7qu1Db>^8WfX*2h?C`qw-;<8ZQfgDcKHY_O}#6*ISALbVDUuY|U9(KeRzPSs+{h$&2Ojop@rn z5qFYzK;?%fFSL0^T*SWDII)okTn?|+9!(6v|4d96=W{Lq# z`ie=D#iUKRFTJTZ4yXgmRq(D=3CKR~Rffrm*#GficKZG_ ze*2!Sr()(w9kHLUv~%<20Mo#H&F5LTA$qFxz;FFAMPvs&uw%U?A_6!&@u75Rh3BbF z**6B`9e%X%7bQ~$%vm177aYCus|kfLz<3=yB-F(sxay6FatE!p6=lYwM=KV)S4M(h z!EJ5b!}^egy$wm}IS%fUr z>%^DG2Q)m;Xc%4?Ray6g%=A=bZLkY@K6n+V5cot0v=lpH{em{(Z;4-`%_eCd+) zDe|iRz;tIkSdZYA$Tn-Zy&s_mu{;*vX$X-0#fsiS_$-p>3YxLz`U`zbi(awwC?DEi zsfM5T4ZO)HTI}MEAh9b{n(3=*f@HPmJWcpM5s=J&=y-37hT7hwVBl`Xz2J$nV?4|s zoQv?5(&`hCQGMwcYR4*-JUJoev2=WOIR1SPsDQt~5kPIXG)GT?uFo|gb7$9<_DV2( zNt0qXif6;kmi>$C*ngChPIZaYdD(A?;$jO9idY0@XE}Y9j_;kI4kQC<82V&)Q}BBp zAozO53C>yRTdC;#Ejn@}T~$F7ndn%DLh>JPMEVdXQa$cvzt(+*U9>{vbl&69x%Mt= zmk52;phF>PN;l6SgLm-&Tkg*)7KC~QYJbRN>Qa0IZ2`+DRrNp-EZA=ve`bC>NXxAB zX`w{GvYnv%cqE9@<`-Il+??)s$Y6zL+SMR6>D2E>xQ7Q$$h18P>6yWw3aAOCoUjYH zq9z5ap=nq7NwEdx3SOQFE}FPXs=I)Xz7yBIWL-v8H=g0ZQhoM9{sek!<%PmR0)eEQ zfqIg!R0$X-Ex+I?gDTRF@DaFrg|ovs?vd08?&~u4p^?ji zVDfgA9>!)+&bC=!EQ*U>;WTz@eDLh#ozeWsCi=iERe$N^f#l6xl&|uKAr>-&LKE?- zmKD0miBmiEgXq@F_yALoPnRVgou>y@AYZqDJl^dEFMy_AgYkvR1^vOkZ1JYcPIj6kLQb-nhxI{U|*q`LJy zvfPTT{Ix91{fChMh2shSIJ2|hc+=PNV4iqWR?3XusA~b!j|`9xg5}Cn3JCMFDYHEo z5Lj_wvb`&sCxs8C@eA~6Z_zB_0|de()-lU##mUKEQN)~73OS6rOV%@W{T`oQXB?5zUz^4xub_>AtM2kwGea^6V39S_>V zeWCT)VtxhOee!%|?7yCCZYkTCBL=U+&itz$`KA{tZk+EcApDaV$`Y12ZCGS9S0qUi zO{%YB&NdFG@Ih3>9aV*5dWb8UK!&-M5n-lbBcoBEnC5AxUr@r*s+bY9M+RlRum@ge z5@L9WYXX}S$0R-6d>^Bqc9gHOH6_(30J0UYEN;<`X_sRSg0a9z9(0Q>%MqLmLjLUo z@kBmllt4RIsHef*$rIf=*|#{(gRu$k4HM6Uuzu?c{^4Ozgs#k5S1RL%Rb8E^-_NI5 z2P6kFpt^@^$s$x2(-&9$A|9(3?2t7;fzhq+>JmxLE&NU~u0|>C@*5b+wm8fUqqPTMV8FD#Hj>7_!J> z%v12MZ|l9<-~aXK(r9nL%^7?1z)&u#xp7}?BnKl5gXJ(biYJV@{7??l)5p|n3zP`$ zih6<2%WDf#GM33}Yh7>UdRPHN<41<31+23Hzq0{cvJVc-+l?C!MXJTEXugS~ba;_t z;+M|F_DN%-)g*4O2y(7FZa#v9c$+&XBrmd<;avZ$ML}Mo`q53KDLkcNpQkZ%jL?NkE!zXpJF6`SKS!g`>!m^?S1N zjp{+-P9qP!{!x(t^}P6PqjZ)S%-^Wz3{xeOb1dt@Z_69@g9_(CJX^M02nJ>?s1NO* zs;i{f8h?<%RKx7wflHw5hGETYMbCT`I2;LwP~*d%SlgB<)^(`MjqlJou8{ZoRkUW5 zm0+(_znuUt(S%vbX3k;+BP7DbpV&)+*k1w+p80T11R6xW7hf-CK=BczhtW^IFgQon zs8GMsyuod^*lKY*=eGMjKntNc{>qnvZeen}VQ9@Gbh>?xro}se-eXx81dTN9ZBpqP zbD`fAvIEet3hBCAQhZvi$sVK;-lk6?ceMOcM)h=V{!1j^*6{EDw!!x89X^~M_ zIg_!(_2nQsXhv#Vm>rx-ii@g%t<5tG1TX~$YO^~0}-RMZL|ey2i9W}e%43tU9kz~?2`53&&+zp+#52*r%Q z43v}U!MWJXWKM_gX3La{ht`_9g>?BhGEg-F0jfMpqhUT2#Kpmc&w(fm>{t3ZA7JkH6uJtfJrzZX&>d){i-%78q!I&NnAo3jjGDx5uw8fP8N0=H!u>JH zCxUaIhmEc*+b{1cTAxI8=DEyX6GurIgAc-~^^1H+k+PqFC`j)-M-*N~?iP#NuG`M3 zjdCFZ1lJH^WLU07p}J!>WIgeopMTd0?X#)5X|OVfBU}y&Ff;3UCDY>l?#$mkNsQeICiOwK5@kmcYd&V822=m)Q1 zKe46zrEc(Dr5u0-z4CnPXY}ua>snTYY71`m)P?{#rPO~1R6JAC^2uy{ZS&<9XiRPq zFYc#OT5zk)$fc-;Cj|csT|lD0fDHNzs>ESrK_sxLZP?D^(3aPf5)NZqdImLI$;x`I z^nhSL0*LOy6?y7y^&!N5s%#K+BXNaN^o2NrErTcSc$|gbH}Kw1ngUhQgV;+((l)WM zOW|zcFBDVC!F6#dLNWnAo4dclk9E?ESkOsPMkmECbW&_XC&eaoQrv(R`+Rb~s4DIZ zt(+!?$xt!QgR6-vBw78-41?G#2njz8E`h5zV^N|9K83XVhoyjtNa1*O> zl0nIIs+VT^^)QOT6-tdavl@p9^NtDjuLb)%knJ78eh>x=buG!bb{O@xxp5eCnDu5{ zF^pnP^Rs;}Z^orc{5{_>{*+nqKN!X~?#m7Ueuv@r0sNv$H{?9ri^SiC)4^i0%Zj|^ z#Z?78dzItlw;b3?l$z0XX7E9@1erED6XH;U@E7_$D??iiusqv zA?FQ%@TNSD9*el5jh=qm-z~=4@cbSM1T`00u&L0)KD;Z;Tz;IaLwe)ukXE+lf0r2C zAmU|Lt3KaIKHF!mcuKL^>hZovr_?X?N(TZ1F`rp}^arFRx#aGwsd@XHO>2?sowGTP ze#tFZ)Tw-Iu#mjiREzM7NON(u8=?8X@G53-) zvZ;UmInT8yXT%;=4$P9}S5b|_gSv9zVf$O$C6L?%kRMAAKU)$~zzUNx{a zcYzq|Cf72MR?B!oUD?ae7fF|ctp^O4w=b_HSfQ@QCPB%R?1IVzg82|c5C zO{V+&n=dkPxOc+Kx1Ei}Hem=)TSmh9XlLS;(Dm*9H2G7by7VJK*|?x)l$;ZkgPHNO z&yuzpBMEiX)6L`2!}HZxLgAe8Yj4zI+vA&ZlfGk(_Ep z{N-Ojztzt0y?`r1W;x>tamQDqWS#0{#AIZNf#O%Fd-)Ca@lo9>8!;zc7z=4UWe9sfO%JWFNpe(`#=Mc2! zi?K=1MM>wedJYB#MlZh*^ISGK&ulf%f~a!FH0`C8h{ldZ*8xhG5R}@MW(%7ihg{h^ zGM1Z8(!6R=BhyIDI!d`E$d7vQU>Ob+^;(KugQaUY$V`fiq+Izp@IhdV_kMwxm zlIg7QmM7N|IKum`gE4k3)Vl^_Pr7m~FxiHvTR1$P7#%4;td<|x6N7|@SC9kj<7HgC zKm^<>fc(WbggNPU09i#|pzNn9N8>97V3J^3jzs8>`AUFqZUVG6p}`)A@&4hCx+av2 z{^WuIf5u5iIq$njes>wWU0&*v+m_*Z;1=J-P|h3pF15wd_D2Y}C&$trkKjgN)R1=w z(tB_z6HlY>QT8D{L38J?c@P^T+QdipdAGYpS-AQ`z7f!>sT^IWHt0B*j$gSTi=J;C z4n5uhGBaudaW<0i?*omIhg;IP zq>d}!^bBr%jDmnlrU$rjHJY>umzI&3w!WF^oC5}a8g4k`KuJ=Yd^hx3U)T5$A+@?b zt~t*uIn(pNfIg6AyuskVsShwh*>SBjJ^Kkz3@dWvPfp>a{7$P&YK8K8i(%%}>KCM$ z>2;wegh2P1#+m8Sq`;hXTVQt#7wQ8Q77p(v!2ONJ6dk#D62^)ch%}Gmfm`h9>PA?u zOFEu+GA|aqm6uI^7%6#&oPk|2+<_~|i2a`Dmap(soCaQw!uxD#bU*IV+<)@s^nkAn z+WphhWDUu@i=>X|CpS>!IRj^T{{`}ExNB6f&6gS54i#rb#~0S0^p61$gU>4ej3zn- z*BL;_E=p;Qw1!hqY%>%aYl$p@zoZdz$r8}vP^#cMOD|g}7Rhd(v<#G%;tSv;I#Rdq zr`z*$6iN44ilpgosU*KB`Z^o=53FQVx!pRX>@cJ&e&_Y?X$0>(5Xk075Aa7*vHjay@#^`V;O zD}1Y#a}|pp>-O8lz>MdAhrNC=sDL26$>I+PTa8q9_jkq8mO!-RIc-%O=CGihvXfW^ zvmDag)4(1@^!vdOVRswf@kra;px;q_$I>?Z3n(@dpkv!3IDyLxMK+LP9=AEACq#Gl zSCK|+#~#txF1b3eWs9DG7i`ty>XU^go6iLrA38d}Pzo0rLpMvV7L!=ev&e>T7I<4c z2H>qXPj|Ig{VDJ|0$)e?EY4Wi1?r;>{`jv!5VQ&a-Zv?FQScTXTH%b7sGb*VLYn^oSui0;YL zDv!``U){E`VoU^s3pOk+Pq!>uxqo4y(-a?`!Ow+w(BT~TtXrz^y9@WxXG9SLJP6R zQ7;B6tnepOxw>V}1ZAjPxfrvyXg0^u!qd?0(X4b(xT*ke+{O=U3v9mr+JgIhSJf6Q@@3W*ECuy-1xPE!cH8qcVYKT(+`P?$ zNf#ZF7jve39kskY9F_TQ1C-&E-d%011Nv@3myISApY{8Mx-W1x@>W}5;Lep#_#O^K zY(gEbq68u-zFT7Lz8eFPbl>HHNV0EiV8G;Gjms?ccuiTM^lo5}HS%lBzWK|f$O}0A zIoawE>VHTyx+C&K0`+0^Nr*Q1eSv?U4Sf1dV2?rA{6$jqF(}AiP71L_%L9?QzM?>6 zr0;sDax&IECNMBes85If>}%yhz$#OnDgDvw3PCAcQ7G*aHlG|Bos6Lg5OSvUL?*(`ex!<#@ZNs;)+Y!r z*8hz7bhH@bptS`vg!vzlwuc z0Ay733IO?(fFvm(+>;c8G>SnIfLXOza6cL(xUki;9ej1j-)J_Ua%7O?kZgY_R?$mUMjHUH{#L*infTXAld`U#g z#Z3g9*ByHX=XHABh4WfEMDsv`;4L6%kEF~0JQ<5^!7Iz-O)nUOHnZ&l}BF= zJxDGDg3cWgOWXPpzJZpF!9>ok$P1j(IRou6a@&TqCzkd*#IZt#ETdv+!#^UIMV%!B zI(i$<8;$L9M>cgLfCfY~c|n@k6}598smeb-mezWhl<>yaC^J)J(|;lVWOC7sPO7}M z(@*ufqy@^{NIHO<_V}@b@~@HNv9zAUL_dzloeLHpOZ)gRrK<_as@{>r%8>txw@r1# z(*AT6#4eo3Cmmj#{i;+Ky=7AV5F3B z9|i-H@WJVGjo0S7Udc6#7h{ITj5je}YgDTAeGoq|+#$bXBxiQX z-BQkAF)#lYPw0(n1+L)DeB}4Mc0L-Iu>%^kZ6c46H(SylHJ(w0~=4Lpl!!1cDXz@irqze^xG{p8IFNy^pEs6}97oZM^jClw< zhQ6PASU*P~w-W1Y=R&+a$R$MxynL_o7r&Yi!Xt?@= zM3JPf`vnfS&kjBDyer3BEQa#r8w_<4F0B(nJUwNVxPM`m!JOo5AMwZSqJ* zvGFhqIf2hywPppQ=+A)LR((LY?Vbnh<;lXBxZYRG8#A(b~5hBpa`|6AK+&1O4RC+q<~VhGv0$@ssF#2a^mM z6sQi*2+SCbHTXww`UayN9J}o8T25Jh+UW_VI(s-Ww+`dH`hr-q8|U3*Vtvt~&+)D_ zcsGXJk}GU!VfXPp%AC8Do05vjhmFm{9#d~oC0|A#kYB`k#z}T97K)kRtwwp_69iwO zE<=g9ml!qv)WD4IJxzGWL@usDw1v6~6i&gM5=e2rJ=%yf0rQkoWJ=_e-j{bRMRkBC z1)7hZ;5014*@PujHcq>@0T(~sgYn&kl4#|>p_;K!KqeGGok)XAsX;Os9fKhpS&AF; zAPM?!STY?Wx-cSG^akY0z-ogdoX$4sc;QN54 z{PGf-Vj>5}T9jBxi9JBpjnldY(8{vnbuo~*8U#r6kxgIW%6?i-7aayc5ybVtnWcBS zz$n5`^sP>5NUofo=Sy<}#xdx$7K6JYB+mE>Dq8e0@o;lAyq1L@D3k41BU<wjl zb8zH|NP@`2i6Yyzku>UcjEdV$v9!Ovr>u!Jn!orF$nZBSsD%B)rNB%x4nh>?Po{I7 zUqjNS;dEgcB=3WlD!N|zCL&#&eqe{PIBg({(=c9JLC4Am@grOk4)R9xUr;#{t0NEs zQDeT5=x+1RB%)s}t9b(HfcFs))oT8@k>{}5R`UmqbZEDlKULo1_tpke4?~>TYT^yL zcqw)JLs+oKWMh#$L~de{kkJh0yeywpm)fZeAmU?~I;PpD6=^e9v@3cPFSu?a?feL; zm!BF>+X-fxdHZVGPP@|1yGhH;e_c)5X=}u`4O833sclP6&^80aNppe88b|XGyt5DG z%~|$YM?6PQz7)nGi`v_LcT&7bZ&8O{s^zqsc-hpb_ND2{bR_D*DmzK zryCOUq1xzd0DYT80;GB;HWpijK)xi|G91_OWxO*eIzeBC3MT)<%rR&7^Q;vW6P-#w z0f~;uL9xmCb}m^WI^dRioNu59f>ZdfFXcPmf$1EGr9)0ZJb*63BjnLh#Xyf{;Kesz z24|+Y8U(STO)NORbgcX}452NTQv3adPf6~`7i9bm+eB^-3CmM)L$4q#)RSBFpr7s3 zJtR2mtQa^8nrEH?_jLrcZ}anj-6=wAz)1oVT#g{KK{<<%q_!61{Q9 z)o|112hap->FXNTUVEgwHeAy%;yN*SD=!-N$XjbjSwxDXgJ|C&1*p0KiWZF#r$Ot1 zLuzo>5A!LNxTIG}ErlR*w=ho_SHne+;M$! z9}jte9suFaY!UmqipGE9T=mIWTvvdau7-Gz6obF@hy3Qk1|d3{xY>$Q1G%?X;#XUo z4MI`<#lq8g#RJ>t6u>H3kptyAR`0^|yioLhxzcHDt_<`~Ut+8@HaDPqmMQx%6kQqE z_RSM}D(jEch=X$k`YlWH#NchQ)%=uM8$R*_Wk!kFyQ4ksf<3;`tN9zI`;%&$uWuL? zO?4QyH}KJ6km}&BhT79XD>zs0Lu-C-4mzQnMrjzlJ-0AlaKkLk+4teNP*%688ZePY z0vhNiwdx4+g*$s^jb(dMHbh2;Q*w)a2Ru?M(s$K>48&QMCpPWryYuL8f3ej@_h^!E zcQ`EHBpN%NLDK~dNto-Q=5(}bjcx9Ne*Z8~H1{vNQfx|j|2Ne$lHdOgW;E`Fyu%XZ zeWdwCO~&M9*<#a!%9%u3qakswlaR}4*wG-k8gAoZ6uI&}St2f>f#wRlOx&Y!;jb8# z<~f%B63vg*0qc=^alo!8{XYN$wyjW#xGQ?(zjsn+b8`_GV*@_6>3^G!*+PxnJ5hHSbVhIhP}>1?>n_{HXq< zQ}|UY9y=OG^weZ@G}W^&ic+DqHb2*Qw@WHCIb&^4Bsu%Kw$J2qoPqxPmyK_lSRcLJ*(ZljnTZpYv6H*g z0R8JSh5#TL0I+8XfI$T?LRSKSi<@aWX};@O&j@;yuDxy9;#iI zC35HLVH@-?SR0F>r+<*I_HxUR?dEkys2{xJ&bzeV0X8XX^Kds>_NScE@i)g1 zlZ<=^5o{k9*jI~if(CN=LV4N0VzEZMJPC@Fwna!uFzb@>jFVV!&^InG6j+w!$U&dQ zwIMOPlkmr{=o?9K1!wV)1kxVjp)XoJ)a7ra65qW+t9s@;& z?{Z6#SO-khjP_#21Y0-N4m|9P~~#=NsoNIP6b@<{@`hbYQ!Ut(9Q0 z8Abw{iPp&L!pSmRH&F7FYGy1=zm|*QtlM%5k-+imr_plWA62i^^N{ zvxig4RmLh$$XFsWRxUEu*d>&)ta9d2!dN>GBV$D$L9U82uCfx|$&GWB3z|PQubmj^ zF5`BRNJjP^Sy~k5qDja_Ax^R66&A9q++*Y9BMRe`BjddGTlS^5d*`cd0!~@=c`Y3= zcPu8Lv71|W~e>&3K?oh9^A?Y zvgPfIpgBY5A`arCftSEPz9SY}oq~RRHo$VMTdJj;Yh7))zRfora9*8K*X}=|pzoUz z9X_RS!$&m52< zPTC*v34oUHdWwASqh!v09Mdi#X*GTmPC!XLt1r|IcO9VJo(t*xeL%GaGiIQimr`PBuRz9FD=t7+v=Y}GP*98hrC--dwB`m(E)B?c z8>v;REKf9$RnRrmR@gCpx(^8TRESJV!d9`MZPDi}T+p`I1nEY+$i2Q@sJoTS>zx*K z$*yzaLPDV5>`(PHx-HJ2jpF?lJXwAzspn7RGcb++z(?Q-lSQZpmCh+*D?pG4 zG+V*SH}s3EPGPmn{=I7Yvm6(aw%|7*{6cF0pLkF>@-qBcH66^55Q|2~n8<1p{bP(C zL8Ec|BD!SN^yf5j^%(cPRnvo-I6PJuy>->}A8F$7@}21QtET@%6NfcKFIzSJpN4o` z5aTXbHT^Y=OQvzp;@sjnd?V9UXRNc4v?7{}M3UTKhjfaKgeH-$v&8=*(fVc+Zk89c z`IDr!NEQKW*-3f;S8vGTl==+>$(@huoo4yPU*hndBht{bG~}hBS{kaNp+z)QO+)w7 zPz?>;O+pe8n@V*=!p&YUxa=x z70P#_G2<}#tCwQ2HIS+9E+7*5sKRQReM?A@u-T|;zs5W33uYug#DkuOQbytWKtaE6 zWZ)*wKb)NR#~bWv3Hf)?MUr(d(L){V;|uD#ij?YHfcF=~e3z0FC-T#fPfDGFYC-DC z+b92I1TEotI)}H-SN3D%u^e4G1sPxoidK2x-&lp_{3ji+v9!*uSmMDlo|F3J%SWiW zZV8G!xjkPVHi||1u8~qVmSNqUayqS9xiOai%pLM|%dQVC%73`%A}eiV z%+lemVd-MpJS=^HEPR_c-HZDmrPPT2KP)$4C&mVrPtK$E@gt=})f{)<8fm`0L=Hrn z53lo>Z@nMm@{gtE(dG)=s=M5|io6=?R<_(qv*q1VFewh^c=^qE+zVU3NKf~! zXH!-3{jbeJv_3OgQo$l#pAGR8{tCRpyjT9b7dIB?*GB7;A3w&*sMXeY2I)UFi6vdJ zh0xx-zM7KPBKat0QsOH~P&F|<;QiWMdASL}N3x~DOqa0}XA`@)QwRLak(2EZ+}Yb` zdlH(@ku&3s^?KdfVgf4oSe`hjuZ*PS=3p~QQOoV;QXwn{&66Q3u7Ih@p`ZM~dfc!! zHT9M4njequ)zo-Fb-KnkhmIkXBpW?6)-axA1r zcm{Q|ETzHOWaYsh`hH6%#8s{ejs`U)ImD4sfR#uH!g3QSM_$3pl;aL$37f0^-3DJA zM(J;`D~bMYqc5I+SuQP4O)Qm18K?OMx;tQlu3|3bT8wy?vcnNrHJTSWd<|;#P|w~! z7e@{5nPZoaT;7INY^H}5_FKtb#$Hcw#&xUpx*c}v@MCe6@KY)1$JSTI_#aEudE+sY zYD!);dWZ!PD?idX+E#onF+tw?0`lgobaXbT?(=Q=fw7%|_wh6RGsdGbhR-ZtB_fNP z@wZ1KXC^2P9jG(^9(pA3+fzH~FnsbxY^E7cE!ET7*j!@MfsD$IqC72;EY5fC*nF!{7(YhK|*M4j>ke!c-!Jk1?6b@atc!nzh~ zhK>uYkdrSS1P;^?FtDFf6B_1d-;0{h$ezi8dNP~2MG<4i=cmz0MDNHWtu~>v3QT^a> zDhq2bC%;1nzIQF}z(r&nYs||a1;Nq)M3~VySNs!dW%>-S0csxRy6cAFkzTE2Y@>zO zm%-V3x)vZ6Hpm+++6lAy^;;SX3(s7lp-u(O;evlFc zuNiO+17c1xLWbm)XDMJO1`Marjf+e6#Y*<^eKEqyS-`PNK>RT;or`KF_oeEjZ8yAe zbn;86wPUOGEt7(tRN$8%Vu746M4Z59?Au_NRZCOw{lYdn`%H^`e}Ob-niOgWzU8q> zS@53aglE*`hmMRGRAu$0A_rVm$s;u1dkt{yY%g8sVU{# zaG}=8Swuudpbh5hOuXV=Yk;>bUuX2~6rYGP+T3&xr}?~_LG?I-bM#q_4pJfD$DaGP z>bQQBcOJH<8pBl);9H~^C^!ZqlW19u{j{2%-O6oG;SQ7SH>&DlkUJ1WPhga+PD!Az zPq+RMDv0kkY1>THPPc38Z8hcZ6na}XttsZG=MiWO#PjM_5<|Qdi`2NpreW}eP^81(?uBzv!7f^cp)Rf6udO3aR z6_7q(G`;2h)2q|c>#f4oxL-A_d5==Oo7<;j=HM#aWio&1hBb>3ZxyK%%>ebgn$a)BgQXGVyilGOS-gZ`t+T`zk6!@vvz-j~LU;Uh{i@jDGS@URXs$kOG z!#H)is_0bz7l(D4&XAgN(-v~Nhn)68^qM5Qg0+GYUhIU7<3M%d~-;rQPYW9 z#KU&+u-&dm*g-^<2Bdo^O6~R`^%_n+2qsmF<$$f@6R>hGh}kBIusKl`U!5~Xe? zY7?iP=G0$Asc#eYADnuEQyo$2dZIqZsh@J{l~JmfsE=@JJ*Qft)VqnA_MdQyr| zC8FNQsoOa9qbT(TqK@X&e{$+OQR---_I^OrKXdBFC^d$t?VS1tPF)eDc6gCm!>P}5 z>ij765K-U!fShMY)V@ze+jkdHpWxK75{=p|UVX$o-$%fF#{Dz0cbbOGbtHV^u6#q} zHr?PpI&fc9M?3lfk6!c8@Ik+|^d)m(TGnAY)d`FKeJXKjytpZUdQU`d_Fb7{{&tyO z_sA6>U_1=-aFF52uPx~iID%v=%>EqDbaq|3tA?7l{c#|FEPXcZnPtc#wJc!bWsC!> z;Y~^qHPayB?_rt8rri%dwdD8pCH>KVlk|_L-M{Qw!7X=33!Z_>6j1up4{N1g-rHCD zBM#v(NDZiChG*qlt5rg>$ZtbbnRfV*WV~G^ zC#wA7K$?6T7o+hy^r(BeF=pBX&byq=TiotF!+QKD#&(7*-l1hJs|CIjmW|sEC%Tl| zt8mxOUe*JXxv=$kTyeZShDhg?>GsZgy>}Qo#}{i#ntG!3DrtB@#5)pc3B^O3RwbQTslk6^nN5cIDUT+%3&p2AZS z;p*j3Ip*E7w9`1}w}gC1^;A_d78Q(oT&zt#h4wW)_i)G|r~}Q$I0|TXZpd6d#_a?8 zRzmIB{cG15e1n;DClGy`{Ou?F4aR_Tr-M1~ks_y-cD^kYbS@)7(!uue<@PE>8=WyF zAJDZshWq?vHcN4@Pko#?|aCmGMep|3y49%I-W`*Pv%zg zFk$BT7LVJ82GBO2W>B+qSBG}&cGn_JHnWn7wlgT{MHUj?5Vjsm44BfPa5!|$e zAS(NCHX;Ze+;A9e2u8ttIQ)hiYC4->HzGPq-6}$I;9)VWJpNZEzZ8+Mf90&MCb2B! z9nuHm;ZCT=D=P&QZ`4ryz*uPY$C_PikNoFI%@z<80?G=lSWfJc;gM>8)WFCces?gb z{9hbuyw=6`xAdEkE`p@9E9%+9ZQr#;Y8@{;i)cvjb&Hq zqszd#>loU6WG%an^*mk;UoQWN*xfzFZ5A~2=Wo%usZt|Ux3Nj85B-Gp$ZA{}AOyEa zt#a{LS67RxtJwuh!>HNQf%bQr;IG|CJ=2AAW+>j(dfe4|Qu2rGZg$WmY~SM>;bF}P z?p2R_a5{8y`4v0jvAK;0!Q)iP-=kYI!7F+o?beg7)-Z;ax(>Qp+dT;l%GG`8fg1}^ z3db}*kWF_&ldDw*pBr7JwOCPTvtTM@$DPoE07LGCW(5Ckfs`AgF&}ebrTIfs-5Cd6 zp%dU~k0)U-`fJ=Bo%xZJXY=>+(_YkQ)a*etz~98=R*sE+Z7T(R zDd_~owQ$ewo-f1LMlw*FA(dBC4)RovpkXCQ|F5->ONDUM4=+4{xbi9W=%aNZqM@IH zCkCzAb-el2q#Z3fYOUJ-{Vf&x+rL}McFzB-znz^W^zUzEA4uzOMZ%^1EkgbO+}}*; zKib_!{z!L2y!ZcI{f&%c6bZ{3pbDBt!Ov;6T`)tvBX2{+xJs zGs>}z|3Np!=)*;1w&@Oh9x6iUr6GHTA)jynseE{C(?FyCr5Tjj%X2_>9PqhEVy1NH zim83}0)VT#ZAm*IA1kf!^7m#`o8^Z2QsMibNEit(Z$=3IY9rd(YdR}@d0atb95R~0 zGB*>r&*UU3*q2{}`=>?1{1p5KpZ|t$G%7K9Z4=UOpPWMe^5r737kbB-=gEE2$3?vVzH7MPO#J$m5@l;=8Ur>^(iNoUXC7mp*e@#8xB=;i0u{Oiz^IAVUov^c+pw6`jn-Qf}3J6Lvf-U<^R6j-0W2U{T7{eJ}}@+u1{yn2PAjT@|zT3y!Sz31&%-&xldwU_=q?%Jl))4x)QSv@EnS6kf1JrXdN ztY+7QRTQ9LEza~9u65*g+ zvW37ZrrpLbyCcZGys!#4nX5A;Tbs|6Rjmw_Z{{uq=;EWDG}Zi*pX+s9vk2GRcdt7* z?GZdMFYHEi6X;pOvxKpYWoRvn1)dAxc6vG0u(gU+BN{Z%IKZ_c+ewGCv zrE^jZgSCCTe&F3}cvD8~7xWtsgdW}@v2zICj`_Zg507WI^{G5gt3>TJWjcaW4UufE zE0Smr|1tF1ot{mhQAI8A${AF7cQ|kgNFEE8Y-yn3<=(0!eBiPAb-0+ zno}7Kw*(!!jtI`{4T^rFaJ3!*S^H3XUxz;ptG62dnmE9(*g^QR>mrD)$pi3OITY`A zgw+}&f_!Wt{M~_d2vWz~AskJ5_t!WvH@M(Gs}je@^x;cqzn+2L;*{9O%y z$?&%T{ygyKfWNWuHy!?_z~4mpvwlOB7UdU#d8Y&OdWr(`E>_Hg0UVh3y>bSA&jjY3 z1IJ!;IUAUFUL$@Nn0Eo6oe^4>M(Eb`R`^jD-sBlzoD{2tzHGe-Ubjqv=2I%~a~b-6;lW_NJ%wmS(L$^Bq^{v77` zUY9HEaHkPC(gRR8rQL`pC;S$H_LF6$lGHutZ;8w;N|k|h zL14dpn~orfQsi;be93Q7B>ufB&__ZQJeMLU z&ALa1%eyvH0+TBv)fD~{kXaXkI+Vxaq$`xKjpfJ7Ex8-!PstXy;jV$@44yhp;5uUx(Sr+GTvh6S*^cS=w)o1m(ZBHbKtOtH^lW%S`;Ux`(ye3Og7 zSdvioI=*jkXU2&)HgZH8ED-Abi4{U5ln4zg8V`Gd_v^*ruexrk0RJ$j-5;T21UV3a zcR~4K?>w<0F+Cd6c-W=xf1 zEo3NoA9s+d-pqa-rg%D`y-K{lyqP6Vk%9|kHRZ$CU=DEN$>02vwFL&>EmF`t2|_e0 z?x5!ggp(;1_KAblQYcjSP*Z}h(WX?2nsWYC!ZPUi06NHCHT++A?cI4Kn5+vdIHJsk z^baNB6-v($ihySWqN8{)LN#T|YdpVG@#b0Kf+OWELd7IA?f%)CgeS+CQQ;`%S%}7X zCel*W@ye=&0Ge{fj0`{)rOA|yKu^q+Tgae7msuW9qIaPt1r&w z-({dH5^mN`hwRZ|0Y!zX&BwB7@I>k^t=4A$K7v)Y`xSaC&RKiJ`!JO5pNZHDwZ^9Y z<{e8#$zG7}O}AHMMWWx}%*O)7DYIR+qrO2AKR#2%P-QCgaZx+d+oQ_cZ_(+94)HI5 z_%W(vB{AZZ3r-L*;a}e;3+uapQ797zRPft&UtFSrDo}~TN}_sUXT^*zsB^tgj=MhP zokH1rc!00&?KGD7EU4}94@iQv0~Eo3&a`eg@_%MH(dm7Qf;e&2=U%^n{w|Z_46}GC>Mv9|D0jXkPXI2&dJ#^ zCC7ix==-7bjTl=-n=%yYs_T$eTZJw1Mi2H|m{jh|6EluB%MJ$eL_O{YX0=p>FXAo3 z#n^;rmp|}d%WwvkJC&oThxyFmGL;}%4qP|h3D&yow$aUMzKc3#@Rp0BP^mBScaQYiifnb>K}BK!WS?q- z%O5f* z$SD@rW4qwBxL`6`y8_B_zE^O3&T7Nw^?jo$9%BDr4yOVdP7g$flTc|&$9xNAsPBz= zw-%vteXW6pjX*kuPMFcEdvR2a!ck=?%HhMx6nm{n^BOIv;`+wXI#@7rgTv5(~Hg9fGAZvrOE!y{SfNgLd?Ejq;4P7xm z^G0P3jy`KN2A{boFjV;o^eL&n1}9vYXpHjoIei206N{=+S}A=auo~S0Sy(SH1Pg@q zwKxQ?{Lvwp$SaoDB=k~tHk?h$t1Dl`TL)&G|29Phh@a6bUM3C~p2OwmLqhqj@WPIU z&7?36V#ml$G*kQgLQVQB7d!mB^80L--LC<_p`on`eO>xHFH zU`{HVl?pU}`?qLiXO^}wzh2(|*XUx*J4g=wwQnJo!1l>&CF%_p)G!(Y@30^v(>G-Z zfxQs9;CrhD0}+jdbXM`@J&#Q zL$Blzp%-B2WJd+u&w#RkSJp5}PwPUv|3*o3#L(<(G{n$N+*Kal=kde0`-!+wJ-2(J z=Z^zS@CE;tUj1)X-C`dFAwNSX;*55QnP0g&0%M#x5_i+SaI$WyhaOb8wTtYC$i8#p z`B_$V_+c(|`qJcakQ+xJO%D7mx=nN)&rR4BODhE0p-Fiam9r2)w0$fp`A8B=+~a;w z&UbEDoRsYjEKSdM8om&lE{MRv)am+_$s(&q5!IIPC(EWuL6CG2RF&)r1Ip;KK@&oChw>rmZU zc_bO?mTK zF1$|GbCq0nRLuC?*yhMtnqDCM`cH&B@HKud_U2R6&Y)9Y2N_C&G-hHN(23G`-9kb< zMNCU;M28lCE%MSe=^%9ddOvP8K~h2`lwYk?meGq+80mu}gi0Z+y2#%X55+19V08-5 z?UwxYhKP@BdCY9I1qP%dTgc~y=>)Gtk0aDr#(M&_QPc}8$}vgGC#x4T>O@<8u?vP& z8;EHeV$p0PET$$tJVy^RcH#vPo|!6EIFj6RfNO~L4s#w!gQL}yz0aTkr6j2-A$rq_ z4&kx-5EW^ckrwVCRz3l5{$8_Cz7$8nzut~=j$goQAT#VC>?sI}yR`7YrcXL~Gok$U z(5QnEBqIP%2X$n;3F%>9QU|{VqTHIK?V~w}#Rj)$lHy~7$aZN(yb7gW5a6fB`w}XK zi|TGtVGhB6uFYK9qYl;SR_v34<(V{M>K)LYyq?hf2DZ41IuN#O9yO{Ie4f(b`jdsv z@CH5(Jl}}wkvt|u(ka9PZCkzY>wh5@EZardg%Vnzggk%3dOJ){;q6E-xnO{@3FRm? zQ3)l(e^SC5NT@(z3M968pHLJSF8X&Hu)CmLGyE$G#L{PJPcIg>_J3a3M>g`p;<5OT z6}IEzfWnS)^%WMuTEk5j5g!uDw}e14BL$R#o)QVI4Mhre{lJ1H7CE@3HpyQ@f12So zsr202kcAa>QqWnF1uIo&Nk#+8mD%`{$wDOkBimR2Nr9-I)zaMUU=5M1^MVDRjxv!6 zcQDJ>Aw14>h3#fbxRZdYm5p41^EqCfuJW^D@Wp&{fE}+nuOOb-8 zUvU99P$Hu+yc#}13>y0~I5J1$$ZU8M zH?qR-gL6h33K&70mr=pth9wx+E9ozeA_WJW$NO8wjp+DXGUuoDlF@>8j;r;~xX5hZ zrsoR9r^yyC8Bg@Q?P5(H77h@w4Qd6=cd&MNkp2N$T4ZhTnk?e}ZP3ee%Pv;~s|j`m2Cn7dDB(n+ zx${D=infkHQgA=GC*N)SbpuN9XvMEV>=d)t3FU_@2)mVwhLRi5H^`GCAh3(oXo95s z!BD=(SQetapiVoQJ$?(rXnDjQ|69CawPB{n&Nu>i7ae{aB5QF67F0OPfc_Nv--ZW7 z$eRLdUxY$ctfqu#w@=SsIRqx(dJye?Z7JD`0<54IMaX|4nFk6cHvs9m_}76HI%k5o z7qUGFKYJYdu-Yh;eHY80uV~MF?I~%`1noJA`!7$3!KL7i{r;ZC!qdMb3H&YtB9V(i z+4XvSnI)8cgezTf+h1_CFO;Q{^R3>8{5|m`z|r3E4~*93e~t{8%kmgo|_#aySyTBsj*DTuHi<;m>qG zh^sH8_bR7Q>FGverX;v{SgmZ#Me(2ovOfai%jX*=;s$3od^zx|!U>)iHHEL^#;pp_ zO)RNT6aD+_ND$dsXZaUGU>ww|_#q-+g%?s4-~ad#f6p(4vXdw_^gJw-ZK9WD(1++{ zx%XawPq9!Ypng}6Pbk|>&Z~s-S_3x7CS{)5P~^xN>_x+d29TdSq>Q~%bB~e+g~vks zCsLu6c(uWiJ=hDgVF-Mk$=HhmM|dq|$V!_5TfY$qG8f0CNJ?YQvd-0uO!Ghta%YOc zd1pXS^eA~EshlBAbS9itrn}f$YF;^erdCZt*>fPfiJf(6URZGdR51j88mYH1iU?RO ze9xB6PnWhJ611bd!yE6>I*M{5_Kd_8-%`6^G$T;_S_Q9mZ>&ey>FicULo>l6h1_C1 zh45~2GG}+6$0SdA^=gZ&s||~0fdqWomDE}k)|};Mg|avT0rkd}*fNDOL=40YHz3v-Gs9oQr*Dv0qTcWO znU=esXgL#0FZ>a{AHPxzewe-p^H#WDzW52kn>s5b!Y5~KtP9OEqdy#U5=;6HI5E|t zumfhhPVoD>nsQYI$^c+MpTF;(w;hb`VP=x0a8^gxOoN`+CDux}AXVtMy`^8_{SGV8Cs^ZPVcqiM+Sib2T+I{46X(*c}Y`b5=p)3^T{N6 zhBw`j(FOEG-(b3q=VA5iv-i^E*NK-nOZXi<_;DlU09PD5V5HP7-r?|T8W1v5E;5ot zpQnTP9p2^T>f=k@>^$^70px}zS_yeJid%3{tNT5{bq4v98QM7TO=SxA393vg~ z=%hS9J&PP~h&px(O3AhP)6-TaOI3R7`ZUhD{}>Y17vW|d&UM(UL}BxOnj++sY#K}B zP@i-Ot|#r{hW+w`dYXSBLsXJjS}ykY0D?KzP53+scwQ?P1&r znjK7k69!McGq^ZizA2bq5I#)QEwXSSf6<5UBrE1yzlja! zaVJA~b}z4<0{qFxpZWMBIoTN~2%kt!IehE!+u$<^TNMlNezacB>N7qL%r$YN zs)4!IC?L~>g}m(v{Kda(xwZ!AQ1uckB{PmN{)`_1Pl-J$oRGo%;ARj?w$QnA-5>!pOoE zYCK=P24P1+-iIXSkL3Gaf40uIP-2YdywN+%pQG~)mPg(}P$?LL{LLJUhP4m$(VgGt zqs>h|FjBd_pZh2D?vIpvHYSz}M7%jGm4Cns&@xX=K^TJJMgZkRUP#%UgI}(1Sc5JqO>PM4lg;w4GPCc{_&6ncabSWC9jx z2o@iFzYc1DsKn-yrH^>@VU~?VsRL27K21_T_Wc8=qst7u@S)pLf17Y_ zUO?H>->7yt^l|-qj0wIi{klx#yZw^y?g8KZdrjw9t=A-Ky#~F+^KO$A={A}h?>BoQ z{l=lMSV(h1C~}|WAS#K0_>}a~1ih}j0vVt;Rq}7aU0j`akX%Ld7x7cc;Ls<(Peibk zAVH!?EF}Xvv3w=Hw{Z^-4Wbo@&k~%ICja^m{lI2Ex)kdLaykp^`DYRvfnaM>P_K#Y zk$;ODXRufrhf>qu@ty|omSkwdkH?XjH7^~WT%hf>`peqI^3MqW3=d7?T*#g8^$n>vufLH8P*WDJgBnQjpTFo!t~Wmz zb)K<~6ljL~&tLEjAx-Xjvqz({eA8vX?5Hm6cl{{dRq&2fiJjiAr*_)wV7nn>_a7vj zrQqX)j1NEr>P;) z*6_$TxcRlgP*&|b#Acfaei-GK<^1kT`EmoxW>M(1*OFo-_g8TB9zFDLw= zxg*>e`#TMKZ+uCdRovjPe5E9H8Vp`*Nn9Fy#(h;$inXM~*3nZ(cE)QAunh7wDl?sN?U%%%)?f{{u7J5XxLh+sxnuzc1uu!3 zp?oY&GeP-LAM}>|FS16_&61kNM#uip=-3CQ^&;MJQI>MFq(55-Lg_V*kcIVQ8*|Sn zz0RA919en~ngGk7p!wR=eo$Fvx$);@cIhXh@FM1u6qcDM(U&7VljcW=il;Cwz8~M1 z|0?Gj{h+Wu`T>5?a?QR9>k<9?RXLFg)FGqEABp`QQ)Bz(VHZ#-y2CchB$OS7Dyy1= z80#O_5#vK73h1;AG}@lv`P&=3-2~0BMzHFH!Fs_eS%twat6;UK34_Hn_|AmyO!&6L zw;jIo;5!e#3*fuJWo!Va<>1ueGFIbos~i}S#O!HOKukkHsa0hAWZZgkux_%{L-}}W z3vDe=YX|WNA;<=6PA=O%sM1H~;nMf_9Lmbr`2@C`K`1xl0k+w61)}no&#tias4D}sKRqUB-hrv31L)i%AK`LE@>FJ@Y21QM|MlhBe3X3+~-B?@C=liuY@Z3I0Zd^ z&iVgR@GIZ{bX3{VoCOW7_SvYx6KPme=D8zSGa|qLnTk9&t>57^_%)wRh{~ebs4{T0 z2Mr=%v-px|?S4*G!wy<5PFy)0YU~?srpLv0* zUU&itPsdNBv7z=!D5*-0Nb^V)hiToyvYAmK!G% zhpl>Lx-*!k7kT$A9xiT(aT@DIi(_OedT<&KfS*U&BUMoC@`o%QW0x!ATi@THqA}a0 z-%|0f_J3>gj`Dw-+8Ja(|-3l&H{(Ec7n1b&IwMR zu$9lw4xt;*ae^*`E8~FgTf*n-=Aema3kjI@wz(` zy_r;4lCz!NxOj1PXuzOZ)k>;R=}Z$R)RnC5*3r7UBf75sfbJK=KrDdO;G)|8_hb6Y zK-R3rtm-UPc%$BY6R-h1X|FeDkI<~su*2-2gVmIteb{^7Qpl?aOtiG)mk;0PDm^p% zzK4BGb|ln7oj4L|MB%v_vGlCy^DYrfPv7^j_m|FugQcenMUTUgaL_J1SC`c&yy3w3 z8t|ejUQ%_IwRq>UrqbgbGgYDVTy+f0a2ciN3Sta8?}XBG%kep?wC3HO3#$KI+RAjP z3iGAy*EAO=JD7PvrXDwt^p1e}W_VR%!A*o0!j%$BkLiRCK`iaj2?e?}3E&ZWo_QS5 zX%pHeuNjZIV(0PptUKL;nG&|1h$}{~2JqT>y&gBMPb3%T)tkqqMk;6&yv6YS>=UDk zr{QCC@pbiP6?m1AeDuKEAX*65r+Gn&{WpA@iEt^ioQ(26X3?V&*?nrt?JM|kT&s&4Oq2YzR+Pj)LHoM6*TLq{vNFMM)B9r7l&jD` z`PuI~ae1Nq2ls!VME)7RD{yTyLVn`~RjtAs(sJU9@J2R+w*Cf90~`j%X&r`p;L|_X zMNHP+T{Q`PRBw;sK?w3y6%mbe7`!v+a6;bJOIBg`Q()iFDD2*xEqF0#`sYfF+#!*d zB=<1f_Wp7?#QyRRZ~Oe<{##ZjRK+To5rdDXW5xN>5qT?^GI6pVuNq3h#1a+06ZcSp zQXoM-K*r~I9evz)jR!_}-(DA<4w}cOU@JFDXh2z=IDdJx4Wl-5wJs4t=qS2eG2`y5 zHM`So`7SoS%fH5!sPj$bm9QBWjvKj4D&qP{#{JQX$gRX}Sz99axdyk!SYj95p)u}N zQ}!>5U>EgWJA!Jl^R2MjAIITDSZM#pAi{j_%=$tME<)?iXrd9jtH^eTU)Gb+wo#Zh z4YM&F8v2DvPz=>B1ef88q)?s1M)yjn{QtQotWTPQH@qTPgn}RSpF3w+^!%E`P%YFcHLI_4R)Q>r662Ls23Jsb==}a2dfXYn~fcaqXDz5zcwFYse)L- zKS2vKw(o`VU*n>Om`6Ac+_oY{Y4GL-`9Zw3sKIu6ACL+UxB{ln{N~#0^g3AlBz`89 zhIsKq#i>R0c8f0F9hl?@6eNPkmQMkdw$N8*GE+7XVY3l64(sY17Keq&h+Yxv#+Q!e^2SxmY)RuGhsF0pw}hhZqm$Zh?2;kX%)2ET zK2L?pbpZcLRlPI(Grk&$#=@?`O*xRx64XZDC^A2#BvyTo4|5d)Z)UZqDVrZg0Tr6w zpJ+sl+F^2bSyV}ByPxYpMsHm9AGoxK($nipk$=m*$-VwaNW}v=pJGc|0)w{rY8ZX6 zc1Wh2hx#j>GE;S@!wNZ%k(kMVb$6dRVom$W^6uuWNiX5B%QOc$KbP4wd7g1o@q{QEgbhr++sJsO~~>x)Y)0 zTHLVS5Gw7-PN6bC1_o6sEPtJl$Q3Lv(QRv45zi!xagW>9ykd}u8z0q^oVL9yjw3Mm zrT3+y(BQ!t(+{Dkl>PElF1L=CGLCW^3i5hFtgQA5%$^>S$96UO+x0)#3j7HAWR>Sm z)PlEojbtQGnhx!fRb85s=R{k-TN4aOotG*+Hvqpr&&itH(4p~wfi{XT=2y~buNqkE z^LXPfRSuW*-BS&&Au9_As_suf5g(coy?GBZj;sUyaj4i8S_iE{=pm3IP`BYpw1eA- zf;AzD->n?@e=e@zyYaXf?KJ4T*V2(+VS>h;Q2%#4SM&xZ1%s@nWUYAd^zP zM#u*jkMMS0-X(h|+)kFiK-LlL_Gu}YC%aJf?x1`_faV-Cw6~JW$_NSw&vDVb1a91b z6F1~?fNXPd1R;=oXmN0GrjA3&ur|5Tj&-7$1@;m*%!}AW%obUQ417^dA3_y2nlsT- zmV;G`sJygSez4DoTEu?BWn?pZ*4NzB2b9C3X;Yulacx~-|IPB!C8$IONr*X1EWV+1 zgBYz#$mef@f%lG%-ySw2`u9kA=(^}(;g(0Cu~5&3Ao|7kOv2_tlDbz?>uxG@>qmGe z*p|6E+W*)Ozq}7~!3O zAx-R4WhBIB&%Pf0e~SKNi$cf2e-rpDvNih#6(Nc}dM;zTl~}wlZ%`ZT*-N=qhW=(! z2BKFIlw`EdF0qxycRfy%Vj5bWX-3eZ+4sY=@ij>fH|cpJPRjY^fa-bnt4 z!HN?@?G^}H2_uGx`XR1F28CK)<3D^HaOp-D*_!ZTYd3@t%Pe}tC57RxYLzrcFdm>5tTu z`{^6#b1Z7got$_+9f?OUM!BmZx>?+B+pj+~F~>ktke49jL|2>I5VdnSNp2+z5fx23 ze$;7Fn-!fr1d6tiW0VGyJ|%hKXdxy2?s&Z}ilY`t`pbB-{hd^W&g#UPLO$Ooy@cO^ zq~Gz!%lz>QdLD=u*YDnVCOe4g_~VwQFUeA&%?h$QS+oD7K`7gWv&u<>_ZRr%!JmBp zNu&2x|4EbgI{(QSkaYHVr^$Cb8XbzgK9F>9|7--N%#wz{Bh2{D@-Xfsz(aWqzI(^f zcNaXA2W6S|-aE)(1n$v2NW36oZpB?_j(tL>%eljZrv)J^;bOI$Bx4O)UXcfU7MszV z0j(wd%Hm-^Q_>)@Ql8kO@QCO(6{sof7uW;4p?m3xdw1#xL)#ZG2Im^(lqXd6Bbd=F zS&j0T4qW|wXpO^Tx`dTkqVUHf#gpCa9WwSv(7*n-@Eyn&-_O|-cwY~%k<`=MuQfsr zOPURW7Hh`&hM8x=yRpI6y!KkDa1X5`pP&N!7dKdRY7I`!ENK{cQd$ub@{@aE00d$X zUeI81K?!$Ql>NAm58}A@IM~%a2Z%mORFj$_ys!u5CE~W{X7y{`_ z#*tFFy2p1KZyLoEIRk^0k6jrJz%_M6xdD^j6SNzO(AX1t3Zo}0dXjrrMj$ob23h&< zQ65Fgzdy{x{*`^1DDIaD$g@XFZPt&ZhQT*RQ`-rt?Ls+DsI;QxfgvOlOM`INW6p+S&W0e-Tof3g$e72`@Fri|FN;kp`e*SV$g?hgkLnxk z$!Lq@)fma^^)Ae-GRd70nk7`4Qj5d@(C#8yJkY#mguD2HAWeWa%2VDVlq1w9MVU|( zSU9g&4Cdx38!;DeJ))H~>?5G?QF;3I{5JsFuk@Q-bfO+AV`6l@@N4~3CI;Dt0`|HoMiXyLU}tKW+eSBNLW$0=$sez zD3sL@HRY`!9jvJ-U*E0cW;*^tJOy|?yPJGG$9({I{oNRxfOg%j(I4dWvM7B$(cg^F z=WzO(DE$GVmqq9qcN5QEJceV&r-9$)k=)!9@f5>7{gi^9UPMccF^GL1=fX3ZC+{Is z;NB~@;4wt_TOI!#4qWWiXu@rVAY?i*+)7L`>Fd#`r?AgkDCJBG!@KuRHRUghh;(Q) zS?p0$URuQGTv#Jb$E^KSZN0vFoscOosMO<;@YPCr-)G!u2EYLg*Ra3@m9xMo0PJUR@l~f9gMzK2B#~!we zj9-HnzNo^>g;^iTi9aQAJTG!Yf!6A{9)*9#*wLh&d(ej`Lm7HKoP$l&6+WxIV(s8M=MWtk zvQ|>%zrnbreQXXX0Ay>ObFdEcQ;!Wy9l&E{xh9GIh7K6FU~x3nhBWY#N!HDA4TgP$ ziv7ZM{5#q385dH%HYw{au<6n)k9WLNJ+pyW5Gz=Umg?` zccSKj(H}}0N4dna1zG zMm{~LVzB(iuOi%jH*oDe8V(_1&#^}EB8mQEg2bAI+Z!eS@eYwSqGpxYdaOuTW+)Q8 zp(5cxwKyToV>s zZ*dFGkPCAJ9^)gv8!-gbT?-3!wM_`A4HKFWkTB|>RTBaq;xmm9g&lfZjYn{V#F8AH z_k>Fgi9qmu1sR8IRzsXO7V7QAN$$ds#~9K+z1v(Mmnp{w?4`Jv%Su!AVPC3z!}7j{ z`s_j4ws@L^-xlu)k=4Kg#!)d;6y{c|)zXU~$gfP4)n$<;+A9Sg)7Kd@QT1vh-mS0* zI}oZ$F_TTa3PfNN)dq-U-7!anbyadn&a^dxVyx3;!h~Ito#Xw!S65=2;)@Yg(WDH= z&75ifz;TFb-ehLTMXT6D$YCTGYjUw3xrFrp`h(_X zlNu5HOyW?iWFmpKt!m{rM&gbb+CH&pTA%{Apuj$p_a)LCDN$>cWNm@u|9&O%D*a2;qm{^x zhrI9I&WmFw%Mbruaau?4T@T3r0a(({AN2pS1o>JC@-8jGkSSatmZV~>B(=0BQ-I4V z>}#-azcU7g6}#Ew6e?@!f{REt(P1Son~EG0+L)opIU!Vf3_*FfAyWnEstLMXs%UHW zCT!JBN9$h38YNxaqN2*(Xb_^3&=8k6F4rWEGbs66^_rio!w%LEI+hS>PY^@l6ft0M zBs4k__BsQQJjhVjh-}ELpec^+35CZx7?2u*rXk>M3mQLx7^=b7>O<(g$eGZFz0CrW z?wuBrDG|3y3NB3#^%*U03TtiTybAYC0-mpc)x)2si^JH-2vH+cIuZB%j9_(koe>5* zzXBE>3x2*5gL#9C0?u#cs%)54c6j0fg0RyQ3$sxIDImAv{@HAc{QGmX_cm4vthCbR zujeYP{%5c6XIc2J%UD{zZVB>cnp?udR*@d+fU`F{LXtPrOf0e<5we@VfX~L0gw3t? zvNeVgzAHegNsid})uzLF6Y5X`KpCCRv@UC)x1U8PzJI}*MMCl>ROs*u^@sUM;~42E zug9a#=jX6UQXaq=Ay)nkzAu#g=h|1!0`cTYkR|we8r|(`BP%a%l;FN6vx&4+U6x~x zg)DPRK-0WfiQWv!f4=>Z?dUQAT;v-c>^tnd6cSJ#^B}2&sVNP&5^m09_zoDAPi0et zu!$3riGWHm+xqQSlSSS`I4h1pRleMIsq3_4t1TAfT@Um-VqGK&n-2Cb3~tw)Z(o@T z<$MjM_h6m{hOwG*>#Zb=`6l~kT#pwyyd$s_i;Agp>_v9Wt~Ej2FcRwP_!zH>cDP|5g~4{wjepOJ*g z4e)bKNZZGih#O(AS*2O|MH9ue6-+A2{#{bUUP07efE17{eO8YS!778D4$L#5!E-dp zSslo;;Cmo1QS7X?qFyr)(8Q@s|pgBFuoebcl*PNc=P9|_NX--dZCkr@PG^dT+ z2}YR5ipc*VIX2X8>T1doE&g`v6w%U0hzqqFHG*XTAwJY@&|;Fl6joi*0zhoQ43E&8En#ws1IwkCwU zKa*zY(x97M2~RufZcDb1FOxi4jLKE?lGe+=4LIrI_eK7#M@1(5zJQO?FM&7fO4G*b z@aV;94Si{jqlhHt%l1oYdjDFx&YOiUTaRIP$%7_zW-{Jll9gw!K#$LHc?I}jg91{X zf>`oaamxwZ@(|O+3Dt<2BT`_Ahn5BeUjU+Sf#xl@fahSC6v)eyAO1a_Z=!IFh7J4qi?CH6C6K{51hy_53xF>HY0S?_{;XI|lxe)CS)q zsWbuWRvC*PlHey}kTMkC2jP1XR9Wc+^)(Q(u{L6vm=}m4Fy1^V5ToJZkmU-^Y{jBl z?MzkgO$myjTPMLZhgvbJhoa{$XLi-y9g422I9BDR79A(Wse1S~4F&<1Lstx!DMO_HxEik|7_!i;&HE$KNyuPeTi zG%8Z;mVsxw{ESK1;jlm_wktzq<-X|Y;KqANV&i+N{|WxjeH#8xG>Y(ZI>P^1Wg8=4 zCYBGx|B3w({2x3c8u~du`i$WJ42k0Z+`;#*mErQtzP#>QOleCT0q7^k`7MIc^53|- zoZRQNsz5uR{xJ-o{_|PkL6NMoL!{f=FLu$DIPLHk2g@!KuUv}l1p%i zK0!^%^U(C-gaAq_T`@uP09#`a;)m-ZK=orY;4$At4c6uoT-yP68stYj+Ikyi_BMzAI_}y~q)m!YAkg zJQ`Vo1ze6JX%%ff++9msBzUa%yqjk&)1C7!u8@5xG#TRAQ6QGAyoUdd$4i?B5s;OP zNG01e9mqQ=(+(EErMttn_wnmRTX@YiXyTgHA)dkW)xldWct02?HIC#q!_AMyGNHwW zNQI>sRID{qsb%W zw%+GvqbK71d5^8Ncvz8GdR*7x3BIiBP*t(ch^{{10T31?ZB#9!^XR12pYt0zje033 z>7zJ3o{RVCf}|GV**IC%DIgK+4Bc&O@$pWB{lzeDa8`BrdF}MZ=#Nuf92fVIp|W&u z-%9t?LKs-fB=#JgXY(WW`8V?p1cl#{O?S!G36=bGo7CxwY@tW;@T_wPcB~|lJn{PvU~V9YukUP4D# z-w_PeqeA&?BL1K}CM?gW0&R^Cm9_IORSjRu<#z05)PdytBB$|v?L*yp!9a*#7`Em& zjzm^V-9n`p4{O7?ti!CExP}-yW(_!ZF)^m}D_rIUoH7#)rQfPE5td;rm3cvvBj9NZ zI8VW&BUr3=2EFNDl&X4=P<>ZBSS_o~Sy(Rnk|blD%T~AMOt=!SzXTQ`lJGWK1-(TV zm7KDZ?ZW#Zkdt<1o^TqHTU)I*IG7S}HmKDvi4#6C);L&`IANCKn z_p7oa;5_2Mi`ahLF%nTbqTW^5(%RnDRPK0Q_Kgq`rmwI;iOX3Slwl!b+~>0GTXRNP z!JOdtqe$e{5P3$82yC2vmeJrTY|CYiSLN2@!9=UAVTH-Ir`YIV--toGnj3&*rNXB2 z>Qz@E=+$@z=|El`K|AWWuP{4ob>!I*0D_e9+3JH1<~#x!=DBNa&m9L*^L#bAY@e+i z1FKKj!|L1_HBvC~nXDEU$gT3wKjO6*PaCFTF!r*fm=2hILK$WQJZ;@;leMaZn&!1R zAMJGY2v1LeuMAH$?s_^ANC28HgiZ94hkXtl4+;!RS{Vy1YlXgOW(};HEZm5#$1_3> z)**I*#IIxfSyQVlvVCGgNSx4u+S~!1Culc`t;gIMpZlOxpNhf949;M&(ZlvQpzga4 zdTcdoQe3P_3LQ7x95iiUZnGS4r^t#qHvk>Nol&>?2-HY}lO2Kj)JIyNLCZ{!*^$xa zDhx4qxeP6PQ1HJHg3wqt!mgQ(Tm9+$~3jDR+=^(#k)EOs4$)_}Blb9_wAap02X==2@-6vC>z9$Ml* zZiZTRG&~BGR?VBf#@wX5@^vI@ksP&YIXVwHg6v>kZ0FWIirr7x`j9*p`(TF5x*fPT z=#;73i0r_GXjU=lEL8$2xJ>S}Y@de)@i-XhQF`e;T?frZudajYd56s2F{8!nSLtaF+i855sAg*eY2iO>NT?HW~$V4Ee5glcAf6bOz4r|j>x z`w|$k!(3CqpjiCfX?We8aQG(Zsao2-8;G%(pJ< zFpTVH(IC1M@cbEg@(b?Zf}=%&MNc~zl9+>?4=j4p!A<~&VrSW2PkE!I)8sTB6f1^!jLqPK=itVswf_p{e){%BZ+gkOS;AA(AREm1E8{SoG)gC_Upk6WH1?%**u`QbR>9F$ z^fy|41R`}CiyeBj;khRJj^%MR8Jd~Wv6w1%&BW@yV z48O`_)D^!ZiyFJ_y$&v8H1L_a5zyp<>%kW-Z za&EGBD2DO(Wg0;a=uoNN`80|E;XLq74%nT-xfu3jCN^2gxj5m;gSc>}dWgp>Qh1CW zjuFaU;Z5x=#-Chj{SVN|-(wKUQNc84(MsSeD#r6}0`v>7<9;CV-szS{ z+AssLSQCEbGfL3k6Ysr0d`B-Tkk>1PJZXDnCZ?W_J!Qu1;L^YAgdH``;6w6F!E2X@ zr5E#(b-Hy)Ja6_J53D_)3>UZ0OGW@i2qHZF2P{OCdMf-3kDf;kbMy=D07uCkYQkzd zpZds%4bIN#<~1>*Aynb)^kg)P+fuO#ji+&}qzIL*LS-#G&-RADMOZg=FHq1|_DJs; zV8As@9_d^}+mqM}?J&7500cW#NnHw)udKzH{+5}Q-dyzOH6j)SQ?Dc43I}MqgTy z(^%K#tj7%|-_V>zwZ1_)i+1|rpv;Zobn;Z~8%CaTE#xUK=T4K)lrz%%0kB<|jy8!~ zanL&g3xLhFJic^R&@@vDu7ws_VFAen1P5_Kon-7`O+sa?P&o*Awy+7D^^V|Fi^JA| z^2X`n7?CzIoq;L5*6^;4xyY&imC3;tJ<0KrzcDy7K6e182jaSaz>M{RGvhO~$Kf>g zLej$1t7woes04{}(-uQDKNjZ=wv$fDo#oY!&vcX@@J)qS-xpc4)7TO^Io4@x1hFF& z9t(LN1!b*IsBt7T0~gp7aJ~-(tHglo>go3Zq_19#YWeJZQCFK#*@VaUjxygSFL2ae z9&wG>9L6Zy$BNBL=-60CLYvrp5>NC4i{8hGT^XPG_Li#{Ic3m01Y!&oi3xQ@0p}(x zfMOCVotq@)dyV%dXy4kERuPpA^g6t8U82|dpx?abZ&Ym|Up908GqC7AcpDGlssfAt z2?6ST2}O`%6}F#ZEfS3wdlhgQBXqHUVpVDH@9`cDeI!&o2ExBrq^vh0cSl9j`D91$=F#hR4&-bJR!DrH*{xZ8jFl$ zYF=d`+Y3XRlp#o-r?M+T-*6|>RBq<{b5Vlx=^`;;k7u>;u!;f6AO=79%#|wHk}^Nn>AYt7Vj|gxNCTHExr@SGCV|Un?sAa3 zWP-~O?o!WPvcbi|UH-{k?BLS-FLL=Kcagy5JMQufcUb~11|Di1cUcZD-Q3SZ++`KG ze8XMtA{SOdoAOD=xZ_RSv4T5(!X2k@$Bo>vo;!|Cq|HqNs=}S*qP}{F17Cx=ug(NY z)&efE+~o`IVg;9rN64jxyX1pQ7WY%lT?)YEYVPt*LL@b+_YUKLdbh|=X|c-X{3TUh z!(YSF`yc+YB<(H!vH9V=C#~hO3hDma|Jb5aPvxPew3T(Da&>vH?O5; zJvXnX=BeDgftpjenLg^VCvtNQH4o-ydgzh8CpTA9b4PBbXSCXbxtX4XY4_r0y3^Z! zUCCum&EIiz3pF=#^L1)I!Oiqw3VR(lE7_S#+#F2J8@M@wnqT8)dVGq#nw!}fO)I!L zmYPesIi8v=+?+_wx!g>@C18J$o71Q{jhm-Zvxb{9sX3mTbE&y6H`Bwr?9tp@OwD23 zTuRMKZmyu_KYV#vP;(16S5xyvZeB~x4cxq*nh$aF25PS1X8PR_`^UbHb|!I>)9XKJ zbXJ!LeFa=rovv~L-M>F=7oFPefvKI+Ha&AtYpU(M)@Fxc4=F#rus2L}lWn!?)&q(0 z^v$x?8tB%oE$XrZt+rk2K090M5_VNhRXplpYtY!N#kOl&nCSV!xL;#4dR=?5lrJ@; z+IB}BQ`H2higLuH*ZZ?IG>Sn_F7hPX*(GLcY%_`PwyI*>w-o zjImXLFpg0}J6Jn+;+U$y1;MPVxj{bxJg+y{sK92PXEOWZXp8-WuR#ob8g*6lrRwrl z%bI<@hYrzA4EEzbR9I~Dy8k}%)mL=Lxi6SKFte}$3r+DBK0W$O!ykmP$Fnct=I8tA zIS4ib>1qKh_%Axyc1UYGLI>Ek&+TdSJ+>M)i~v}gjg?H_Ac}cn%h#_=6uB^jy;q3h0U%Z?isXd-^X?I1@Yih; zqGZx|^#V$RzQab}z@*PJ_j#g3YQ5POG%ArcLL$3@+3R#L>??3iTqVsjJE|^M#XqoP z8D`TO>1PB|dcA*CaG<_6P+uFUZ9<+2TlX~{Oa zb;7={F9f!ZD4bxFWAR(fU+Z6@kM0X@vzc)6$V$O zkM_vL$FZ5N``y{Y*a-G8)~yaE(mELHRtLY>A?hHc!kRm%6=vb7wnmNZTbKGY-H4Sa z>KIcBo z<0{KvPsfjm*azHX<$minW~Z0xGH2{c#M3s1KXMpCA2M7IV8Ihkw{2vv#-7ww1*IOQ zV+i^Iw@Pm{n7ISnX5N51&gXG{7d?|}GtEwuUGp&8i24YGbv}jexH#RLy|1Ln##fI{ z_o7*;r&~S!=mw#t#WXWKiyGSsmbWr}j}-bQBIJr52H;S09orYKp(mf~Y=`MfBhgqF zqG`g?)UC&w2jk8GA+>`6+&lAywT6v@ZHM{SSoZg(@14kd7Uo3A`xfLqJ;5oJi4klM zr}K(r?q=QM?`TkiTGbm%)ofq>KJ68{N};Kmr>I*zC=biS#&p zCB#S|#_!ei{hq{TPpIg&)FMq~!4CBfIteRl3byp4|8=MTMbiINWj7M7OEn4K+K#B6 zu5Auc+x9mHs%=M_eW5Znd)SWH_HKbNNoDFT{u)pBot9DRgc{3`;dG#6={=kt(`D&A zoK|^D-{JIVE=$kh^h_^Hn}nT~PE9>pX&t@R+*ZAvE*~@psJFAt`<`0c)h)CqhYCU0 zNA{`9TPzWedDFc}zt(rt&RbtvHFB{^Q_t)Z>DLC@t5sXR52o_-D%DxJvan&kl9zY#U2TkiS%O>K0u;Hv~=Nn#y);Vu6AEaRq7R1t+hv>1EUJ5p}Sh_>*(pemDhYi+gv2LIXOn^t*Y<$dTbwt*{!hZFpF z!!faNYz=n9Fe-`E%dO!XW9T=Ut?TXUhEZ{`Per{z*C2eSN9JjZYv0duzbIKMR??B%MoOBZ0-w0=4!n5p#2C1Ew`0H+HM-4kF7o1d;uc9|> zyP3XquN_YHOtqArUOAjCJQ)*eRpo^W_7bRSseu|2uFVZrm)-Q5+fU6t2uJ6As_m(> zG`4GWt=mVzKRGl+LD$hwwnA7fm0_7;zQ z-4b?$o@!~yO?JSjr3)r4TR# z^f+#)+%DRFZ`uW^8cx$>9mC>Jww<&`%LxdjpID$WTSVV^oex=6E$d1jm_T+_%Y*1< zZp_7ZCtCS&x*q%{%gMK&dU`^oeGxJf6qefH`+>+Ll*%-sv% zSmW8EO}M$Jq1lTTjrbUHfcrU9DSOCc+F7OgkoeLbi_}ja&?WIl@)!Kt=8hxp= z#P|gVtzB7*A9aVilA=^bW3#iHs*kFiexFFav_(ZpjAs@5PK^f?Tg^vM*&d}Qa%Z>I*$&{xymWJp(Yzgo zF5k=Fwy&x44f>rE@k$UIgWB5-W*bNEw4bxjQM!+E_O)92sKe4p^@(DrSBQ1GuC+F~ zwazkeX^mx^j$2y4PTpFIzvL~gH~Fv1D#o%&cdtz@-(@*M4`GU`fuW9qjwe!VEdB(o>J$Iu)}3m6<Jtkes)#?G%zEn*n&*bv z_unh0p%Bv0oX%ga5_?TUQ|Na(*}*zL(R$v{9H;AZP4!8j#Lfq{ciu%mw5#HW1vl7L zK-mW#4_lNl-1kaoupIBxaJ%=TcZrj*Zg;i}JJSS26lw46NZt|pdY?E&AO)uAwxHlc zbe}1`p=*uV8cmNi;pe5Ow({o6e>3wM3-nj-48%e!*_6STJwQ9$i&xz( z&;cZ>t8^arn*&-~*$~b?Y$VstJM9&ZhC%e8*6s9kDPD4Ylhh7LAuYA=ZYKu-4qnyT5Y>Z+tJ+Cdj{wB0|aPfGS_uTh=Yr~RD+Xvps) zaw=0-R}}}*wD}}fJmS&pS&`(CLzlbyYw47Mo+J%zgQ~ol4nqG?m?{qkT!9 zidaoWws+G5e(aIW=c;o0K{x);`qP zUFdAGaP}T^rYau~t~Sw;eMORIb60c~FQ;G`IvWno_9l7yXl-YjRw&um?2l@mWK1SyLty!1v(VaCtj@>N%$_HE(BdDk0v1 z-*5X4CSx1bRf}3Z>uPTVYg9XqR;IqJzV@YRX%YSKR{61#5D0zNUi!HAOBxn^inuhL ze!9@6ZH7^*+O{*ftTsbk`-el%@c_KtaDMP?=LX{ka@%tjHRbD+(s;nTVGxSk!_tPm=3zaFJR|owH z<>;$sPkX;myBughB(t?pY)TPR61o%0KPj~=3#fg`EcP5$Jl8z{vPpeaV@rKO zvvm4Nn6G;tWP$HgAGJfUja`mjsXgB%;5vJ_TU)u{Gz~hr&v9!#ga~a0_=QN=!`+%3 zb-=D1u%>xn4|h*8y~#pvKg5o&^#;)MyJea@AN!Vre zhX&+4EhF|=mxfC>k9dM+eMRMj=2N^>d1cu_yL755rXUFEIdJwq2iuK^-Wrd%6GD_ z*-YPIOMRKuOL}fN3(E$sH`5)qP#f5mg(aUbjrKgqs}Zda+NueyP*XvC3XowFRDuI? z-OvoO1K-IihqikYs~qZtovN~_ykZK7Aa*gxuhXeEcz}J(?PFNsuo<<*e*j2 z(02bCszYmv=Z!(99W`JV)_^dm0rj*79Hlj2m!>k5o~_4gfV$65$z}VX2K?Yr{_CP$ z8k=<^sJFJyPqYH4J%6Vy8N|1!f(jKx2{mC7uL-Q#S8vBt0P1)((3J1RYH$oH0ILSa z5z^TVHI1J35U0L&3Z@!I>Asu0sGq$@zlDN; zQh_qj_Bnp^2kMbpFFG&0RV`HLsvhx5v7MwFvL2^z_|elHpb4*|(KU5}h>t<6P_gc1 zT^9tQ3D^%Uo~;gUgB!XZRO<_ln&`$EO;wLzy00bS0@dtBb647KS0yUwernp@s}pva zJ=OHvPc`&)HYhRd3!}AFgNc^!|7kH(3z(H^JU>gS3Zp0Bg7%ND^12rygOKRK7c{y) zze5(N;zC}uS8DAMnhL{@Ua{&5k5td&ke`K05Gi}l3q+-U%me-(cF&`;n}gJ)Lx)%c z)q6c+;Z{n*N%If%KVR?#wJ%CbI%s+ySC@Y4nXKBrQ&W-dsj1LMc&XW@*7kI}$=BcA zWZO;X({|nB-8F8Dtq^>yRf$3WNdJ4EZ#3sB4g)tB8Nh%~7o@3pz!Q`K#&LUnW1H^% z)p>@SLO<7P9~=X72=|*^ZgQkcqN-E_+5{Ts)dSQClpqSk z&lGMyRX9*eSpj*47{t^vu!p)bv}&-wwsNGGwsMRz;YX8K!d0qqyVaF((7g7bZB=W{ zp#5z0p-tFL?G91rppL%k)>`UIXY=X-^JS)#9YHA@s8Tkd%W2G|*7Fc`32kFl*u8wW z80cpdOWuClUPuK^9JpXfqv5NzrxHz7M}JMimo&IjEK%CZ4u3XL$)4YdT(uril^(A|SPGq7pYJ zmLIpqYi<5KEIJ|LtqrT!)I04^0*=xEJokfR%a__pCS`TyM5SY{nWL_p<}c3a2xf1S z-}2I}%lb@m*>$C<+po30mav?ak12+F`CI$)mt5QAY3)L1dMa)o$nC9H zb%SblMb(rwwC-97jyx>)@%0&h>jOHQTB%FW_$#d`U<{_lVC!%&Mo?pfwZD!nxa_wc zPA+Tgf{|EW5dNds`VLtC0M@?EWt7U7Eigok?{t?6;lYi$|_7$NzRv>!4$r zs?iGDRr~8T^x5QfwlbUs_dEt2vwdcNq6Qa>A&p<@`ZUnTn2*;I`be#`4IQ)70}!gF zK;(5=+n(0&w)886HamT;HqbsYMx4N6zb}S9j&T1*Da`*JulG;i#b&DzX&bhWoxV$x zobZ*-_PJJ-x(9Bz&f{M(34|F9OUc5h=F|29Xh+K8y{!TE<2}T3K0RYVZTkZJ>|#m% zJcvGm+XIQDCne4T);y_XI{os6?Q?MS_71V?nn9OPKeJoeDIs;O;VCLYt~KbQT6NdX z=~|EI%352kG4|PVMD{D)Tlpb1{y^zb5A=KWZP>CFUC@QFQsuzuIYonNny#^zdHGsU zdwb^|@>Z5n)h8(mrALkJlt#6^Ve!{=$wGbfcNnoi17~@Fj$8nftCrAJ{I^d2EBC)EV@_{vE= z%N7(X=o#PTw1nuEfK;RX#5XtTGw@0Aw$z^X0h-$dWJ@jP30&I6ErId;e!hG^mfxpK zkg?O7GThzs15%oXx!i|*^4rh6ztWE`+0U$PuH>oI%WTfRJ!z-oZ)2)G{gb}Ev9O^Y^CE%2FIZ-cmI+B zy0a(pRo?OZC8~;N*o~0ZOH#vSj?=ZvQs~p2-f5!0q z1&-DSjxaoWoa1jX^*mo$9QVA)ap5VB9m0&bryOTo|e=L{S2I5w{1xa%~> zrD0z%?2^jyxpI!*e#$ZOSB~BKpJeEp!*TD695X-Xcp|WYyVGzS`v}L>4>|T~;&`^p zDXzzpIexx^W4m1(V{dTmKHy89A3eua&vR7ObJTmEX87b#j?WfxG{45N=P8aK2c6;h z7|C(cT#mVKb4)+WF+B7uhJVp=>{7yU*1H_b&vASt^ejW2mSgigj)u26esYH6**51G zewE1aLlej8uW@YroZ}kLMuvksa@;tWV@xW?g$9nh7I6IO8IEoK!ZBz z2OKZ%<=F8I#}QXKj`z99a7+}(xLA%pT8?|~=V&VA=wHV1iRU&vx_E3(ydT{*Y zUXIV{IL?~Ju}40~qYF6Bd4l85YdPkB$np3tjy*re`)A66a z{LN(P*>h(z-u_xIReTxsj`#UlQvC=;YRn#;WW4K(q3>MpE9H9CZGY{|{nD4~tH1l} z&*{?5#V=+hzc@!4>^Ew8u_8&*tPVIJb)F#gA2e;)wVyJiH=s7xJ^Y}w@6)2|jfZDR zrZp8S;#5W6l)4?<^nLlHZ0XrHAI*wcYLxnq9vHm%r4s3f zZSBIAs57OXpFMMNS>_^XYSfGe(>sioUKw_2gk{EDDXiW!*!<}NsZ)?G^-#nDsn_py z=`pp%(vvsr7m^dKlDbxRzW2y^()!8g@^(t&r2YO2$60?}B)vB+>XEw!J}hl}dT8Qr zVGE>&S1W6t{b{DO^_ky_JDDGqR-4TJ+G{gE{^)*Vnpa1sp44LtEO=UQmOkRI%oZzkSzWl6;nRwe&5YFQsk$VatzE%cbau z!h$RKUo#@dcIWck#0Zy%Va6h_sQykgBMBu4Tsdn>_(~XQsmxg=?_cC@^`5- z2hNioUyx1KmX}Dm{wvCR4JeZQPCdJ5X-S1Nvj6$W;~zaH?c9BC=3=E)TJhrHSCXe> zN)gNEi-)df3-%#soZy*)8>*Boj6(D$BPJn0wmqvVZqe43B zvu0V#^2em#%6}~}buN=OL_Rm5=lW4nqvo+Orem4Xxc5TFPRx8vYDv4h?A(kg(!GZ- zdgQgNkb(=w_ZzvSP^!6<9qcz|q7+|r#`MZ7#Ztewu1Ds)uu7^kMy*M`yF`jD+1h37 zt~4pFIXZvYkR0iy{$;<`f3Zw@=*QJpQh#|~n(482;ve}>N^xr@mvuf=CB>ZRJZb)- zr=;Z-``^pVep#wrcTd%Kdsj*KZb-SFdcr2P8CbaFNc$(H{YT<{8ua=assFYY)0981 zl+J4RKeeEKg=8vN_{F(Lo{^^RZMUcLo%zz*O|N{=-JUHCD|m6tDBm(EsUqp{Q}?ft zGXC0o?H}u2kaE|Rw8!XcM{l}G@DqShf4g6%}&T&=J+5?FBtOyc(p;%U+8EjXM8339{lNY)+tx@Ye_6TdYWyl`_nMd` zBLl6{g^!k>J=XR)Y3{_BV{d-GSgM`hP4~B;HB$PljbG~bKPf${F@8Sz>@q2L_0cXH z|FTqyhSyLlxr0w^8DK7wPTjrH{LAK-r01%e*M)vqErpxfrBp0^ zN}51CvX5U_DRry=y+pZWl@vQxs@&Y+d8t^luKlK?OQd4m_f?Nf&yp^_{?Ut1JX$U5p z=Httxn_CVpI#|9;dgjx{+6mX5lrm$kZTP@@inQv0vZ0~+1*vrZgZsLDJ5x&YJkaNj zcOX4?j~rZPeo?w%`=HB#*PoGk9x3eO_ePfFRr_{w{dkL1I^kTy_>jKRH{Yt-4tVYv zsrvkk*9WhCRJz+^b@B%no|XFE|1?b4ACcP39J%|`&DGFj?D*|(PghCLzo-2m_H?wN%)e?ED=*6EO)Jvs5 z-QB0{*JGuZ$8QR#9`uZ~^3{aTE>upH>H^=}RXlHzw61ygXPG%mrMun;85IyxE@fG= z3ge(Z9=am-!s8`ciTBP%?58)3*g4_ks)2zUM>Ox=G^FC;Z6nUl`E*H-aadNtrY_l)?n`4jodDJarY6Ro!tw;gPmU*T&U)@T^e zZBd{3!(8?3$zjW1j=K2Zo83nInBLN^YrmIAoO;N9^|`CBj;M+Gc=*NPherIA_oV;9 zK1WBiZol!shQ6mq3`A#NdZj4y_%i;FD@B16Sf2KYO)4e0xke5$Q+1X|?DPvT>c$5n@54<-;E95k3 zTyoNQjg}M;Gsz}J#6%46*PrM~KA{056`8cfd6qO&QMSQszE%FE>-oB*5_uzXKjevT zaqf?NE%IRGEyzQVr@hU2DDn-++lq+a!F5oinaCrN*CX$MJo;VEqmZve-cf}29_O7! z{K&fq_sF9~e1GA*tB4PIH{>-NI4?%t^8?OHkn51oN1luP59CXcw~F|YPbBw}Son)0 zK_JV1ke(bUpCXb)EF_NG$_v3nk^9j@8S7a{;wQq7m%|r6 z49sMO7;;&-M)02vcWDY}=+VGUU~2^(GO*aqE+M;yKjfbXpSqX}IWqw-lw)y?gNHv5 zE)jkfnTfgYNqPa#g*#@znM}hA!ITYmsFu6S!a2Nq|B3Wkz=qZ%D(7gpXc=YQA-(s> z;aeeG1L%zr{?7&<2Iji}?&q^Ib`6!5V>X$?(qm$hG2Ny-2RfDK?ZeMyAsX)(j(d1R zT*9L=&S!bIfX`^SjIwNLS()K~ZcjCimLZkYox_hKgZ~M6&tP%Uyiq9)VDc6$n#rE0 z@>co8k$dF$j1Y&3h0Ar#0-Wjxjfdtno0US5i{>~&6yg0d`eFumdKPvxtG{_HCK^K? zv=do!ythmLeg8y!RCnh6lkvs>-SWRRG=r0l-5TB?r}~-%_cEOFal5b_^;GyDDEn7~ zTUzb~5R>H}q{zb3TH#mcydl{xJT{lQHx_%&mAdZx!*%gn5$p{{Ptq8h1^;J(i=pU?kYP|_&NjRpco;OqIjlC$ga7#yqCfj1EKKKLD$_U< z(<`bkRFadKoJFsaMEbyA^erh(0ny0`YVA z+{#!~l%J7TU@$qmcfJX~DOq`zQAH*GnQs%^E%DHBh+sK-fuElL^Fy zffSj>Sqo;0>{0uaqFGeVvVC%4PLZh~iwa$qZ%M(-qWrwjSL ztc8|)2Qxk@kEaG@GO|RMRjAKLRZG94{S;!(gBH99TJEeuBGv;0g4gS~J|-{??+eWQ zICz32P^@1FbgbtH%yd~dBe-5BP^|X|6ze+z#k!h6_w`2i^+hgKd0lFRSl@A7=V@8w zijMV6_wa6!kH{xt4W_HcW&JNcNucoOkk8+j=YO~S{@wCYph2JtQS>p#x(-_O=qZoH zhvFyonm=2WXnk{Q)7HO*CvN@l(DtFDIwm$=jj9ct+SPK;!rcqMfB&tqV|tyv-0|n{ z_B{7~m*$sF{B`}JlIQ;xG5o8$`o28u_fsD)__$YYzfs$^jmT_Q+&bgJqVLvTyw-nV zi0Rnnl%PvfM_=-~vEb8)4p$g>KgtYIlPYo zLg2Spj_*Oq4&nEf?GHE(t=60V?umu54h~psh8M@!1wKu4pdN z82Hcv{6ODcLj9ST0e;{=I~NebV2i8}2I~eO9A*z;S8gzlbu3!}&Ii zPv+`WkZUTxpPD*AuOCn%4+Qn_>l>X4zi4VGDM2fpZfHTlP{#^wIvZ8eacB|44B#}8 zQ`lUDuo;z=%8HHSse3xx5dP?z6%UvDcW@q#S-!)=D|ER>ycSU@Tdput1($(D< zHlL#I4KNxeY(_(cqh{lC&P$j(p3gC?R#1C752WE5z$M6=&6Nn~VG+z)==_APeu?m{ z@+h0fV{*EK@@G7o!A2n&AR`W5s24*iQJboDJ!Ki0s5e}GPoTG+u_FTi1yh44^JT?x?GUL6pBBRwv zggZL^8b5P3jQE^JJvi*9_F}Zk0)pW;8%XkD#E2xsU4~+q_d`7SMYHHNkoIFRUSh=v zV5Z880Z(=TOYo(@+VSkS>a`R_lyzw{|BT~@ld6gm{oWu?oOl!keGLyuBkUJet@ z*x1sv(hBGudfpwMHl-B$3+PnR(&)iL(LGBmO2HR_ZY4K2SE=+ZHX7#{jkokC3J*^& zZy#T!pMOALP#aZnNNC%z@OJGZB0EHN?9{nSbk}a(d&Jyzch6qE`}FPCe?aWOxIu&O zx%a;KAwv^}4VOkFsz)Yiw4+ArlE;iqNgX#nZNkL#j7gKHOuc{F0}oDrXhvq%%xt|O zXI5_B>^b=bg+<1PO=gRA?!4lX`HwuhVBsS2|NAfcmcO3z->r7H{^?+(@%R3g-saEM z#bT#F#h?6h_P@mG&*M-23BS?*)8hXR`27cHfWq*+*vZdwAmRD3hW?ND9_!BFiT=mq`&pi8F_3Gze zSo7jbFRy)N-K(#?{>Gc@-+KF`495W5-W?{>90LQ(vAw^VQjNjpr|Xees)1m+ej8Hh=g14_8{Q{`k|+ zzx;ab`ibx69@7RTy?s2s*i ze10oNM#ad*x=JZ>v9?};+#7i{av$Vtk^3TFf5~+XvAgHDUXJJQ#Tp z@@V93kjEldAx}geEYgcSMEJ+_hYI(|+ak|I_hHD5$itDBB5x<;hde^a4|$}JAMy@D zUdW?_ypVSk@cUME;TY75PWr54j!r0OZ$^#|eFD=6o>n2;}!5?}_|g2 zG*RBj4MN|M&k^}Yo-gwMJ?D!>{*fzi01}Pd3%OYD7YjGBXzzzS5xGC|G~|KEGm!@) zHzIF~ycBsD@|DQjAzzEU1M&^XJ0Y(_-WPcT@&x29$R#nr`T_L?c`))h$a^AJ;D9O~ zxfgOBa$n?Ak^3RfMedKh7!VMFYJ*ke?CpeNdkc}+a>jXNqM>Uk!1;o0+RJ31* zJQw+sB7exmyr}~DM;W$QzI!Ms7#` zF7oTh_aj&S!ucxX5y-a)c_QB<_lv@<4uG$OHLlk$>c8MgEbW68T5I7x_xJb(1=@7xU;kw{?#Ov=`6S*SoEw z*wJ1*hp%&67rT!3DZ)Ma?=R$ejdSrNyWVXbEduSIM&1+o>&WAg{{^`Yxp?9}75OK~ zbCGWo9P67{S1CsO3glwlL#)$OpuJdUXmDHSt44dV?$P454zwQa#r{vRjwaUKHlh9d zLY~OQx<{k?IwIPObrrELg~JG9NBh~xjc)61*U>&pxOZEZR9@#?tkbl(ty4yz{WHjW zBA+0_cU#AdM|-i~sL^fROo#UJV|kSSK%`UAUcARA)|rMP&qezs!as&D)=kAal2|t@ zM)#G-E0BwQ6k;7M4tX`&i=7*5-PRe`qx~%5-fdlS6WZq>uS5Pg@_M&*#s;)65aK{y zhFq+hi4AGj(S8|nvF;{b=vCg}e5r7c@rnI}5orG+@}9`&A&*CHMXp0WNraE#iFN6z zX#XtoT;v(Zi;+KvT&z=zb?geXuM+9O{D^hbYP4S{((ktJy&mnwx}sR;7VF@f&|a)F z)*-J(-hg}say#;uh5V4O7wL0bS6BYV`Bda$9lgCsFWTQPudAcIUf3fS8z8HZ??S#F`350RK6@g6L*yU%YUJWMgm`W-744rF@qFSm(b7xgG5v75Q;{4s#vtXA1eaJ;zc0!FeWf@myiB;AsC6@>t}LAQ#V7 z#B&%O+UJS^a50S{?Qr**K!nqrDzSSOy$P8L-3*=q?9yoP*)#qWfHIY4gxs9*!JlW4Lor zGKCm!A#x*fBf2-?eG`V4i}9Fore?+&uNhks3y$b4=+26mhb@B@{msO5n&o`)`0_EF zeB?Qp-np31T zjK_l9g6W@wqo9)Ne z%Hs>FCsc35_)gF4HS&Cj>J8;$K1=ndAA}~xPgHOEfwm^g+{C!B&t?9TBlAB}j^D)gmrs=4n^^o4<@j@1 zdUdjUs*hBDV`cs@aJ3vh)z5xxZ!7;Y_IVEZwPczASA2?=(3d#Y`>^KA-t_a9Y2d`5czc(Q>|WShdTjXG2@jCQp zCd;=YT}G6*;Iml19o*t(Z^8QEcpswBEuZ;r+~mT|Zs8R$|EV(1X89Z~uQ$$O;W^5Y zwkUs=x|~j)t`w(q6uQLA(>2mT;69k6$C}505`p zE>97^qdhEi(KiG3XO8~KN=rhmNLuJdrmIB_%U2efjyT$6=naR2u^<(HSU zYduYJN*8Z=T>YoZdc^&YbStMcIehMZj2s?!pW&qcW~ToWUEHTQrH9LHii>-#Tpry0 zSSR~J7QfELeUjYIbN6bu@}4B;CkxBL)qk3s{RFpi9O;xlGn3C`7p`;C12fZ-WVi5L z-;<;DDg)(j!gy)FI$vH- zIM0{oYl4@!@B+8=70K&MoImVlZ@z`Qh9_#5;3ZD^ozL=5|Ic=+FV6S#o$4naf6bJ` z=i}#@vOIWypC`x1+mo5B?m36U$Jt_bCC1s=vYdIpJWG}nA9w5J=T^L(%aYe=Id{Bo z#<^b3C+GR{yj5_k%y~avfU^ZYj-Ms3bMpF-CA;T*rkq~Rv*mISe5MPZ<;L^m^l?60 zE@#dQ-NHA@`QzLo=bv+{EKknoyQOEotcSe5WI5%Jms61o&z7Gn2<~q0>R<0>Z;+oO z3T}4cvz*dTd9JKCoEOOJ$eb6-<;S_vDSwSjOJDLe~Hzk^#{ z^26s5d2)Pw-j^e%myg$TWclP^J7aL+4*d~4*M;Xeg>Q1v-yCc=guMAU){#Cw&UVyG zKJRqAkICl`&h{p(x6V9Qj-Ss{bLIH?JSj`oUp|k^lh-NvJT^~G4Rdk9?V1SokIvZj{p_#>Jw=5M0!F!9|Va>kKA2J$#+PBtAwZ?%JPN za9m-Mxy7YC`MQl&cF)&&jB@#K?Xcc5?r^^EoL{~!GgnR@Uq5lAhmZGYdt!Fu78hRV z;yzbS59bB4esOM=+lTomk9jh;%JC2Eo<2@Jj$-mS4dFP7;RJS{{^(4A&S@sWc$7YC zq~l)tj7hX_|L$LO4}RX&fAtqRz>9QJB#?H-@XR_;t{Mm=GS-W9RtzHTjqTXIQu*Fk z`5yg5J@*?f`=x9Ak-fc0grW-xF$S}HjpWa}Q$#381PquIZ55>L5+{sQkjR-%_5#}| zNSh^2=%*ll!av1uPZEBC#z6hh_(E8Gk^Q|$N5yawZVY2_*VFvPc#*b>he@C@fZa2C z!ae5h9@*VWaHnXmAnlh3yMD4=ngZkR=7uyK{tDtxQKcZNk$4|4@@_|(Xc%5~B_Huk{3Cek$DBnoAeCe~t5S15E4fZ9fxB%mZxA=at z(NMW2z_np1*HneS7x5qLL;T}>j3MDl5^f0~;d*}(KG=_hPYh|K{^&lk^Weu5GEs;A zlwj`Y#1;M?G>lk<%7>`*5GRC5<7IZJ=M+QGok-7SXbc+Rx`5&Mb?_k_28WOitJ*b& z8QW$Gci%%(wHXFF%5nwy6i|^DPV&}!lk93A@=%2@>0YcPU2^?M;(s0pJf%Pty;6Cx*8Of0imjs^D5I{P}ngpNSr63hHlg8yZJT+s2T3RSngnfHa;4 zxS$N&)9}(0gnS6sY7tg+Ac@uok?4#75ChNa->xRisEG6;k*h#|V}sKo zyDLdpE-lx#P_Cgwbu7S0bxf>>vS;a$RFB#a|5ZNBE|K1!(T2=`GMWZu)EUYs63QqX z$|wZ%8prMA|Ls~#T!!rCx z7|1GYVz4nJ#D|1H`a|M^8Uu{}vd-*#osed@K9I`?WM&Bj*?_#kJ(V++ozU?ffVpth zq5G@rLGHj?guFTil8*Xd(lJ9tIznDMnj%_2OY1{xAPr3K{XjlSqMGQaZ-04*kayn& zy|{jlo7P zciPV=lnSC8iRH8e(`ABmaea(cbP6P$EFq*5$fpy?rxV28X;oxP`^ND4$S9~kP|v)L zUYVY09@(h8rf?QWQ(#rE21o?&X%E0n6g*Qe-9@4nMuYJmHX& zpJ=E@yStEROJ}H4ouEE-B+-fp!X*IhErv7fFd;>76{EjmFbC8-IB!1#K#%;H9&xz_ zfL#4Su6`g_CFvB$Lak8*d66J!r-R~r(s(-_MEp%YMupOgC{4Vr;&Q|`DZ|kw_&MvV zQ~&VxS*R~?Jq78Zs8D(k`E2k91t; z()PvDeea6)O41(k)jk6d%DsJDTi&lhxZ!ajEvm+#8s|3R+Z%**`ppq;2x@Qrp`*+(*XH_9+C~r(n{~#M-ACG2Wp2bt3!tk`9)Sp^yHEbWm&{ z0hnhaZJUFANU%PH1b@ghB#pOC&?aSgL)+v+G zpxlQI?V=#l;kqK+(fYAF2+PdY6LigR9gzA12HP^y|UkK6q82k(WatltTcN1N5CHCEKq9?9D=dgq?L3Noaxf|(hjeMozMsDCP`du>SjiEUd# z8ddeQ#tDB7{S;(Ie+9XW;YM}_Jy;dc0vc1}+;-Dv7>ZCI5_+*M359+o^jJWeXh$MD z(snP51pUaz8f?to!HWd^$lE;mUKfzR=yzg0(&T=}+kwq1y=pwrzfSIhRN$`-QGLk#-P6Sq z4E}hzwjI>Q{~h{ksHVKsDyM8|hrM}t8} zRiLBL&wL1D06D*1A-@r~%`ctj@OIUytql!pWMc?wcjx}Ip7og)XI*f#OT_K>ao=I= zG2Km&Ee-c>yo!T7NEqDP02kfRo!Ehp=rFkM0&^c2vv!AhVNa0HMBvH5M}Zv(xrRP8 z16~j2V7M1N8tlNlb}Zy+Jk0lpf*sVSMtVByeW17C);JE_4TftFnD2pWGT1{n!IL07 zxaxtY-4A`ogJ1_8$c8KkXFALsC(^l~2N@05Vz@TL^&?#UVa{oQ>t(p!gKH~Xd*M0; z*B5YIgzG9?f54>-@gU)F^@VFRTo1ryfy)NhOK^Pz*CDvh!}T*<0ihlw3a-9z4TEbO zTv>1}hU;m#-h%5eTwjNJun~Xp2NFd(l1`*EfiV~9O1hEmqz8#1cM)TjB{wIpP;W5J&YGLmU!R{(#(-hQ?5ym( z84k-CX|i$5xa1kL421?0J*C=|HJhE^T=Hjp6%^_7a!MS2(&rgWa}EED&y1|XIe*5V zMfRaFm<=X=JorEDF)4lWf6Z_DKNn@XbA&UCtcCg+rYwD4R-u{9EU_5O8AX~R>&$$E zV9A9RVN5A1oJI6;CZcC9GKxmh`!ZwJd4(2nKOeZO8AEnTrQS($x4%6j+dS9VN@$1k zJzjz{%)H2NwXo0&bMxx47Wt&%*e^J%*ZvE3i2#)%Q`bJ+x@1IhU$9j zVJpalyEGf~^9l_!vI=MA8=QD{QISb+cDey^=goEJGvb`@k|pC|%tMA)4a!(C)Q$oB+=keI*n+5R$FUt^55#*BHHgy?^AQ&!K8^S` z;ugfch-VPLL;MXfv^~a$I217haW>*o#Fr2^As#}!g!mg`y9kbh5g$aS5$7YWM0^Qx1LAJP6Nr}(e?}x7F#Zk> z{h`0f9(dBL)?}iGst)ti8M2J*Qw=1ZnfYfNK2y*W^NR`!vI_MnPz%%~%)@bpKL2n5 zJwkuBXR=vim}#9g%V0`_S^}0Z_R$t*7wHXYMNmOOy<6#N%1+z}e&nwYj55#@p$)=s zFYpU)+&%_D$m^adhOD{nABmvvk&}IUtC>dj3`a8UE8*8+qP}n-o0zwwQbwBZQFNkTW`OA@4ZPHsj2ErCYh;JSM@pd z4(p}3r>U4rW+_Mv@!v~g+8pe&Dk>TPzON@}Q*lA+s49ha=1+LE`9(Cuv=2o@VJ&My zd?hbR5fR54(S=nZpBMNcXkINZYF5mg@C`{J!%(aPf0PXA5=oOBTlyukjk%>3$_}qB zc>5n>^syDu&ljUTLu8Ol{=Xdekebu(MMC_~70e!`9@-N3wEkV}_oe*cri zG`)Y3LsK59&@ z`#J60wQSU+rBQuy1m!MX*J4}{5J@<0ZKRg7PJj+T2)Ofl1Y-koD$eP<$0|6pL|D_$ zB2sate7dO@;|x%Wz#2)M9YZ>1C0|PK?LT>;ccy~=bl}_uGHOL0vseNXVQhTx^YK;t zF@Lf@F1OaG4wVfBI~K~g2T+50xx6a$NitP-7=_7oHMDdHa}`x2Nt}50y=2t-flNjk zJ1HS&#Eto_=y9gpgiLO2ZqZb@l&Hj%haapt05A&S?r)qjXUu}H(P)n~{zOQ;ig1PT zAUcTQO!tWUe(I@teA+e8-bCgeEq4rN9=a~N;_c&N7*Fa|LZ}6^p09c+ysN#qpXT!< z!9G6cuCM0C_9#|D zvv1bYKh(l^C}a)F^ijGXeBeoNg#S?l`Y($w{u-&(WhV3OMzYkh#G1>p<0skW+kHIo zn$%IQ^bGC}x%G9tm(uqi8voZBtxx1f%I`MODfPdr3mijzEN%U$iQMdIuAb+}oV^ZuF^5#;?4WV}&%5LT{+|beR^LA#KfXUNAHBPNSK=2qyq$te zsl5tu^$v|MwN0)-yZzO|l{W>ZA#g-VAeev-;DC&|6OabIa{kUEJ!s z@vi?q&+wD}75ih^>-Xpb4Bwhd{vG_YK&x|&8us%}{~E(@hwn4G+e`ZX)3lr28{2nv zG#unG5$k0tl)8*7_A?aLh39zo>1fQ1Ir_EgUWMjdp8;Fry!%FG2y`5 zR_pULsa|-4aQ!b62O06_oqW3zkst6yd_`AhHNd-Zrsq0Sur*(GA-6Zq=^8HIE6@!phiR| z@|Er%+0b^FYgj141)@9w8$phsjYwCRh4?32J?I@5(faex1~)!MX~dt{-KsFlT_NCM zafF=XekCAX(tCCY7vdTODv5|&7zk3H?_nuxfjZ9=eogmzibxP0DJ?|%gv`TZKMO%( zB{tD-5M34usTd$I4JjH5%VA-E(Vdr8=KSK(m-mxbxn0gH-jmkc8=2#o?6>Ky_7}4g zISgvf&Z{=QA3YwOVa@6C6Befo4%#eePTMRuIr7pm%^o&VPmbaA<0%I-PUkGo86fj; zt>jDM<1r{j{G+V zSIPTVFXj_>{I>c!?z!4JlAfP;4?nrbZznN#s--{HFF(CAKegLG_^#BonQ1mXzPRnx zJUV)%^uvQku8(fF4xYO6+rNU*`jF7c)hFTKsre%WeCjHz?a}@{SD}!9$fSNYW;e~R z4d?W)%~^(?+3$@cJG_fJ@R{=U()h(6k zq4ynF2I}?(vp=pF%4J=nj6(J^X0~3zeIz|)vDsAh7E4xp9c9(CZ?slo zayx#St5~_+o((#LAHH*DVF|C^ijJytI(NEv^C<0h%syIhHXr^C{=J-{_L1Md-zvg0 zKZlL<_3{|x&9>KBIg}438enp2T;tdO1DC zbN)IX{6%lG#G}o)-q30PQP~Bq1=mz}-pV4G?5Zkfhr}yyQ zx%}Xj#o+FDw0C3GuzR}5P;=6DnzL8R`nPWqo?d3_wQ^rRyBw3pYc!2qu6uRq^ZP7A zSG}f-wKIP*R-34r6_}jI#rxlNwk)=9W3SoQHMkgEHSe75$t*JKD4LBumZSaU3avf+ zvdYu?AEVLdc=s8-FOliX@1mycgu zB!TJsvQpR4Ez@7@z*1lH8F{Xj$MpMy_sWZNvD!`-^;q)b$L^CE7nh}8erJWB!?tM3 z{fYf}@hmgbS=x|9c~Coy_SXF!M)vN{#^OQ#u7jHXNU!e2lR?4U7nfaFA_x+oUGeRf*H^vT_ptivD zeOCFFh&NtqAQtFry5tbbd8~Q(Y`|QQJC5Wzn-uc5)*c`_5Y<4&b)+s^f;M^&OcCJR zaEQTR3wt;)Q_(Iu4s#AVtrYmTq3-*5I2p%MCp|$I^vTFu%wVf(78(4ueZVGo8z632 zk>+R?8A02QI5p}ja)ks{A+Bu|7P)@i_-c@{4-NDK9rNrN2m8Vr^cER|wgIYwi&>XX zzijRs=vmJEG2(Xy7D%4}vd-<5$wY;4Cr@cs;?c>GLdWUJjV&d*)bH|Kx!7(u6B z_t76O{s2;MpdaS+`q$W^2BPBF7Q1^>1w-yJt7+-y30Z)Q^2k{4t3jYS=znyMpZd5`G>`yv>8-~ny|+35ds52En} zYGWAt=kA{is>ydE7&OIlr<&eu2^JNqKsL1afqy~du@h*#}q)01q;d-^v!gbZ(M;+YqEWj>b7MSwf-L(lApG5}hycs+9 z!Mi1}vW2+TuN)z34|-GcU3Twwm4T0-`>=APaS^W#^Lx{US zxzhnoh`aBgc2Iq;daq^slz)!$_7X4aX6~fl{Ke=p#107ls(4pj_N?us0UHC}z6xQ%U=zDaPh>jtQwN~izQKpo!58`+d_lW^k(Ndlu!^VeTn;Bb zL@YzmfM{|QWX>Jo1n3{>ZM=Iu{iD$Bu<&IULOVE zu)^xLa4~PBOLr(^xF$FpU#u^X4FEd2Jbb0^y$k%t&xgE+)-mY2A+t1)Y_Qdw{^mVv zjNQI#b4@Q?jxXh`6bWYFrd(mnyzmg{GIEx?`p8r2IqAOg)V;#YJ$VQ35FrduUcfBH zaBFmyd1&HXiM^9Lu%Xnx5jm)SSlO&K%vHuy;yt6}f^NTxPKsdGI+%aDdpCxMKMw}A zH4$#RNPb|2zCDmQx3VqvtZQdxNy6bRz`Opaaq`e*O4Pwp5#a7SflR`s{pem)Alyw5 zE8m$y4npz(vx97c$WN^eObD6wrlV3pllICGo$(`pc%kw9n|)-k69D|k*nfz57Z5_9 z6q`Qu;l)1cIuJ@#DM5(;W$#t>Pyo9ibpc5WUGx+qaQ#M|p}!v^Sen1j_8v9^mNuNC zj^ENR0I9!Vm|L4lEot;IBL+K0s28?HfdPZH+Dnwi!hTD+{BW_FHTh)Yk{kHu#VokcyK* z__-lX2JR-%tTq8cn-I1DcHW44Ve3A0L(Eekj;)c;Lhw!+qpvz_4oAe_Uy^T)sl%L+ z=*Jp2NLFv!uy#Lmq$WQ*@84$~z#n420!L73;VS+9jT%50j=7&WGFU#{P%l@Z%)kt< zLwMONmDx!EHFg61p$kDwHjs>!x%?-47mn31^0r@`bJn8p-Ghu*hSedin(!vFNyH{x zN9b5`vou}^knD=$s5a>dZC90!OiATaX zjiT3xXTrFN#FgS@NYE)oq!3M2aF@lN6pfc~n#HaZ&6jYK3(GCYG9u9mip!WvVl0i{ z(-_TSG>xCrn2%$|>s4rwCx@Zxm1Hp0N1GjewlLU7s~!JrVY-hVc~IqqpZp8)psbN8 zL*5AHGn7d~UJ2&imuW+GB1#@3aS9hI5aFju8Rm?nD??c>P+N)=o2Std?L0-GQG5#({b1aKD<}HoV7M(# zfs_SOcOZ^|lm=3JAl`v=NQ5a~&II`lY2NwKx!$BYn~uOB+>#Iw?G5x}6c2CulRWEzhpLyOlx z=CfJ1r~N$js|sJV{0Z}`3}58zvGc1A-+bz0v5%(yj`|~Hg4BWp*Em5sNu)_4PJ%R2 zaZyrAgOVPVRG|LR>Z_}7(C%UDtF3S7?h*Qzq~AvF)5(`;FM6LE9z`n=&i9uhBKx!%W(Oo;uA9whp;>|o?JIed@@nqxEzn`Q=rI@- zAz7`dsOU;+Afz|5T5n;nD8;9x@L@}>S#leZkO@Ae=P5-x7UtefVTL>fXCE{2xPQFG z<2I_`y3?`4iC0^iQ+&B_V9pw>{i93;W}7SnCYPlxPpe7cEG3jNBI3#4+^3w5x?n3% z5s8gp7#DLbR9E(p_mHN>TtwE=kdzr=8TDLZkXd#D=xX7k%?b69E6{!w7tJmtku_de zqM_z7Osnx=d+{hftO}EfzAk~5OB3TM6O9h`8XAhkpEGVTgR)&;Y4c@&5F1 zAT^lagDnF+%us+HZ_c|Wa|d??ZPzWUKI{?Fm8^k%(sbI*t07tq*buwMJGXKIRH1Lb zQH&gW%6lLC^4F57fp5;6uKf+ z_peIOfpNueR~@SuBUOA!)DEi3$bxNJEua=u6Sf0;;&eJ1V@u!;-H@-r(xh!)RRs6& zjlaX`4d)tTj;@N?+AN!W$Rgg9xz=3*=J^;qAMXx*2b$$;0CPfDgulNewkC0hbPY4d zUq^GoFNAxzB;J&|W;!R#@iCD-tSN}O{S}B^D=!WH+GdRF3gaHF&mJTPgYyaV4m8GA zg>1ntG5+dqj&F>kUgMfcMA1z(L+3 zs(Vz5r-qzN7(50pc!Xt<2}!C75cqPtQE0t*+t9sHmjFfbjFA;(kyvf4`|WQPrMKp? z0#nIao4}Cp=#z*;*jJ^QUiK?x5a0kI#_PXpw|)$jq!k;1!qUMp^3#K zLRRRGQdo{+uG@Xyw8cM+Q5Wjsp+GmO<>!+8dK8=Fp*(RktYd6rsvCsh7j1H6i@dzrN1uOK}zgw zT-s;2M=;pgw2w0lf1hZl>)z6r2~DWKfK26x|4yR8C>PfwW+ruJnoQ()MX9zKU*Cu7 z_Ar?PQw3Qu=p4b7y5DQTsCEjkTQ**-&>$2^HtyH}k86_ESFTJ5s?pWI*(C^{HIyR_ zy7F97b|*YZFL&RC2>Pft7+dFfCSEHo?Nvds8Cd^Pos@dpv9x0lNga44?+Q z?u!Sw2!@Qx0y&5fY~My?dTj1B33M^gBH(ACOK^9Q#=*5w#L2yi5csx{#nH7<#sO@h z{-#^n!)syjpoXA_LGAtpkp(mj>IJy;l?iYWQX%kXAxofl(Z>Pk{3>oaB|fvgY7ywA zA&0@^K@{PBBT9hReN9Pn^;0A8!$1{5>mf-1=pjq6d#4dzQutrS%Xf$qwTRS69-@b{ z9ETqUi}1ybnTG46j-AjAu(6-?Z*C=f`H;tdAic>F!ILV*(I;qyzmhW1#FvT8NF4@> z)JPnrh+In^l81lN#uLR#Sdlg;6LlkDCQ2v~*-IQIh}d;Pd=)`-^{_B1(h~M^~yYt{+qX!1~zj`{mfJSIYfB*nUKmb_( zOYi?VMH3sF%Wgk!l;w5?z7OJYAZ)jQ=qfA%qcX)lF<>@E5#RY~js z){ynE6oG#xn=pfFcF?UJ!`d_pM)W@P%@&13+Xz$eqOfDDWI`+!TJl>M#mpK zCsQ_N?D-p;ztDVN2cqs~GtM~=SvgG$2y+aM@Qvl)GW5L-yYvyKYpGA->vx_MxhhW9{QlA_r4eD?R@%S+-FSw7~*yB zJ_oF{RM5EZ>U$#H?+;_rz#pP_Mr3M|OTtsa}KA@pi)Y-}TZIfiD zAE=#jTmyq~H(=4Jy;d(fK0@X`;hp@fu@I&#cS~si_5TuhX6(d|F*iQxj4#z5dmf2*NURHR%XUy7>`vA0P7U(9a#|BzRWc%xLzZoIIc@`g0^__a z$YaRbp>L^+A^r7gv^TTZ$`646#9P~cK4J6-$YihCy&Vg}xj=r5ZtV9lf!Rr@y}tYT zc;SDm6*#ZFk_Kz%v1UE5wyceeF?7#Atm_~trIe>)kn}45MhKJVBYp1^9D~0asq`VG zoIc{%4_17HjU97}oFyrI*=x%aEtnM&AYT95n%_lQ+=dJLDANodsX8l~X`8zNO3$3(iRfAWRa)-y0}{!=5yMK&*<*RSw35eIciO)51+s_1(t*(69kz6Vof7;s1pSau3+Nd4tu z%Y&aOPIpLAg(vW8*H!cQQHM#Vlu*=E4W2h(?Qv95I(MC0I?eWs2XN+fIflK5?jpe? z>FM^?bjl0_I!iQmd#E&Hs70N?6%&4lgHR1nk6FHEanWQEiaP!zN)2S%;h^*TW=hc0 zo7#qVLnCg9gs^^atUVAv9+^7Gf2_^?b$R+QPPCyQVTpYr3l^XY79I)~#ud+o%9?1Y zY}FPMesEM7ix>02=8P>Pnu?U{(B){*eYRD^wqe34S&sZum|>HcyV1+n(u(-Cr9y}l zH9N*at&k#XC=;^=E$!n?;#wa|7Y?A?63NSb{ z*3{3rEDJ4`hmk7~=)d)k&{&1sZL|7dZpk-7rg;q6Cwzw@dMrc`7RB2iK&2Sx1 z7I~skU1nxdp5{8E3@5TsXq@rjQ3M%hA-%{7jU{?rX{swMizIp-_#M{}MQ_cmR{S5a zp1bZ6H3qH6SW6Oi3en*oTk;SnBe6S;b&D?PLfXTVf>2^wG71M0ix71zhVgl82& z*=Kgl!cyi+O`?+VUO9_XM;&QZ0;`wtJ(rLX%R7H?T}{ivJWWK|oFzJu%k_53Ny@o8 zC8(sm|VV^H)`bRiRKgL(XAssfbFVHnGO-OCdU_i4?dhYGF*7 z^(}$*!+*+px1OGknZ?WWN2s4t7qTPHu8V**2gl0J513WIz$U1=%-&<8qTVO}##4Vx z3Ud@<=Ixv+c!(w1Kz>XjG@lFaV@`ueuj#`nzqnEG6u#Lwt?4_xO9bA?!F@_whD;GfUG5$9eLin2Bm-Pa#;U#!Qmi74-Fi@5z{QGGP(MxPJ@aN)`y@!>d&*qoRo-<}-epwYO;p}RRNhZlQ*20|NU<@LfEx?n`HBW}MdbA|3Bigo=wR;W znSCuK&K!eC+I*2bCVM}b^f_u!ama}0blBG;jyRSLI|h3VLna(R#C*pPCp<`$Jk$;I z`&X_8602j};lk$dj?Dyuu_cs@hK#;Blnm-4gm z4B@XVoQ1*0-iSB50M+mJe-)+7^sn8H`HD%Ko7;G3)ba%ydp!|O`|}Mo^&2iezj79j zg7cnOz=EqMA&=9=sZ{o+MvV&_g0XPQw^d{{Vx zFKQs;h7xR6EOTrOE#~CZgB@`EW5hJzGGHc9j*V&*bG{s2!3z-j7}0d*glplzQi-$E{H<*aB~>3Mejf-A_VwzrdXLGQyJ)3_ELnfQ{G{E7N< z*%)J1&pogE`pxf|E2f)HHo9dMw^gTKPc~t&s@e)V!a1!RD#A-cd)5rsSWm(!m|(VQ zdQ<2jFQx?IeZ}!C$SSWxBmcHeE!P6Hv@S4kZelFq>5rwJx}{%gVXm6+S>|Y|{paY} zjmkY3$t%B%pZB+ijJ_bh(>zy81Ayp~)5Xoipz-&_cV6EJ#8H?U#ZOz8sxp@R&Jzp# zcGLzW8GI~i#<^twGZiZ$ps+J}Ri75acpzXkvR4ePS$=4_22ce#D7*5_9<&E}6Ngaf ziQ~#1&aBeL&wlcuHe&nN10lPdpm7%_#)UxM)0#xFkLX&DlluE_e1eNc zqsRm^E-UPkt(05DVG$%X30mnt&_{!);=TxA}1uVh<`U$*J%EKZM3l18CrtI?#bH$G}1&{N-mEQ#0q>t;xiAsVA z9HLGnk&%X;2}H+&^2gzk(@KIBY2X^rL&I#Kv%wx_5$44nY!T+A9^wAte5FV_c`mzf z)0$a$b~AyMoHf*p={V8XNDgHt;}kiX{hP)Ao|tz=+VJKG#W}_FWa-!_Z76~KRN`hF zZUEs>PX>ys;*I1rqhw+z3q&JOFP)?fr{w(S%#vuwOGHaeHj|HuOVP=71@$j~h(ABB zQvE{xfEO|KTfCX4QXSvimHM@d{~?Yf+8B(YTqZBi$9|Fbg{L*o`6a`b#l`93cq($1 z34^Urz<>a)yiU{Xla$pPLkV-*>?Dy=+^lMAjE36#}A=rw5ljF{6NEE zP#0dOJg0+;9^sxAs-+vu6>@jHg^2QdL2Iec+v8obV&{-812!kYRq0rRV3mlJZL{rJ zqoHGzj;wC8^=*~y8hu89UEhQSZR&%xEU-wpW{hYTJHty%gPt{GT&3AIMs==Ukjgx5 z7zb5b!bmH8|I)UQhpX>?t}$mY8a-|I&sOT#k4(LT2>%f!%{i4xy^pF&-vHQklp&cH ziH9mW)59GU8O|ygf-lF;C;&k(2mkHs%k<s|}?4K|xQfH_kN(414Y}AoYMyha#4PZrPqEgS>@N=XxP6bG#t87ebmYr@zZj;Ez?0NcCh8bo@nP` zzJRM0i65%n(zvpQ3r!Zdu%OtCnYVwh5)yTb<_ zrf2s?HeJVq2yWwZDmvwcSq78FQQ@BFH8^BUUZfTSt3l26Z(Gpwu>_a3u;?Ove?HBM z!wWa$vUFYLs%+Xyg-i-dw>^jeBi`WfKp-`G)8KyMl#P zO#W^9`MBJCFmy*wh3I@OSno?XSKNWa=!DY@e-TkuTwkXs4c~Km%)6 zU(X-}_gQyXO-?yI`sp*N`P*GCNAvoCIoF1h^$^?AshfCsL!p6cS?a51hFtj9Br3*c zNZqyCLZ>E|m6x|s%tAb`l=zySSbS`;xHxJGU7__KR|~~!(uu!e3GH&@I;AGh7R>Bp z2X~cWBk&HLlo^U@Cz2tFGq{Fw%~AVFv_{AZ>m5qjdCTFD{L*!%gK!`WerB|NLv|@) z|7PeDQLk}u!W{tlQgQ;d&DBWzxx%=uUH(*ytp6zY%~EPRkVYV@^@WPD*H)rh_LkX5 z#F$ZJE1ThV|D_kdD(ABF{)1GZ%z1MaF;ik;%q(d`dLt3+n#ODI(mk~@1Y(UOS0tiP z^qh`unyWvHlDpv3OlcR+G;FbG!h|auS`GM7@E)odDQvjNSE)I*;$X~N0J6yG>c!gP z->~cvqJ?4`LBU>8Sz#5eoNLssP7%t+6(eQSo*)%9kJ_1#fB84ojD!j^>QA@3^>f97 zxfm7V7`B;uG~owM(#<57>BK3^Dt4)V0*kL<^%sOQ7DH)$=JA>f%V^O!=Q8fhoB+NR zYaf7`J+tWW>J%*;kI`5&$KPd#V+L4rIOyfUk#lVQ5q6Mcu2Ae*Y=;yD111z0?U*x5 zWYUwq&TTMp376o&YNkx1BLifzVdGtRYh zU5kzh$oC~858|hTqBeP3Ow;rHH6Sv}mh_{RBnS~neaZ>UB5uWwS^e|;)dm7CkCC9j z{l-XQC?g_K8eOFWhwf=QzUCCMTimg>L=*|wiTv(44e$WXaIx6(0{A5y9K)_ZIV0yX z)Vhb#SjY_G7p;*Plo5yuR2U6x->p&?m!DD+xmoxnVW(8oQK($OiELc5buAol)Hcp| zBa+?7?x9T3RcL;&T!J@-=YZ1@;5o;g4gYYSm{@wakd8pKfW+bo1z5Nqk=npVCh%< zahwMPsWF0P+~_2aM;eDJf44s3MpkKiy)OMFM_YNf(w>SVBi1|-hH|DVhPx|JQ_EN8 zy7^T9#SAVfzy+N$XNS^!=jIJ5iq}!jsWr$G?%|9PFE^Es)GTBpQY>R7eV`_p^Vqm@ zN2r$dYvmzrpa(Pv1Tl${s$j}mG=NcaR3TJ^3qb1eM=VqnT!sr+F6ZGWD4r85z*#8d zC@AEtS4G8gJDTtXCQ`s_i|4y(<9^(pfdo>c-b#Y3?k!?^Zv@Go+?M0zdLg(r25yk6 z;+F{L7+LGpHSZYVXyAsbusX=BmH}q&VvJ7gHqPd?CIpjkK?Xz4noc7&PoDp_$1p6N z^6K81l9JS9$XLzne*G0366`h{*DVUFZRBJ=^klx@9y6H_F`2KTgx5Te-*@-cRLB3O z04gpL?O-=LFWKapW@B*&GXr(ASv{H&!>wl-gBPEts;+d{UBt71XXv-i&$o&oR^rh= zXdS(7sd~;hFLwElTSp9T84rl0d~ZMwd~x*Sj53@mk@%g5JaDnIrf#!M9}uuYULdi% z_`Xtp70FFmn>GUbkb}9%{z7NurMhFT@Rs4o(gq_2DDL z)iH~Fw^#3w2um9a`&K3N-Zkt+R!cNnoI5&Kxb_5R#snbh;L&k zi5fkVq=1hZwJH*vHpv4i(ZsC^U88a-VNy?g9z5h2V@h!+eQf7QFly9fQ*YdU?!&mF z79}s*rf%cA4gPZ;IM66F}Es(z>ui~-Ei>h>JYFnNKlE2g2d*CQw> z;gW6%XQe)sG>y zY%-4xmBfmX`W$mB7#Q}((?X6*E%()1z)R+yPt;gY7FH83#_1<-{)euk*E8t132vuN z!G)UijGOHl9B+KBZS-(q`Se0Q#f2kGIJpSruOm8S`IkeIq$q^=#u%DzT9SwhN*9zA z=9yNWN4(f-v80{(RwRhAYX1pIUudT zUX@h@cOZ3Z6AjOU4aS@c<#Lk1w&q06p?aRDdy!K#%UXK0yw)Q#@j~;Jv_mgKjV^d^ z65b!$s0(EdIq*n&2&JRI_GGb=We4%u_j9}d!tyj4p22K1`tOfvf{D75>+My zUxxP&Jtbgo;yxn^)Yj$c$J<_bG5>4HKpRrU=nNpw^g`(7%WYoNn5m6QG4M@0-Dtbx z0e-X3lg^{J_rs|iu}{gJrgz+@$F$3U(~-DKd*Jx#YZVo!=-kRYL^oL$*M{asS9gWI zf!P8&8}dX1@q%>|(N&Q=q-E_24Tmo;p;ten-A^2i9NFol>XO&3>xvT9Djmj(fqnjz)U(^QJraM{gzNZ%AlEi~ln-&CrB zG0Yc*CD-Wd8l%kI8s0`-Mu|~pxzs}2&N0Rjq11?W%vhw)zgYvn40 z{DTI0mHc=&KTH2S4r4quLFJx1G_H&~O{8dDjkPo*fhialZ^Q7Io((oO2wDdk6C1%2ernEuT&+tUYbP1Ef)2J zhz^~THW5#_McHFwHwV8&kKjVXDXSfXKgxu*b78)7uX?^R`rKm04d?_bV}0B%331b6 zdoyoQ_@~UnHu_9-al%l!kpYr=kpQg9Op=oc{yA0j2aTwu*Q!{wu|?%x%YvpVK0&TS zIPH`Y29(mH>2_)O0^&|$)Dmv9mnPS0W}TOks_S72WliviXn9=-SGnhfu}|ttD(+B` zWi%5ItMnrC?LW0x%?ttrIf>_Sk`hn$eI!_51v~cYquNebRiWr2{s8M{bAsE_g$9RK ziaDJ9*Ct6TIBF21xyQUE(vfqpr4%-FkgXzA6Nyot+Vl<-I}8xA$6{zrG&(w|8g2r+ zqLDL(3VmcIXQipEwxMG9?BZ9{n4oVkb&RW7bq$EV&-w;N+X>v`zbdy9rS^??z0(|5 z=)VC1J9cawFIP7!s}~Xx8S*qZ_m^9cH?kN30Z5%Ka1c8~unsg#YMIxLh?q)k(g$XF zX4q==#X-Tcd7Qja%Jy*aVj!6hAh`rIP#dst>5^NT@fCgn=nU-nm5!4eTs}N}&BC7N zOA3)l?<3k(T){xN}!#7u+@tnAI%!!PpE52G^BH5xYXb zvS4N=PbkD=B@QhPT%=_H6PtuYWkU4Ay~*O7;}-Ihne_Xn>yGvX&?mc{pTJ3XeNAZY zyhK$i{mLJ60EdYyc#JN#{CNr-_LV0Od1)uDJW2}yu2ryLHQhuKc-+x$!JQsm_#F@l zA0S~IluHb*8u8a2CrGBcm{ve9oC^=!a}Q06CGZQT14T2vui=s%Yvr@jtT0e;l|wg} za=jr(bABpYD-YR!RkVy3GF}%Cog5e6&9`$%2LTsXos7o7JXZzs$+s>~y+Ba%ioa*c zfwkPAd8&&jSZ^OE=)5a}N`V2aD;PWz6dc+0Mq?`ey6lXOH=x7-e~%P{dO7C>nW(Z! zCw3ALuSvtvoN#dV!z`@(IS`(1x0vFz@}rwb=oO~L4#(&A3*X}2cXl##bB4QcoesK0 zjqMB#u}j8iLYaDXD#9)RGOmHmJu(FR_6?G4L_PrgWy6FJ2sPcS^d>*`sZ)YD>o&a?3P!TTw4Sw^Rh)}} z!hM_M1)xZI@3&mq#~P|8SRo=ZxPOLnfZ@LGOUg0;WeckxfGWi4+K`ol3+gUB4c zwRpuF$`3U|P!|N@vBbZb^rRD^2Y>G^Y9;cj+;3dkD=bo|PoN};{~4>GY6h{9j4 z8d#m!;8zgTO&RASw`%AFt-#&5ET05Ac{$vxZ`G!c7BWj-#oGm-LoNe>#ECi&0Wfrs zw#huEb?emrM!20AC52M|TAZ3C%|E?<^rQ8qd~ro?-Q_rpa>wuer26t{W!YxR*GC*RS^MZ}LA?~|FcT+3u5FKmEHeFc z8^*Qg{;)rKmMZ1+KH*bhFMhOs)Ui!;EK(O}s&@++;`T}zYTKN6!@E>I3@qZi{d^oW zc5n^&e6a5IB#3;ZL_~d{7R}Do3LLh~^eR3osGFaJ)Wqy%njo2g)kYs~z0yp^l1NKs zK}~)``tqi{=%1`+busk%?nfP`E|%X3q9-x(bshCUkhKbbn*|>b{e|x*8j}SD6~mqH86ZebIi$Uv9WFfH2G=h9mFs%3 zcfkW{Pce7MSPfZJs$`-)+64q3y~{3W#U{&woY+DxE!vS{F9!e`R_eSBnbN2AW*pco zV#lH%hS+X2Xs}~=|44jXF_0OQ!^j6~OlhZ%;zpANL_>OVFPt5p~x9cT3h z8ppRi!d}et_Gu+})jA-sMnLslRLf$GOh2NZ~;+lm_?Xxsb$>>tH zjNdzamvj#=#$`<<^O9%5ZYwJ{8(-#FuDXt|bH8Ha(rxjwit`zCbM465XDDZWT&;m> zwF1O*4Q+mMoZuV3+CVjwOwRDT47f(5eP!|w178RBS5EVS(?QlEm7^6!E}c9 zUM19=Jh-?Ehd~c5dQx`^aknZ}%(kn!b8P*fCo6wN%_EudOV^uJJyM)}*gPm;1BO?e z{Y&!8%w3Tnm~7(91W^_^N$mWvULPR%eM&J?7+P#qdBjf-f0Q=uv2`rWC#GcxKhhPI zn}(VV+;`X!n@>fW+p9dm7!l)Z@F674i^n>3xrRc_8eaUBz?`&h@ixy0Lq6VmG`?fV zgpPS|8frQk%{kJJ+p)F>oSu!%%fOkQ?bh+k#9*qudmz61uTgG!>RfJleU}#k zgt1WQRZh8x=;gvYCHi;U_xgA zWQ$noO{C@*Y=(O1Dz9LQqHuY6k`omTm@^Y*fuLm5C9e(Iay3~zT5W?xqi1wga-ONs z=b%CFNtdpyK*Oj&?_%w4bL~g?ePjMMszM=9p?Q}2fJTKvIMtMIBTrzgz!8G3D{7;2 zn1ZFCIc2`n{8TsDIE_xyEj}7|cMeNU(E5064QdV^Uo|Mi+$6(7b>(;WQ&yrXK!-!p zsmw-Ds&-w0Y3}=(jT^IoN-zbSx7%`zbCKJMsc{2xitI4mOVwo9*S0MdR-^a?3NxQ7 zjJ20Use-xpJ^WgO*%LrXr`VWJqb@xeEt{W-&fYc}gE%`S%;lAnsc_S6RJeCp)VRZ_ zXzyjOCXXlDR-j5n`?w|SOOo;n)6V*)T9aD#Z2be~6DVa!b6t+1G%@@(o9SnMsU zgtg@t-v`}^1wC1l8DpCanF-Pg6U$#*34AE=LVk`BfYRd1gL>~(LaSa}TnY8)f)gbj z6kTk@{N}RK<3_s5>RT`x2F{mCO@8MYHyD`}J@7@c5_$-OonD;fI}7|-W)1V_m>KN- zH^}0GGs5G%ZtHZv=<0h3vGb9;)-RpaC*#s=GNbTBy!( zPFP#{B@4wp`BzX~CLZ)~RI!wkt=j#fLbt>xTczd6Hfc+;S!$F{8JaUks!W+7%M%{3 zP|GWGlCRfWb(`WYKG!=P0JWEDu=`KEjc%YNt@(KjVR$D4UM_S+XL;g%W4IJ&5qt#?|&+UL;k9e|8DLpX`3Qwn<8nOw6sk@ zHxeH9R}D+@SJE{`&^1QVHEQV^g-g~g(=J*b0e)HiRe-e(_+HkPRZjNp-2las{d+JU z?umFm1h5YH4a4vHQ`=+fX+%Z=jefM{W87KY!F%~^^;-h!0RwB#nK7QdZ9&+ zSic-?1H%!T5l3jzVQ#&a#x}TZfZsa!mB4Qm{FcLSDf||}Pg?rp9&zcDJ#Z&*CvfkB zdmr5U;ocAT0k{vqJp}g<+=t;l>^J&x55drH2q~3GGIn|&{0_k{KxrqN%hojQ#1?9w zS??7Hv@wDszz!AH&)+ia-;yz`2qAe?2=QNDJTMIPCO?Ap4s`;j&wP*eSCz>nCX=}+ zla%jKnIQ7cba*a-Umg6m=NPU(Rlm%DFM$E+zf$hKpdpQIQ*cIQ^%-DNDb#B)cWUqe zX;fyP8HB%LlPyoU!P7?4?tnIQ!;iqPAATYDagb$#-?fiW*(3t56X9-$yB+Q}xZB`v zg*)b(;ckYz3GODi8{uw@lnvw20=O=M-*Wh^eMBRh90RmkBMX|2l!F!)DZA(BpTH=T znuTr)PD@VXaB)gFzpe4pIDWm7y%Wqd7A+m^)s4no24=l24u1EcaTWq-+Zwd=@@%wx z7hI~=!ewhEWPB$ZZ5v?Q9tGI8ZI%9)(AoO`fY*Dx`(XlfpLDA6QzOifru(1fn7fL_ z3c&Wk?(gybRXA_qZ;~28Bz(Mdl{g)&A8h|_??tIqIB(!BsDL@k?)DC`@>tAo=mFI@$*tv9k6870e^SZSA9<~C!@GVQJFTh^43hX@-Z$&ap9qlPt?vNt8vTuRy$YdLWI-R>r- zJuOgke%8AmHKhg8PB&@uf7AZ%r%lrFw9}YRl>ArPAJAEQ&)>#z?5PBvI@>x!Pk-3` z^uIqo)YTbv9_62izqD=qug71!8^iIJ3%5tdU!J*LjlbL$6@MX}7sFwacEEbYLc=6$ zG4}En(zzQh!EcO>vfK`(X;hW}LuYsJ)u{MqBqj1>#yIiMpFR2y@yFsThXO$khC4tm zx1=Pbej9h6Q(EB{Dz|KEUr=t@8Ys7{igD45FWSp3@4oRoXM%ag@+^50$8D)Dw_JQ9 z>sFW>Zkq&y`>7tm@dx7;lMAo-O({Q6s;Ra^zrrZd8E8$6icXB2^_dY+w-Ms&3W z7vF%IJIXD`8)LI%D7$4&)~zsA+IAS*ko0YOwxv~5O;^lX077lYXJo?zSox|MNwlf& zl_)5bKS?;z;^!*|w|hceiOCl%^Nh)DO={j0q0a~`DpL8wzsuGQLQj8ZpmSBS{lhKE z)(^g*xh^kXwS6O$!#a_#3Ry4pruAqedppxK1eTyUO}%itXh{yrD9 z;lt2zgnAn~OOoyQYipuMHSk+{qn-j5nQ|dN0q3SauEK@Tf$m{h=KQ`MxK%8#fK}RR zSdRF8-Si}@S@dCH~osbHjM;#%KRIyzcJ6>oaHY`eHj?Upooc@*TTF^ycrQ zw`W@E&3A&{4g~1!H%H;N_eozrZf-k_qL09XA0Gz3q#u#^5?|%laZ>iM=UBUW-GAi`rE)jh2N_*1!ZMFLnHF&2Khj3GacxZ%)5(E9;RYNZQxQ}A){X88 z-LdILF5s@vlTEn8Mc$@g?6H<9RYLO;$O1!nN%S8`s8ud)lCq&C&px+MZ*^DL%5YP# z0soFrFgCNfI!!^71tD%HKm zH0y=NB>zfd?WO)$y|p^-S;PyHv_M%C`Tw9XHCc7&Bls9n1tujg#B6f^d1%@ke1s)% z1JY49pDEGI&o|Dl9cc%8k6t4+&uzq@U%=`jr+`B33Nr_TX>o9(KPSm0CnN(~%T%rl zAzSrT6!n)p-5V{g&86tT1czA&s0CDfR$Jr7Sy{9)d+l1YyiJxzYivUSmo~AIDdCbd z>?d5ZRZmk&_!k56-m%CPR!=tu7;sLQc2+Fyq5JD2-sz-JM>oOibSSS07_IsRTzrF; zdI3W%3+v|St($%zeb9J0Mj8=5nbr77tYmx!L!OpnOVf=)x6V6}OvS?#NnG%LH(B6S z!Vn79ARy`ZNp7-=LmdqTClhKHP?*S0CP@83ecE6l*^O>RdIwo>DF(S3=5f^Z@G;oK zSwlHy{3~9(%}rvdXPN}e8|o-7zBYi}XH@c$Oxjr~$DC|fr1vg?LNub6Q7GLpcdN-K zZ@sw?TH+>6(1v0c$y!F|4w)@p3zVq~JZ2HPzZ7%K!8i<=32(}4FoM%0lp8s5a@lH7 zYaPME62(mwHV@YW`uz!~gi5cgJ_ng8--pcWs)y4CrBajV?arir#Nz)Upiu`Q84p93 zN(ZxnHH9uW$-*u8Vo*q(27~6N3YT@>sV?#%s47*mS<7(y;%W>40fL^lxJZ+d=QT`l zoI@KRc!DG+=!4qXCI%%bFF35$)THV@-NL@ClUjI#aQ3eg zamvOOuVLZZJhdM7y|{d-)a)*7cF3Ic1CxJ~H7yG%w>SonK~kI$8i9%YeMZCEY35Y2 zz6%t4nMu0O%+dvzc9;gUVbbDz2UXlbaEx>G`5i>OYgoF=jK?5DBbK_q;H1r%?aww! z%YOuGu^&lx+%{0iq0kXB}4{mz6+nXX}?VW?3eU=CB zBNks7@UE_nUlzPh{cfXO_$~c^CVaeJO;jk52V3g8@VQ9t)7ueGx@P8wyG4B~($B2(<#U ztB?p3ye#+=JZRPvbXBC2J5%WP9z_++4IsAL^F8}4qb%-k-=%JAGZja9RL- zkGW9Fs)0#AhWK@`j7#Fb*dDv+0e=3Xjr{CIkMh%r{|lIrv1y8N2>oF1TyQ9_>R@0A zn$yk-@92W2S0~`;_KrTSZE?=_*g9Yne$}DHVa6Q`Uz?@QfDy=J0U?xcd2%~O7pnx4 zWT`ukCQT;sD|7j~1Y+ms3uGccLm)0CVULz@v!iwzV;m~7378LVb1FblS~SJTOg}=mp~@- znYsL2Y|GUGiM9A*fQds*TmTdyqxMbo7d7kdtu#aYIl@sF9 zWYaovj^edbr6Lnx&r7>nsx-rdjL!rb3viFwn0cY$^>BYi4;E;WKtZmYumDadVud|Cc8oe>mPa4S7Oe1fy)kyV`>Za3gm zVMDTMWuD9@+sKQ`&cbmMCnqcb=aAO6pPc};>~54An}j)-;@FC&M7yG~(9>dcijo${ zE^SH+gcm_2>LLid!&!GmsmXg4`N<&Y;Z7zJ z88oDwy$e@Hbc+(mxp;WbF$|eg)HAFzfM#)8Ah_5NaFLs?$4x10&tGKkFe_QX zDFva_)oQ6v{sug~jl6XRdj1WVY`q4}FH?8K^8Airm!}?-x&j!oh;?OJPL2i z;tb5j1^5gEXO8fej2YN4KCY0w2{^@WIl+#nLlOAw@NASkAMYaniFx7-1U$=KuR@<< zPy{@S8-M+l#?%$7z1PyjvHnR=Lo?!ipW-b<=o-3CB|GrT%D|`da4%-ZiSZBLo~+PS za1|W6L&w5cI19>ZeLx5Ei>p0&C+i+&^Wce;xd+MHf1O@;(d!#k)F+hn`e)Fi!t|sFotV#U76OJwqR)Vl@>+T5 zkJpE)tWqpAK`*z1VDHNOaAUt>pmaq5nr(qzS*6J^!t3QzfRpJpZ|uXf^Ct4@dO8y~ zk;L!NheS^<&Q(@{b_4L4^~$Sy=a9`g9(2JB~okL|7h9-}pHy4y*u=d|QbX z)buz!k*P@|fJazFH2Kc%>^rzb~fCnoyAe~7DO=O{q8(+oDUD<_}-4^sM^9~ z`>3yK+!U?_ci{_Zo}2ty1$(PK)+8P0X~l+-jchs*EUXxi6I|5nz!TmrjL7^_n25i* z-FRPpUAzfYpgbe-K7PXD+Do`X+W1Mn-)979ed%SF-)ExVVEuS5h8dI;c)L|VZnfkb zUX%7#8JXSAqIdcDkJR+ZGA_he7_dUOzb^^8{+kDw>v{dHQf8`m^rcWmyoKnJg`r@~4+}}PE+;sd&ye72bb;b$2E)3u`>nL2ycO(#c zi$6ziGaBeE<_NvbIZSW!55aBklQG>h@hkM){xkG$+}{CrKMcJ+n5F^NmYAfOXb?K? zSkG7a$dni;{ysC5*Zu**v{AhR`b8j28`|gW1WXaiuKrk);Ahc9zBbZ7#+c7 zXU7tiiH}VPt>@PWAqRiI5GscWhc}59P_aLXRZf}-p$GVxLTEA1P!c1ss^egCnL17e zo@@I91oC+wPSAo@|FTK-Gc#KswUG}IGJB1fP6~Tvxwl78zxO5SrTdMdqfcsTB(^y+ zv^EPb-p9Zv2E1OORnBbX4gSR=6s{neKTuxem#qAbGCs? zlY8&eJQJOdh_rWH$;%hayn6&~QM{tcA*PNrj1(Dv)p@%QMG0i%B_1tkrqJd9| z+s@VNfCMEVI>@6FgxfjG5Ajf}u-?YK3?7`59K)j1?31_V11nb=uXot4KL!4%_9HA~ z`9mAY`xyA1T3l{uwEP~HxfxY@LldlkfcN#WIiO~iL#-eH8@`p>YlH>veLxO|m~vm> zvFG8kx$p{fFTqo}5HeNWR*~w@kymdw)m$p)V`?ttcw_4Axxv3mrTv+X0p5lg8Q!>> zrrYc7!3iUc^`@X6}+D^&{7Ry8s%gvb?fBmNtZ7 z3#3-*eUQ_6RF&&H<~l>yc5Jq6GiJ7KoY0)3n=3TygYob%A0CD}r*#aSZH`TqMlw6L zEPjOm=K=GLjniE#^Yh4qTVZLMDi#o62B_SScM@P-yDdhzv~Hu#Rk03Gvd2T2i6|3+ zNX0}znV~@uOG#RwrZH6t)lUW`!DCry7UzTqD!;^66<2FqK&1V(sAGEZF;Fi2u#Run8DJ#y{e`Cq&>ZWK z3hdGnb4_|GKOcm7&ttJe@1vk9)~(KbcZ*3n{?yQA4s3OzHfiA8#=)4Q$>3Vccw0?I zs@GBhER zN6V8djdCh!_yL=JfMm#xM3!Nd`CJdKGJ`yOt!yHhO6dAC*dw&bnV<7`^5AWu`V4Y( zZY%KkEbw@4D?JZ*7qm02jb%0}S%!BEjV|)z&C2_&d`xp3b;gNM0$+gi+QIFTztOY3 zi8#9`OM7cIX=(|NA3`4(tj+K2!`G}5rEFs^^oneL4-hc+uPBO*RD6Q%T#Y+0;0Ai1 z!U+3W=(07v)XranUl@7EJ54IEfjZny)uFMx#h99ke}4?sfO*txqc5-xCNOS-VTEF_ zrJUlR-p~&gd=El@L67kEf&OST1YHX)`PetGu2?BF^kL96)R7t5qL)H2dEEe|!2aE& zhDH``Yig=PREPs8#4@RAb-1r%CC8+;I$t9-{o|uj+w^CUnw@-xuA(Wp!Og^GC94_y zJqFKb!i$d(9_R#$O>%UAX#iUQo`;NSagh(IBIE^@YiII8VSR^&KI~;|F1VUp)vOU# z>fh@?yV8NhkEtD)Mqc<6ZRmX3P#RKH`Y?_BjAcz_SrRhbaVD)TSEz2E4=Wx}GB8Mg zVn${^Z^V61T7lQ*$|o};+n*2Ra$&(_+1n_DhPTYkbl9rDQP;*#+-|t5F5taXf7b}r z$o2{yXe3w)5vW4igI8>IO>oMO}h{uhc{iOL__AUJC z{_PW?>ICUWss`QO%Ev81p!aXv^-Jmk{DRZ2jczt=nUBpo167(jCLm-GerDes<1|2Za|u z9uZ9|q%YF&*WmKeP3*H^Rp#;=?{K@wmJRF_z?#w~w};~loCo8rX@hQZ-DcH|>&u$l z_>cVRLvX3?v_bhLd?{I3o&OM@g=V8LlCts7Wo)nXBF@z4+q4c0e7Z}dH*m8zBZH3@ z8qI!sf*Qu`zp780jF6>IYs0uaPNStf6O2}MF*q)M5#u!r518<^*j`*&3Sa2F^z$3N z)B?=;QrTKDXRYv<(PZ%ja0;HhM#?D>*2S4Pp~YM)V-;KeQk(H(jtfXz*Llq?IqPtj zychQqYcn7l|E^fhI^0GHdTTTOMFk-5gX?NDeyRd|2*|I^@T&kkv=v-ZoAIOyK$5{* zYBPSK0&r&`m{gnbqFw>uamApeHsc5a;sAi(RFSLJRhZ<{#p2d=!3pyBjo4pImaT=3 zu2y%Zfwc{|d6wZY;j6J`7kQFKF_@SuOdbzLZvO3KWh}7NjUcb#cPOBm+k^(h;Z+hd_@D0lL`D7QV!0#&c)0|>Fg!I@1G;BA)KkNX4a1(r;5)~XsS;>Pz z{9r^gSVQUM6m}iCZfx?kXx5e~4e3f!i_M0L$?p z~kk{w~`QlT++q{y-k4)r2oR$QdJlE{utfT?v^!q8xQ5qk+RgSqP zg*i4~2O7MMber=a%v)d-38x*gaz)k+OKc?;ZJne1D(-o@Ob<2WQmxC zXK!Ng93l9%TgqD&8@Y+X1X(OL)jW_~vwd-L^0xZL$pD`-aiUn9USGUGXv_xU^z=)x z+3(olk`p}8lX9W@7-y-Ye{RPSz)iYjd^Cy99w7iLw+=%i4EqhNrY$kp!k)Cj9MRjJ z5sz)CPO8W*BvZA`xA-txF41fZmR=UC&s2=8#`CcS-Il>{v2>q zCF~DX%Q+?}FFAXbLA8LFjVFVT8^wa|pdgxGL?SxMJ;_KDDif2VnK+ht!IRi;Al=L1 ziJFnsc%0;nAR8?H-(#1Cu$>E)W(s%6{M3w@{AA0q9HY4g8rzFsFl^2-*5X>cVz4MU z(Z7s-+&~EY&Ba28qN4{jXgPF0*Tt9tk6BQqIGO!Tfsh^td7zjboP?i(m_QSzC|E(dJ2{3g2}EM{^AOBHaO= z@mu~MQ9gw>&4%Gl*oF%t@Dl4#T9bvA?Ak`m_AeXAY}|NWzKtZl!Zxg6$gUmfzfN!6 z(!e%XU>20MYYzMB#!X<>FuA1x;6ES|EFSXfXAI27VSfYNi^A`Kh*_I)lW&kWrq6`M z`w&i@aOW#O-%U!9@1?^qv8Atf-nq$v%d|`KrYyhhsmxOwZ(B)@;g`xVjLqMumh>Bc z?t(Q!5*^#IaITnzTTc7e;eJ*iXaHjyT}s1J1J-hO_N}4oIauDba5^?E0A8BJbZRK( zv^LRcs<~sfcM2@S+F(+jBefo$4Y1%s*#Nc2;Gy_sFte(6Tx)qL;39u|MA_8QWan&m zTnn?&t0kui{J?J)CGo~Z6THvkdtS}UWG<*%A*{D^xIKXxq@ zn0=?AVYgGgH{&)nmv(vy?#kyZuDPRxzl6<98-yWp7DhsNvp+{ylRn#Pl=_45c*H!z zVTTTg4*RLz;H0~uc4Ko~$uekXoA-0v)#n#yIPG2&RGz+Q0>1!iyUB74x-^w`N#>^^ zV_1h|1HA|1=v!>EK{n*{KEmFS1EL%d?WHe37MOwKK*%7>=4gvcn?^N-%fuzhLi`p? zVH$qzX*#+?Jo>OGi`Ol4lV967E~nVgkB##N{mXQCSaeGaeM2y-l6?k9=HFl>@_|$Q z9d6=Ji$;Giu<#CafReg!Lh|0pl+G!-_v= zzj_R&YjS1_AMb1CCk(ak$1rxV96#SLCu~N`aD>wELvh1wJh}xRc=q6T^Z`;OB02j( z+tZwVY0lxaR#=P2y?h_g4qAP0d(Bc~{FG(**J7-bT16T*A37z{a5?*uFAQ$%t1@|D z=UeDWW6*1v_qwH_@{BkhX5;$uj970-x%cNox8@GHPL1Ta3tiBH;*K;HHLE`k2hkjoN!P*6Z@=byzG79Y_lfYtigCLjA0$EJwCk3qe$#2VFzt* zHe2w4#7m`w%X=>bro{2n9Y>BrQ5j&4yZpb!NawIJj75MRSQ}~K{hSO zML~8g$U{MiT2KuIC22vsC@5JAIzmAyTF^-fnx_TzP*7?_A1P>o2DCpN5+3s-TIQr+ zYX2f_!CVT;)`Hei&{8d^j)HQvpgk0{Jfig!Y$)iS`eY2l86pb&{{3X zREeNU}l{Pbr+@$hTjZ+>AP%e#S9amIT6UV@V}$09O^Hh#VamuSa2 zFu&sp`Q%$LO8l@lIGfze;hS5*t2@tklI^{>wgoNC^e?Q80HBTjE>3LYjh(>{&QJUc zukY+`0$>3CBOhQU`JnNGw$7fXyIxxhg`OVtJpebIH|EyAbbirP)LQ{wSA8+6sjCAh zP3r3C3@Vi1@iTZFqL01V6nFbuL5{xO(R;6P^cz>WMS23?P04?{^ELbvgHH=tDbw&^ zt&Ozc_Lx5%G7aQs(3{n5O`UCByB`NExEDMT>>5*AEqpDxK3rH=a{zB&l6*#kQP37v z`5$KoTFv`;T8_JI+K)wxM@tM=Vt$Y%! z7|XNzxAAucU)919lo~w9DB!ZOE5^>gBJ^cfC&={txfv!%;}?ZCEjSmS0?)yD4BJ4l ztx?#Vf?XAREaUX%YdWaxndH9s)xc$432^;bV} z;6PXDc0aAa{|xpc-^B=QziTp`&uuNI6QDI^U5@SagY9F)F_ViBfFi_uagF{2ESOi* zH?o8i1Nr5WV{*CFp)$fdv%L0Ad0V+yI)W#zOHG#NIwpyZFT~Qpvkwmj4P6cslvVVv z=JClf-YMl0ZDY+l`kGHhes^ckSpMpr)5^tX@bq=(Z}9r+a%9k-#NF5j#VD9PaZhje zqiwXGZ@<*uxV}%f!qGx~eZ7SyP!Zn*W zu{OjtvAgbE%u=-b&bIN8Cn(6lI0gHI#&L-zef{FtH1?^hn%5{ZwyBvD+nT`lpwAh7 zf8azn9-wmIQGWbW@s5GugfO_PG=zZzhZX+_wu6YyK0oejbi49alHh}!@~7#_YpYG$ z^t_?-VN+Y=8xUX}!{^XHc6aupk3@@U!jE*;e#GGmm2ZIFtxAsV+>jjG^gIVES3VZw zLR{0in6>Jcx|(oj9CzNc@WLCq^av69CdR|me4Ds5IhO9eTb^s3)Odapq>Z9E`Ru%8 z;l#w}=?UH?#wI*5tD&KzfF|X2S3~E#JewjfL@9tgba-!Z%R|cAZMtP6-QN%;4jQM5&X9M=R-y*%9SqwkSTP z0Ug$+mUHoY(JlR2ji(4;P z=AXh>ZUZ!3gfG6%Xs6F5@H}-sSFf|y9_Mb1gOVw8x>>1C;iFj>EXBPNpcJ1!bsmtR z*5den$Tpm6Jg+yLx?m|HP@)~OP5_;SCZN;!k`1?p=)qHC`eaE-Ma2!woEg^8h zQua4^J_FFr)(e)BE+82K0JbkT6&ni=YuCa;d$plT4vRIkp2{Yhxbw3k}u)6 zvxYrG{lz0t2h>&aKK2#vAHf~}N^1-K8#qP4?`ccfyT!r@Ytyzn@lRbg5@UJRRetlxojYl5 z!0D+8d+76g)Cbh38HZ^abt@%dAHxHV+uCZ6TdNZBd+Oc7M|VQz{2Ivg$GE84#GsNC z1C5djZWG(HA;n@yP zO7RWT7-^YFjFTU=%a580$qSA2h0t^Zod<}^jJRpBgT}^XOC9dH4lXl4;ms=~^^MB= zn5l(i3ws{nlih{n5lBe=g^eRIWF0&T|37>09v)S7E)LH%*(4M800{&P5SoB!v|yT6-oFv_0pK?|HuSJ6uzd^*YiE zfy!!Kvtv`9CHwJtkBf=*%WQ^BgQ31Q9c9wR@sK_z*!v4@Xh~5_Y%5GhaWBGa%PjmZ zW4_F*sq|RC$1Vl!qY7=({T4j@TNzV{MdfcoxK0Y$O-82Ndnp5mUr<3EeKyly#JEoz z8rov+lzKHsvlO!Y#$Yto3kt~}gqYuHI4fiW&7m2DaY%Y-f=T^LAYa2=azZVE{GpiZ zO3XE=yP}HNXP`_RO77ZG@wi8+JV+&gwew5@xFDSh0S`+6dz9;g$g%wT3U)`vH{h*w zxpFLsc5O19y`sgTsl3umzw_YR>(C0BxRkEnPh2j|+mAvUhSEP{w&L_sWlXQ8$rcKw zx(osZsXh}*A172`844`wSYo5z@={J7Emx<@)t36DHq#iY(mMVY+ryL(S{y<3VWxUu zoU*q$D%f-L0m^cPoHBO5CZy(ywza&c+^x9(M6cT*)-6xvu}LG%Id4l0ik|)8{*r4OsM5|0Sy>ac$NZSTRGXB&0YAdT7}{2 zFX2+UIZoHv3*SSHKm*bx%i5d!PolOQTh7tOL{v@{Hi~_uJ=DXQL-?}8>yY%Z8TIlc zTzDO_OJdlriMOAkc%(MRi{ZR zRSD3vXp&{Sk#87EKq(2TwRD2=#Q~adMlgzy@Rtb`=?%vdaE9dl@4`E`#s(d*1;S37 zs~&@dvQ5FxNTX{UY#xh*@kL@XY3=XaZWK;QpW>bxHdgArI;j2Vd1=V9&g`>Pdz9au zLrL#m9ADQc|8)Q}MOk!ZHFeUHjr9q5DUQ-kxX1sfl3H{}O^r;kfxKuUV5(PMKJf;C z>s3RujIOhNP{AU;0hw5umQS+QT}l!*`}>5Ajdq6?a2pE=Q=YrDu4bG;E<4-0DBYSQ zd{2iqElQt0FG;uqA`~{77Q}@$!YojBb|nO#o+RcB2cH4KGf-5`XO4@o(w9^T!5i;P zpFvgNmt!*#*TqWVN5tl5-D{$yPPhkkO=`0zYH4rM%L=@9z7ujYi3L7Gz;*8Ec{jxJ zXyRF7q0zM2=~~(z-AYANMsFc9O-S!*fRXSX6J=Hm*bJ~~Rp&x%J!YWzoX=2#NzpWR z&@}jlw{g#3e9qs&H~tBn&LjMjuOq1JqIrPK-o|P<#nKSu<#IeLgR=1r52IvEhhQVc zy>+=sqQz!WP1%ejPj;N0Uf_x{>0d(2eG!H8-(ri(z8N2yGbP z+AP(aGYIR^#5@buwWtQelmcR7wR35WizZstu}-m9oCx7C z)EEc_g?84Qg%kt-L)?*%))W?cmX4TbN; ztKtq}EcA6>()YZ%W1yA4p~rX89^ZpKekJSida+1^-<^o%;u~h*rokB!tdO&MEphco z!6E4SGikczCQNuV?fw=B5dJ%5XBy3PM27zZ*_3b?z=zvsLPmmb7zm@I1A+JB@WH{r zH@r-54(1GHDLR4Q?5qa&n;fBYI8ArImB z8AA~qm*{CaZicX%_gt+aCS|4L(L5=KaSnA+ZsDA74Rrk}|M|u6i?uW4ySNuE)ci7gSG! zM+xH1Fj)$#e_!Zv$mGJFXcVgZrCkeO15Mi($`ewQzfnJ`+xFv9$Em&$5D`Ek_J!<1 z4JqKHGebbgLQ(}bspkvuKyAMT`iA3rC3Tlhy$Uvk+ZCl;lgpKZZYJlL=uy_8GperU zQR3mq=$u1xu`RFwl?4~17Xg*(@7OY-S9p^jN;ir@Q_KRrn|>vn@)9JuDfg! ztaX=-K)|@{NSBEj%7vXY>CEAze+o&58!=s4w!TGUpfB(!_Klm7Qa7FNwVmjv+_+TN z&f-QP2|s2{XqNhH+PBDPspA{I1HQ@|e}#tcAbAhvHsV2Ez@HA`+$<9RY)B5wyE?Wu z+sG&*%;7w&1GzgfjKDRV;u}6hA^EhoaCzB=sB?5o3t*XKza9Srv+;l14T#QSJO4y| z0u~TI9mnKth~+kaD*R*XPTP;kLZbfP!cG*#o`H54wT$t_( z__4rl<=5`0c6YwPYL1pUPxE7u)fqmcwi5x-;2YwCzi*0Fu|tngQsT496odr=0*XZ| z(RLz|bRHR6azybq6J2B|8cP@o+!${}-D#sN*Bj+d=>-qYx4ftdgnz_n^f85ZHO>G43Pk8)awZB zzo&`#)VS+}SuX+d6NU@D?vAc;jHG>DkYD%F~pQkdVg4MQ|eC?qsQK1-#3 zKpST;tlblBQ_LYJ67XlTwk>Cnf77z#@J@Lr2G8A(|C`6N^htBHfc)e6$WuXU$2u3R z2>ySX7`^-kc2(;N=Vjji9A37s`aiL0c-sHLi8mtv?f982rwaxYMT@)i-y%gHMYOtzps%h(5u~pPFJ{sa_2p2snMjCrft+TfE+79k zvJD(ZU+4mXXcuTQep8M8MKmuAlyivH+4=4|C%^kvs4h^LGWGI0chY)~^`!u@JQt9` zqR^Vp!kP!6=G$RnT^n-r1p+U8rD-0|>arArp(GH%EOJ86=QJM$QZ?lE==*^?ud3_t z>|?ls6PFywqkSkR6xfC}zRMl(W5VW;J|X?9J|#>cG^#m}Nr&P*It?Ji8LIt*I!PZ| z6hb1pKP>_f?a%xSHzyQpyr1MrMhL`K>uF(MTLF^ z=|9yj>px8YU#0(V(tlJZtNil?_`CQ!{N9dnX%1NP{m{Mo@@#qHJ#OX4zeRGnT^c}> zL<4A&=;*&TNmR@G>yuEudn|AW37LrX8)#CrU$i_4r#`F*%1#x)SJPMrtkI|%m$b_P zswmh07X9A=|Bc(ep#OW|zX4*LM`0C;h&+Z5Jo-2Zz`%l@c@-OYSh8U+{oM0LyVS$u zX)f81iScj0)wTzKq)n#Zgkmrhv9P?PNFx8_21rHA_BXz701841AR;xu^$08mhq0?; z9q}5THwx9XHA_mSP#`I0Ay-m3;ijS@)X8RM#pV5zN1^I8jztXf^vj}uUFPu1sP-~7 zZK@)@Yf?X{yL7#H6G?;}WwgbEti9xSX?RP2SA64#cLMam06LSfG@(v&NcY*s;rTY} z9pR_p1C!2SNmHOd$co7_;^j4%0mDJ~UYcyz$Yg0s-=!%n7F>0gRts}k3U!wr5>o3f zZQ%VkaHw_;PXxn>$PqL5A<>ox06PHsP$2bPd-yzkXNE80%tzxl8Rp$0W{~|fty<%3 z==*IrQ&AOh;kO~&JV%`WccT8Eppx3~FVO#9zTvk(0MC1XZ}=6yf5t1K(xrIj2B;cmw??%#Ydf(^DtnR84)jvd zQ(KcUztO*ks(MBU>hrrdk!ptiTD&ZT?0~xx)@0h7#&1eP?(LvT&{C&a=`~g4$RkxlBOW|-upu|m-I+Fu*0;s_h=Jbq0 z#{TNFXlwOBykCs0;h*`0w(5IEDpSipRY~FZ^G{O)N|6VId!@)D!gML}L*73hHCxld z;VF8Y^RaeRi(@4uwS!9YB6@kyU_vPc+Qa%Mq?cdRWJys9fRn z?5Q&11>Q3!U1)Xo z68Hm!gX(DP`znWkBtY2nq@7$+tz_9C8A4cwbEr0bv&DI2-Prz<=!yE_Zo}(y$PET4!juFC}zJQg@ISnF4#50}2=o z0Hs4SRJWiSfV%I_5^h|oQFv>@EOi>2QgD=!RyA>P-CToU&4VfApE<28wzMC6Jz8rp zQZ=W-97qq(*+wxu->6RNYcWQ@a#UMii%A&6zA_p1=`^(;7tNgglqjLloJe1bO`I}f zCNKA8Dki#TKTM~8peT{33Q!uRgoS}Q=>(mVtR|{Hp|6D#Cik^iu)~c=YL>E_vLf51 z{Wzf*7+QrIe{jnta-@hMlizIw0^jXRfUUP2Xkh8TMAQFAzCP!Px93ujaI0RN_6$If5*lwsE_b<)O==OHw!cv zp>qK=YMNWgdz|qEP*BvHuKf0^s6BsrAMTUt_P>BALGxirB=8&-`TJ1|V#Shf9c9WZ zu@kUuzodt2YTMo;27BnR!TwKpivD7-|0g`J!1E7yZhFsvB0r?e*0;b0<4SszGYB_n zODr2l6H`+$*T`umepd+Z7Pz}8GxO_V6yQZ2+#GS)B@WFFxa^uCcGT?e+cKpb2z8{_ zm*ScE3rwM@bh{?NYEt{zFlRwJ@(qv#*_DnKLj}83%NfKZQk)9pzR{>Im1Y=FJ+}YU zmOSE0bwe5MDCc(>+{$8&>WxL=Ocy83)x=ckyVr~3+~vO8l^bJz{!_K@O5ZhzR%DP( zSfS@Doy#7v(O~8lW!Gt#>s@v-`8DTzuAz0>sJ$LnlSQa z2V4sCpP7fW5vmNfqKS4ZwE+Yp3_nd`Lj8L<_=ujoP>J$kcq6_h$>^~M*{g{9X(r)eXrdd@7XxQ6UNEf zj1~1;A~qhS@Tnjw^GcMqTr>zNWXoV2sMUUlc#J%bx0+VuP(U&B{HTsfU9Dv~c>)zK zKu7k@ZyyV(t|SE;;j1DyU0hC{sAGN;;A@;)DF=d7+lAp3QbGls3pNk?<_`Nla2FM( zU%yew9tKXV#qLI)Xk=+Ff>?Rv3FL>k5mhF*mB`iZ**LZR1wj z#+zufZyJmPg=n)kVeRWfdb{7e6fcpQsh!mHzZ>n!=Pv>N?mKHxevOPey(EPifLyvp z_?EQgA%l>iJdN-*4^d?cnM&VpsImnm@)8O}+my?8{W?RNgK7x^1rNEEX$IOQP|>rO4M0 zQJoWs9;E=OFVa>`d76f$VaNKeD8(q7)MkBF7dUkUb71!Bj!2V)?RG#pTC6bCjPhj5uB+` z<#&}B`CUOZ#o4wlrIm%w%yTxc{{q(ZCSyZT>@J1m1O7pXg-5U$z>Q+XKQ4oz!Mt#7 zjro;pyRe?6O6qc4YV!a*h>|tyEyH2x{wNym95qv%P2S~qHxy$w+l|8Lx;sZtv^O=R zVA`sEyGckxNG3ucwZ?|gh$=O)@dfJ0cfPkaq*nTV8Te29B=1(_G|T=TNXvZG46d`6 z=nbe8nYbZ|rX0x6RL4pC5k7Il=zwK(UD3qMKz>i7Ni{W2A~Y&X3zOa#Qzs@o#ufw^ zfpc*Lu6_~sBrsT%tUuEeKsE%Itr0SEH#{UvARAWegKyKX+2DKZMI3x7%9a$=4I&Og z2#D^anwo{#R6jLU^pb#shADdSD6edS$W+C%T)3Lhun@@+%)@{q#_5l7oTeyEqjk&S z6| zdmAZRO%GYKnq0o{8r0c=+T#^eh70pWL`DW#-k)e>p^8>Zhp-l7#58d08f%hDln*x2 znYTx-Sj|drhL66yH74Hw1uoLoS(H1_kG5~18kII3NeeBnSYZ5-h1@F~z9sBBucV{% z2rBg$u-4eUWYHZquWTu{0XSb(s89U>j<=eWrbQFe8|#%()CX`^KZFCN2D;c3Y~{u$ zdXr4{0`>0{$v|x4GAoXwU-MZjxRuEpsqSrr>4hJG`kP4&s%_!1VO!KJAOXcG^_N-X zQl)1D>eLzie2hKNU_=UMu%KBw>HRmDbd0|>pk+Gpen8fco z%J1UT1RP+NeCMI{eNxbbswqDT6inKS)IlA`& z{l>yd<})?AB8^o8t*%RGmdnx6SQTk?4H)tv6`xUCV?nJTB}_dC0Nl!l%c!zkE?ZsAMY^)};>s2^^bltsXF4^DC!NbEb(~r_YBKWj`jV9O z8`+wJ7q^ZMc`^oa1o>Z~atjDi9;i7h9Wlv?@=A-mjFZc4fMv)-c3rIh@_|S0TMUHw zoJWNF9+GMBl&M2a&;d0U6F1NCB|16+ z;@Jww3n(#Ge7V9R7s0k9BDnf{Q$U^fWG(h*CW6>E>DC9F2+ zW#EMG(6?Q{F9r76EK+WDp@pfJ2tWP{~Oz6)2f` zGvnO$IJY6r-TUIOyXVFKS?K_O{a(KOD=cL@VrLmZtU++W`^J~p z8^yl5y!^W3H+cC=kldE8fF%#$H@uVgn`nT${|c#hL%_*k}q#OF||bMWB%9WU=`g?cZFYnAN~PqfB9d$IbH zyR8v;pH9Jll*P=*?zUu02f5SCw&t+sX&rr7vB^6q>X)O9&z48ikS{-^Ow~hM-suG2 zmVN5KG5k5oFl_j9E8|<&B>Z2-_-rwv`Xo3W0!J9N9m{21(NC1r2KQ=oJ7Zq-vxIqJsnsVW zWs=}663UB&q9WlYNlDf9Ln@<$G?f7(bUkLY7EfVNyd<-xqdAC33jZXkOVhIbcYkiM>t$A7(CelCN3`Ni;CL1t z_275`6A@XxUPbo<%>4$stC;)ExRRbOj&zS7#xo#U{Wb*IgXx_D$6M$)29Dr2G%als zXd0*kF8;9=7L%1F&tU7~M!DP7+dYNq6?#5wu>T64*Wq~+p8fE2z*7v*U*XAtXDU2r z;ITlJQ{Wl@IX&wuDJk{9HXS;!Hpe{%RpXUl${f&rm85v|p59ud20F6ZOG;oQdY$d! za%G>JkpWw7lp>}rlTc+^7DOqfL13G{{th~p)E{|Dl{GB6%1ZSfcy(J}`o7U#3WKmK z)O~k0N5lI#^>)Qm1mVge5C(>N_Zd`$y6Dldp6-*S-Car!O(X(|OzCUM6vLRn$&TR! z>`GM;r7akjt2Dg}O%LM+WFu}s^0!i^B5KXL32v^*#crEb118jP7zyEke|O`E+#seK6dNcbgX?=TdozZzjYtxYj)MdN9-2oD+c zQw-chOY{C&F$Rwy#(9(<85lz>=NqH6KZo{&W>e3YwNp>|+xSg}O376JDPe+CYcUFA zN?B1#mCI0K=~_dj)W+3o8^@aLo4Zz^xuMb07K>5jv|Cs}wBI#Ey+2+_bx}TtNXmEy zm55MdPhz^#{WDGTO;H@MKVa5R(tb)$v}!oVsoab!SPJoOU%Ik$FYc&NpC+&Dcq%IP z0wmo6Aj~FexMQgrj7CUjM(R9@br&-VJe$H**ka~A7^h2g6ip&eIr21aR+AK`L06rJ zp%2VLatSLm-e-`%E48K5M73L#KkQ^D%dzU61PVAWY9?2k{SL#WZlRT1-GkMhj%+72 z+&Ae(gql`!;>}P1_mEx@_)aSwRtY$t<){_JRBv8STN_zJbbel%k`%O=+jQf5Sh0Tw zXlLLc>6M717GL`6Jy@Eb2AI_*@vL;;X@f6W!7DGyBc0qDegyB$l9d)b!oqVi}OS*a~gm56wjRCSS>9>`(~)}V#O`?wWC zOT0$1c3HbaTZgk_GX zT>HATn5Ie8z)Mw2_Nb@Gh0v!~NSU-^>mFg;#Cn^wF5)akk8+V+$BGFI?N^yRyz?pD z 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 diff --git a/Pathgen/src/main/java/org/usfirst/frc/team449/pathgen/Pathgen.java b/Pathgen/src/main/java/org/usfirst/frc/team449/pathgen/Pathgen.java deleted file mode 100644 index 3c11d3a6..00000000 --- a/Pathgen/src/main/java/org/usfirst/frc/team449/pathgen/Pathgen.java +++ /dev/null @@ -1,189 +0,0 @@ -package org.usfirst.frc.team449.pathgen; - -import jaci.pathfinder.Pathfinder; -import jaci.pathfinder.Trajectory; -import jaci.pathfinder.Waypoint; -import jaci.pathfinder.modifiers.TankModifier; - -import java.io.FileWriter; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -/** - * Generates a motion profile that hits any number of waypoints. - */ -public class Pathgen { - - public static void main(String[] args) throws IOException { - - final double CENTER_TO_FRONT = 27. / 2.; - final double CENTER_TO_BACK = 27. / 2. + 3.25; - final double CENTER_TO_SIDE = 29. / 2. + 3.25; - final double BACK_FROM_PEG = -5; - //DO NOT TOUCH THE ONES BELOW - final double CARRIAGE_LEN = 3.63; - final double BLUE_WALL_TO_CENTER_PEG = 114.; - final double BLUE_WALL_TO_SIDE_PEG = 130.5; - final double BLUE_BACK_CORNER_TO_SIDE_PEG = 89.; - final double BLUE_HALF_KEY_LENGTH = 152. / 2.; - final double BLUE_KEY_CORNER_TO_SIDE_PEG = 16.; - final double RED_WALL_TO_CENTER_PEG = 113.5; - final double RED_WALL_TO_SIDE_PEG = 131.; - final double RED_BACK_CORNER_TO_SIDE_PEG = 97.; - final double RED_HALF_KEY_LENGTH = 152. / 2.; - final double RED_KEY_CORNER_TO_SIDE_PEG = 21.; - final double AIRSHIP_PARALLEL_OFFSET_BLUE = 1.; - final double AIRSHIP_PARALLEL_OFFSET_RED = 2.; - - final double PEG_BASE_TO_CENTER = CENTER_TO_FRONT + CARRIAGE_LEN + BACK_FROM_PEG; - - Waypoint[] points = new Waypoint[]{ //Units are feet and radians. - new Waypoint(0, 0, 0), - new Waypoint(100. / 12., 0, 0) - }; - - Waypoint[] blueLeft = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint((BLUE_WALL_TO_SIDE_PEG - CENTER_TO_BACK - 0.5 * PEG_BASE_TO_CENTER + AIRSHIP_PARALLEL_OFFSET_BLUE * Math.cos(5. * Math.PI / 6.)) / 12. - , -(BLUE_BACK_CORNER_TO_SIDE_PEG - CENTER_TO_SIDE - (Math.sqrt(3.) / 2.) * PEG_BASE_TO_CENTER + AIRSHIP_PARALLEL_OFFSET_BLUE * Math.sin(5. * Math.PI / 6.)) / 12., -Math.PI / 3.) - }; - - Waypoint[] blueRight = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint((BLUE_WALL_TO_SIDE_PEG - CENTER_TO_BACK - 0.5 * PEG_BASE_TO_CENTER + AIRSHIP_PARALLEL_OFFSET_BLUE * Math.cos(5. * Math.PI / 6.)) / 12. - , (BLUE_BACK_CORNER_TO_SIDE_PEG - CENTER_TO_SIDE - (Math.sqrt(3.) / 2.) * PEG_BASE_TO_CENTER + AIRSHIP_PARALLEL_OFFSET_BLUE * Math.sin(5. * Math.PI / 6.)) / 12., Math.PI / 3.) - }; - - Waypoint[] blueCenter = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint((BLUE_WALL_TO_CENTER_PEG - CENTER_TO_BACK - PEG_BASE_TO_CENTER) / 12., 0, 0) - }; - - Waypoint[] redLeft = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint((RED_WALL_TO_SIDE_PEG - CENTER_TO_BACK - 0.5 * PEG_BASE_TO_CENTER + AIRSHIP_PARALLEL_OFFSET_RED * Math.cos(5. * Math.PI / 6.)) / 12. - , -(RED_BACK_CORNER_TO_SIDE_PEG - CENTER_TO_SIDE - (Math.sqrt(3.) / 2.) * PEG_BASE_TO_CENTER + AIRSHIP_PARALLEL_OFFSET_RED * Math.sin(5. * Math.PI / 6.)) / 12., -Math.PI / 3.) - }; - - Waypoint[] redRight = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint((RED_WALL_TO_SIDE_PEG - CENTER_TO_BACK - 0.5 * PEG_BASE_TO_CENTER + AIRSHIP_PARALLEL_OFFSET_RED * Math.cos(5. * Math.PI / 6.)) / 12. - , (RED_BACK_CORNER_TO_SIDE_PEG - CENTER_TO_SIDE - (Math.sqrt(3.) / 2.) * PEG_BASE_TO_CENTER + AIRSHIP_PARALLEL_OFFSET_RED * Math.sin(5. * Math.PI / 6.)) / 12., Math.PI / 3.) - }; - - Waypoint[] redCenter = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint((RED_WALL_TO_CENTER_PEG - CENTER_TO_BACK - PEG_BASE_TO_CENTER) / 12., 0, 0) - }; - - Waypoint[] redPegToKey = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint((PEG_BASE_TO_CENTER * Math.cos(Math.toRadians(180)) + RED_WALL_TO_SIDE_PEG * Math.cos(Math.toRadians(-60)) + RED_KEY_CORNER_TO_SIDE_PEG * Math.cos(Math.toRadians(30)) - + RED_HALF_KEY_LENGTH * Math.cos(Math.toRadians(75)) + CENTER_TO_BACK * Math.cos(Math.toRadians(165))) / 12., - (RED_WALL_TO_SIDE_PEG * Math.sin(Math.toRadians(-60)) + RED_KEY_CORNER_TO_SIDE_PEG * Math.sin(Math.toRadians(30)) - + RED_HALF_KEY_LENGTH * Math.sin(Math.toRadians(75)) + CENTER_TO_BACK * Math.sin(Math.toRadians(165))) / 12., - -Math.toRadians(16)) - }; - - Waypoint[] bluePegToKey = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint((PEG_BASE_TO_CENTER * Math.cos(Math.toRadians(180)) + BLUE_WALL_TO_SIDE_PEG * Math.cos(Math.toRadians(60)) + BLUE_KEY_CORNER_TO_SIDE_PEG * Math.cos(Math.toRadians(-30)) - + BLUE_HALF_KEY_LENGTH * Math.cos(Math.toRadians(-75)) + CENTER_TO_BACK * Math.cos(Math.toRadians(-165))) / 12., - (BLUE_WALL_TO_SIDE_PEG * Math.sin(Math.toRadians(60)) + BLUE_KEY_CORNER_TO_SIDE_PEG * Math.sin(Math.toRadians(-30)) - + BLUE_HALF_KEY_LENGTH * Math.sin(Math.toRadians(-75)) + CENTER_TO_BACK * Math.sin(Math.toRadians(-165))) / 12., - Math.toRadians(16)) - }; - - Waypoint[] backupRed = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint(3, 1, Math.PI / 3) - }; - - Waypoint[] backupBlue = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint(3, -1, -Math.PI / 3) - }; - - Waypoint[] blueLoadingToLoading = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint(22, -5, 0) - }; - - Waypoint[] blueBoilerToLoading = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint(5, 0, 0), - new Waypoint(22, -15, 0) - }; - - Waypoint[] redLoadingToLoading = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint(22, 5, 0) - }; - - Waypoint[] redBoilerToLoading = new Waypoint[]{ - new Waypoint(0, 0, 0), - new Waypoint(5, 0, 0), - new Waypoint(22, 15, 0) - }; - - Map profiles = new HashMap<>(); - profiles.put("RedLeft", redLeft); - profiles.put("RedRight", redRight); - profiles.put("RedMid", redCenter); - profiles.put("BlueLeft", blueLeft); - profiles.put("BlueRight", blueRight); - profiles.put("BlueMid", blueCenter); - profiles.put("RedShoot", redPegToKey); - profiles.put("BlueShoot", bluePegToKey); - profiles.put("RedBackup", backupRed); - profiles.put("BlueBackup", backupBlue); - profiles.put("forward100In", points); - profiles.put("BlueLoadingToLoading", blueLoadingToLoading); - profiles.put("BlueBoilerToLoading", blueBoilerToLoading); - profiles.put("RedLoadingToLoading", redLoadingToLoading); - profiles.put("RedBoilerToLoading", redBoilerToLoading); -// profiles.put("forward100In", points); - - final String ROBOT_NAME = "calcifer"; - - //Calculated by driving each wheel n inches in opposite directions, then taking the angle moved, θ, and finding - // the circumference of a circle moved by the robot via C = 360 * n / θ - //You then find the diameter via C / π. - double balbasaurWheelbase = 30. / 12.; - - double calciferWheelbase = 26.6536/12.; - - Trajectory.Config config = new Trajectory.Config(Trajectory.FitMethod.HERMITE_CUBIC, Trajectory.Config.SAMPLES_HIGH, - 0.05, 5., 4.5, 9.); //Units are seconds, feet/second, feet/(second^2), and feet/(second^3) - - for (String profile : profiles.keySet()) { - Trajectory trajectory = Pathfinder.generate(profiles.get(profile), config); - - TankModifier tm = new TankModifier(trajectory).modify(calciferWheelbase); //Units are feet - - FileWriter lfw = new FileWriter(ROBOT_NAME + "Left" + profile + "Profile.csv", false); - FileWriter rfw = new FileWriter(ROBOT_NAME + "Right" + profile + "Profile.csv", false); - - - lfw.write(tm.getLeftTrajectory().length() + "\n"); - for (int i = 0; i < tm.getLeftTrajectory().length(); i++) { - lfw.write(tm.getLeftTrajectory().get(i).position + ",\t" + tm.getLeftTrajectory().get(i).velocity + ",\t" - + tm.getLeftTrajectory().get(i).acceleration + ",\t" + tm.getLeftTrajectory().get(i).dt); - lfw.write("\n"); - } - - rfw.write(tm.getRightTrajectory().length() + "\n"); - for (int i = 0; i < tm.getRightTrajectory().length(); i++) { - rfw.write(tm.getRightTrajectory().get(i).position + ",\t" + tm.getRightTrajectory().get(i).velocity + - ",\t" + tm.getLeftTrajectory().get(i).acceleration + ",\t" + tm.getRightTrajectory().get(i).dt); - rfw.write("\n"); - } - - lfw.flush(); - lfw.close(); - rfw.flush(); - rfw.close(); - } - } -} diff --git a/R scripts/drawMP.R b/R scripts/drawMP.R deleted file mode 100644 index cfc90878..00000000 --- a/R scripts/drawMP.R +++ /dev/null @@ -1,161 +0,0 @@ -plotProfile <- function(profileName, inverted = FALSE, wheelbaseDiameter, centerToFront, centerToBack, centerToSide, startY = 0, startPos = c(-1,-1,-1,-1,-1,-1), usePosition = TRUE){ - left <- read.csv(paste("../calciferLeft",profileName,"Profile.csv",sep=""), header=FALSE) - right <- read.csv(paste("../calciferRight",profileName,"Profile.csv",sep=""), header=FALSE) - startingCenter <- c(startY, centerToBack) - left$V1[1] <- 0 - left$V2[1] <- 0 - left$V3[1] <- left$V3[2] - right$V1[1] <- 0 - right$V2[1] <- 0 - right$V3[1] <- right$V3[2] - #Position,Velocity,Delta t, Elapsed time - left$V4 <- (0:(length(left$V1)-1))*left$V3[1] - right$V4 <- (0:(length(right$V1)-1))*right$V3[1] - #Time, Left X, Left Y, Right X, Right Y, Angle - out <- array(dim=c(length(left$V1),6)) - if(identical(startPos, c(-1,-1,-1,-1,-1,-1))){ - out[1,]<-c(0, startingCenter[2], (startingCenter[1]+wheelbaseDiameter/2.), startingCenter[2], (startingCenter[1]-wheelbaseDiameter/2.), 0) - } else { - out[1,]<-startPos - } - - for(i in 2:length(left$V4)){ - #Get the angle the robot is facing. - perpendicular <- out[i-1,6] - print(perpendicular) - - #Add the change in time - out[i,1] <- out[i-1,1]+left$V3[i] - - #Figure out linear change for each side using position or velocity - if (usePosition){ - deltaLeft <- left$V1[i] - left$V1[i-1] - deltaRight <- right$V1[i] - right$V1[i-1] - } else { - deltaLeft <- left$V2[i]*left$V3[i] - deltaRight <- right$V2[i]*left$V3[i] - } - - # Invert the change if nessecary - if (inverted){ - deltaLeft <- -deltaLeft - deltaRight <- -deltaRight - } - - diffTerm <- deltaRight - deltaLeft - #So in this next part, we figure out the turning center of the robot - #and the angle it turns around that center. Note that the turning center is - #often outside of the robot. - - #Calculate how much we turn first, because if theta = 0, turning center is infinitely far away and can't be calcualted. - theta <- diffTerm/wheelbaseDiameter - - out[i,6] <- out[i-1,6]+theta - - # If theta is 0, we're going straight and need to treat it as a special case. - if (identical(theta, 0)){ - out[i, 2] <- out[i-1,2]+deltaLeft*cos(perpendicular) - out[i, 3] <- out[i-1,3]+deltaLeft*sin(perpendicular) - out[i, 4] <- out[i-1,4]+deltaRight*cos(perpendicular) - out[i, 5] <- out[i-1,5]+deltaRight*sin(perpendicular) - } else { - - #We do this with sectors, so this is the radius of the turning circle for the - #left and right sides. They just differ by the diameter of the wheelbase. - rightR <- (wheelbaseDiameter/2) * (deltaRight + deltaLeft) / diffTerm + wheelbaseDiameter/2 - leftR <- rightR - wheelbaseDiameter - - #This is the angle for the vector pointing towards the new position of each - #wheel. - #To understand why this formula is correct, overlay isoclese triangles on the sectors - vectorTheta <- (out[i-1,6]+out[i,6])/2 - - #The is the length of the vector pointing towards the new position of each - #wheel divided by the radius of the turning circle. - vectorDistanceWithoutR <- 2*sin(theta/2) - - out[i, 2] <- out[i-1,2]+vectorDistanceWithoutR*leftR*cos(vectorTheta) - out[i, 3] <- out[i-1,3]+vectorDistanceWithoutR*leftR*sin(vectorTheta) - out[i, 4] <- out[i-1,4]+vectorDistanceWithoutR*rightR*cos(vectorTheta) - out[i, 5] <- out[i-1,5]+vectorDistanceWithoutR*rightR*sin(vectorTheta) - } - } - return(out) -} - -drawProfile <- function (coords, centerToFront, centerToBack, wheelbaseDiameter, clear=TRUE, linePlot = TRUE){ - - if (clear){ - if (linePlot){ - plot(coords[,2],coords[,3], type="l", col="Green", ylim=c(-16, 16),xlim = c(0,54), xlab = "X Position (feet)", ylab="Y Position (feet)", asp=1) - } else { - plot(coords[,2],coords[,3], col="Green", ylim=c(-16, 16), xlim = c(0,54), xlab = "X Position (feet)", ylab="Y Position (feet)", asp=1) - } - field <- read.csv("field.csv") - #Strings are read as factors by default, so we need to do this to make it read them as strings - field$col <- as.character(field$col) - for (i in 1:length(field$x1)){ - lines(c(field$x1[i], field$x2[i]), c(field$y1[i], field$y2[i]), col=field$col[i]) - } - } else { - if (linePlot){ - lines(coords[,2],coords[,3],col="Green") - } else { - points(coords[,2],coords[,3],col="Green") - } - } - if (linePlot){ - lines(coords[,4],coords[,5],col="Red") - } else { - points(coords[,4],coords[,5],col="Red") - } -} - -drawRobot <- function(robotFile, robotPos){ - theta <- atan2(robotPos[5] - robotPos[3], robotPos[4] - robotPos[2]) - perp <- theta + pi/2 - robotCenter <- c((robotPos[2]+robotPos[4])/2.,(robotPos[3]+robotPos[5])/2.) - robot <- read.csv(robotFile) - rotMatrix <- matrix(c(cos(perp), -sin(perp), sin(perp), cos(perp)), nrow=2, ncol=2, byrow=TRUE) - - point1s <- rotMatrix %*% matrix(c(robot$x1, robot$y1), nrow = 2, ncol = length(robot$x1), byrow = TRUE) - point1s <- point1s + c(robotCenter[1], robotCenter[2]) - - point2s <- rotMatrix %*% matrix(c(robot$x2, robot$y2), nrow = 2, ncol = length(robot$x1), byrow = TRUE) - point2s <- point2s + c(robotCenter[1], robotCenter[2]) - - #Interleave the point1s and point2s so lines() draws them correctly. - xs <- c(rbind(point1s[1,], point2s[1,])) - ys <- c(rbind(point1s[2,], point2s[2,])) - - lines(x=xs, y=ys, col="Blue") -} - -wheelbaseDiameter <- 26./12. -centerToFront <- (27./2.)/12. -centerToBack <- (27./2.+3.25)/12. -centerToSide <- (29./2.+3.25)/12. -# Time, Left X, Left Y, Right X, Right Y -out <- plotProfile(profileName = "RedRight", inverted = FALSE, wheelbaseDiameter = wheelbaseDiameter, centerToFront = centerToFront,centerToBack = centerToBack,centerToSide = centerToSide, startPos=c(0, 54 - centerToBack, 10.3449-wheelbaseDiameter,54-centerToBack,10.3449, pi), usePosition = TRUE) -drawProfile(coords=out, centerToFront=centerToFront, centerToBack=centerToBack, wheelbaseDiameter = wheelbaseDiameter, clear = TRUE, linePlot = TRUE) -tmp <- out[length(out[,1]),] -drawRobot("robot.csv", tmp) -out2 <- plotProfile(profileName = "RedBackup",inverted = TRUE,wheelbaseDiameter = wheelbaseDiameter,centerToFront = centerToFront,centerToBack = centerToBack,centerToSide = centerToSide,startPos = tmp) -drawProfile(coords = out2, centerToFront = centerToFront, centerToBack = centerToBack, wheelbaseDiameter = wheelbaseDiameter, clear = FALSE) -tmp2 <- out2[length(out2[,1]),] -drawRobot("robot.csv", out2[length(out2[,1]),]) -out3 <- plotProfile(profileName = "RedBoilerToLoading",inverted = FALSE,wheelbaseDiameter = wheelbaseDiameter,centerToFront = centerToFront,centerToBack = centerToBack,centerToSide = centerToSide,startPos = tmp2) -drawProfile(coords = out3, centerToFront = centerToFront, centerToBack = centerToBack, wheelbaseDiameter = wheelbaseDiameter, clear = FALSE) -drawRobot("robot.csv", out3[length(out3[,1]),]) - -#out <- plotProfile(profileName = "BlueLeft", inverted = FALSE, wheelbaseDiameter = wheelbaseDiameter, centerToFront = centerToFront,centerToBack = centerToBack,centerToSide = centerToSide, startY= 10.3449-centerToSide, usePosition = TRUE) -#drawProfile(coords=out, centerToFront=centerToFront, centerToBack=centerToBack, wheelbaseDiameter = wheelbaseDiameter, clear = TRUE, linePlot = TRUE) -#tmp <- out[length(out[,1]),] -#drawRobot("robot.csv", tmp) -#out2 <- plotProfile(profileName = "RedBackup",inverted = TRUE,wheelbaseDiameter = wheelbaseDiameter,centerToFront = centerToFront,centerToBack = centerToBack,centerToSide = centerToSide,startPos = tmp) -#drawProfile(coords = out2, centerToFront = centerToFront, centerToBack = centerToBack, wheelbaseDiameter = wheelbaseDiameter, clear = FALSE) -#tmp2 <- out2[length(out2[,1]),] -#drawRobot("robot.csv", out2[length(out2[,1]),]) -#out3 <- plotProfile(profileName = "BoilerToLoading",inverted = FALSE,wheelbaseDiameter = wheelbaseDiameter,centerToFront = centerToFront,centerToBack = centerToBack,centerToSide = centerToSide,startPos = tmp2) -#drawProfile(coords = out3, centerToFront = centerToFront, centerToBack = centerToBack, wheelbaseDiameter = wheelbaseDiameter, clear = FALSE) -#drawRobot("robot.csv", out3[length(out3[,1]),]) \ No newline at end of file diff --git a/R scripts/field.csv b/R scripts/field.csv deleted file mode 100644 index cdbc5dda..00000000 --- a/R scripts/field.csv +++ /dev/null @@ -1,84 +0,0 @@ -x1,y1,x2,y2,col -5.4648,-13.5,48.5352,-13.5,"Black" -48.5352,-13.5,54,-10.3449,"Black" -54,-10.3449,54,10.3449,"Black" -54,10.3449,50.8449,13.5,"Black" -50.8449,13.5,3.1551,13.5,"Black" -3.1551,13.5,0,10.3449,"Black" -0,10.3449,0,-10.3449,"Black" -0,-10.3449,5.4648,-13.5,"Black" - -9.525,1.6667,9.525,-1.6667,"Blue" -9.2225,0.16667,9.525,0.16667,"Black" -9.2225,-0.16667,9.525,-0.16667,"Black" -9.2225,0.16667,9.2225,-0.16667,"Black" -9.2225,0,8.3475,0,"Purple" - -9.525,1.6667,12.411,3.333,"Blue" -11.1123,2.5833,10.9611,2.8453,"Black" -10.823,2.4167,10.67175,2.6786,"Black" -10.67175,2.6786,10.9611,2.8453,"Black" -10.81675,2.7620,10.37925,3.5198,"Purple" - -9.525,-1.6667,12.411,-3.333,"Blue" -11.1123,-2.5833,10.9611,-2.8453,"Black" -10.823,-2.4167,10.67175,-2.6786,"Black" -10.67175,-2.6786,10.9611,-2.8453,"Black" -10.81675,-2.7620,10.37925,-3.5198,"Purple" - -12.411,3.333,15.298,1.6667,"Blue" -12.411,-3.333,15.298,-1.6667,"Blue" -15.298,1.6667,15.298,-1.6667,"Blue" - -44.475,1.6667,44.475,-1.6667,"Red" -44.7775,0.16667,44.475,0.16667,"Black" -44.7775,-0.16667,44.475,-0.16667,"Black" -44.7775,0.16667,44.7775,-0.16667,"Black" -44.7775,0,45.6525,0,"Purple" - -44.475,1.6667,41.589,3.333,"Red" -42.8877,2.5833,43.0389,2.8453,"Black" -43.177,2.4167,43.32825,2.6786,"Black" -43.32825,2.6786,43.0389,2.8453,"Black" -43.18325,2.7620,43.62075,3.5198,"Purple" - -44.475,-1.6667,41.589,-3.333,"Red" -42.8877,-2.5833,43.0389,-2.8453,"Black" -43.177,-2.4167,43.32825,-2.6786,"Black" -43.32825,-2.6786,43.0389,-2.8453,"Black" -43.18325,-2.7620,43.62075,-3.5198,"Purple" - -41.589,3.333,38.702,1.6667,"Red" -41.589,-3.333,38.702,-1.6667,"Red" -38.702,1.6667,38.702,-1.6667,"Red" - -54,4.15,44.65,13.5,"Red" -54,-6.303448,41.5352,-13.5,"Blue" - -0,4.15,9.35,13.5,"Blue" -0,-6.303448,12.4648,-13.5,"Red" - -6.5417,13.5,13.9417,13.5,"Gray" -6.5417,15.9667,13.9417,15.9667,"Gray" -13.9417,13.5,13.9417,15.9667,"Gray" -6.5417,13.5,6.5417,15.9667,"Gray" - -23.7333,13.5,31.1333,13.5,"Gray" -23.7333,15.9667,31.1333,15.9667,"Gray" -31.1333,13.5,31.1333,15.9667,"Gray" -23.7333,13.5,23.7333,15.9667,"Gray" - -40.0583,13.5,47.4583,13.5,"Gray" -40.0583,15.9667,47.4583,15.9667,"Gray" -47.4583,13.5,47.4583,15.9667,"Gray" -40.0583,13.5,40.0583,15.9667,"Gray" - -13.7917,-13.5,21.1917,-13.5,"Gray" -13.7917,-15.9667,21.1917,-15.9667,"Gray" -21.1917,-13.5,21.1917,-15.9667,"Gray" -13.7917,-13.5,13.7917,-15.9667,"Gray" - -32.8083,-13.5,40.2083,-13.5,"Gray" -32.8083,-15.9667,40.2083,-15.9667,"Gray" -40.2083,-13.5,40.2083,-15.9667,"Gray" -32.8083,-13.5,32.8083,-15.9667,"Gray" \ No newline at end of file diff --git a/R scripts/findVelVsVoltage.R b/R scripts/findVelVsVoltage.R deleted file mode 100644 index 68a8f0fd..00000000 --- a/R scripts/findVelVsVoltage.R +++ /dev/null @@ -1,24 +0,0 @@ -# Title : findVelVsVoltage -# Objective : Find the line or curve describing how -# Created by: Noah Gleason -# Created on: 9/30/17 - -trials = 1 -voltages = seq(1.5,5,by=0.5) -#voltages = c(0.6, 2, 2.5) -raw <- read.csv("eventLog-2017.10.01.13.58.02.csv") -raw$class <- as.character(raw$class) -maxes <- raw[grep("class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineVelVsVoltage", raw$class), 3] -maxes <- as.numeric(as.vector(maxes)) - -model <- lm(maxes ~ voltages) -coeffs <- c(coefficients(model)) -View(coeffs) -xInt <- -coeffs[1]/coeffs[2] - -res <- resid(model) - -plot(x=voltages, y=maxes, main = "Max Velocity vs. Voltage", xlab="Voltage (volts)", ylab="Max speed (feet/sec)", xlim=c(0,12), ylim=c(0,12)) -abline(model) -plot(x=voltages, y=res, main="Residuals", xlab="Voltage (volts)", ylab="Residuals (feet/sec)", xlim=c(0,12)) -abline(0,0) \ No newline at end of file diff --git a/R scripts/poseEstimationChecker.R b/R scripts/poseEstimationChecker.R deleted file mode 100644 index ee9e069a..00000000 --- a/R scripts/poseEstimationChecker.R +++ /dev/null @@ -1,291 +0,0 @@ -#Simple helper conversion methods -rad2deg <- function(rad) {(rad * 180) / (pi)} -deg2rad <- function(deg) {(deg * pi) / (180)} - -logLogSlope <- function(effectiveWheelbase, angularVel, n){ - library("zoo") - avg <- weighted.mean(x=effectiveWheelbase, w=angularVel, na.rm=TRUE) - error <- effectiveWheelbase-avg - error <- error^2 - avgError <- sqrt(rollmean(error, n, fill = NA)) - logError <- log(avgError[(1+floor((n-1)/2)):(length(avgError)-floor(n/2))]) - logVel <- log(angularVel[(1+floor((n-1)/2)):(length(angularVel)-floor(n/2))]) - plot(x = logVel, y= logError) - model <- lm(logError ~ logVel) - abline(model, col="Green") - return(model) -} - -drawRobot <- function(robotFile, x, y, theta){ - robotCenter <- c(x,y) - robot <- read.csv(robotFile) - rotMatrix <- matrix(c(cos(theta), -sin(theta), sin(theta), cos(theta)), nrow=2, ncol=2, byrow=TRUE) - - point1s <- rotMatrix %*% matrix(c(robot$x1, robot$y1), nrow = 2, ncol = length(robot$x1), byrow = TRUE) - point1s <- point1s + c(robotCenter[1], robotCenter[2]) - - point2s <- rotMatrix %*% matrix(c(robot$x2, robot$y2), nrow = 2, ncol = length(robot$x1), byrow = TRUE) - point2s <- point2s + c(robotCenter[1], robotCenter[2]) - - #Interleave the point1s and point2s so lines() draws them correctly. - xs <- c(rbind(point1s[1,], point2s[1,])) - ys <- c(rbind(point1s[2,], point2s[2,])) - - lines(x=xs, y=ys, col="Blue") -} - -plotField <- function(filename, xOffset=0, yOffset=0){ - field <- read.csv(filename) - #Strings are read as factors by default, so we need to do this to make it read them as strings - field$col <- as.character(field$col) - for (i in 1:length(field$x1)){ - lines(c(field$x1[i]+xOffset, field$x2[i]+xOffset), c(field$y1[i]+yOffset, field$y2[i]+yOffset), col=field$col[i]) - } -} - -#Find the distance between the end position of two things -dist <- function(x1, y1, x2, y2){ - return(sqrt((x1[length(x1)] - x2[length(x2)])^2+(y1[length(y1)] - y2[length(y2)])^2)) -} - -#Calculate the effective wheelbase for a given delta left, right, and angle -calcWheelbase <- function(deltaLeft, deltaRight, deltaAngle){ - return((deltaRight-deltaLeft)/deltaAngle); -} - -#Smooths a value while taking its derivative with respect to time. -smoothDerivative <- function(value, timeMillis, n){ - smoothed <- (value[(n+1):length(value)] - value[1:(length(value)-n)])/((timeMillis[(n+1):length(timeMillis)] - timeMillis[1:(length(timeMillis)-n)])/1000); - return(c(rep(0, ceiling(n/2)), smoothed, rep(0, floor(n/2)))); -} - -#Plot the effective wheelbase against a bunch of different things -plotWheelVsVel <- function(leftPos, rightPos, rawAngleDegrees, timeMillis, angularVelThreshRad, smoothingConst){ - #Convert because degrees suuuuck - rawAngle <- deg2rad(rawAngleDegrees) - - #Smooth values and get velocities - angular <- smoothDerivative(rawAngle, timeMillis, smoothingConst) - left <- smoothDerivative(leftPos, timeMillis, smoothingConst) - right <- smoothDerivative(rightPos, timeMillis, smoothingConst) - - #find effective wheelbase - wheelbase <- calcWheelbase(left, right, angular) - - #Filter out low angular vel points - combined <- cbind(angular, wheelbase, (left+right)/2) - combinedAngular <- subset(combined, combined[,1] > angularVelThreshRad) - - #Find the mean wheelbase, weighted by angular vel because higher angular vel decreases variance - avgWheelbase = weighted.mean(x=combinedAngular[,2], w=combinedAngular[,1], na.rm=TRUE) - - #plot wheelbase vs angular vel - plot(x=combinedAngular[,1], y=combinedAngular[,2], xlab="Angular Velocity (rad/sec)", ylab="Effective wheelbase diameter (feet)", main="Effective Wheelbase Diameter vs. Angular Velocity") - abline(a=avgWheelbase, b=0, col='green') - - #plot wheelbase vs linear vel - plot(x=combinedAngular[,3], y=combinedAngular[,2], xlab="Linear Velocity (feet/sec)", ylab="Effective wheelbase diameter (feet)", main="Effective Wheelbase Diameter vs. Linear Velocity") - abline(a=avgWheelbase, b=0, col='green') - - #Plot wheelbase vs turn radius - plot(x=combinedAngular[,3]/combinedAngular[,1], y=combinedAngular[,2], xlab="Turn Radius (feet)", ylab="Effective wheelbase diameter (feet)", main="Effective Wheelbase Diameter vs. Turn Radius") - abline(a=avgWheelbase, b=0, col='green') - - return(avgWheelbase) -} - -#A pose estimation algorithm that assumes the left and right sides have equal scrub, in opposite directions -equalScrubPoseEstimation <- function(leftPos, rightPos, rawAngleDegrees, timeMillis, angularVelThreshRad, realWheelbase = -1){ - #Convert because degrees suuuuck - rawAngle <- deg2rad(rawAngleDegrees) - - #Set up output array - out <- array(dim=c(length(timeMillis),8)) - colnames(out)<-c("X","Y","leftX","leftY","rightX","rightY","time","wheelbase") - if(realWheelbase == -1){ - out[1,] <- c(0,0,NA,NA,NA,NA,timeMillis[1],NA) - } else { - out[1,] <- c(0,0, realWheelbase/2*cos(rawAngle[1]+pi/2), realWheelbase/2*sin(rawAngle[1]+pi/2), realWheelbase/2*cos(rawAngle[1]-pi/2), realWheelbase/2*sin(rawAngle[1]-pi/2), timeMillis[1],realWheelbase) - } - - #Loop through each logged tic, calculating pose iteratively - for(i in 2:length(timeMillis)){ - #Find change in time, in seconds - deltaTime <- (timeMillis[i] - out[i-1,7])/1000 - - #Directly find change in position and angle - deltaLeft <- leftPos[i]-leftPos[i-1] - deltaRight <- rightPos[i]-rightPos[i-1] - deltaTheta <- rawAngle[i]-rawAngle[i-1] - - #Get the effective wheelbase for this iteration - wheelbase <- calcWheelbase(deltaLeft, deltaRight, deltaTheta) - - #Average - avgMoved <- (deltaLeft+deltaRight)/2 - - #The angle of the movement vector - angle <- rawAngle[i-1]+(deltaTheta/2) - - if (deltaTheta == 0){ - x <- out[i-1,1]+avgMoved*cos(angle) - y <- out[i-1,2]+avgMoved*sin(angle) - #If we're driving straight, we know the magnitude is just the average of the two sides - if(realWheelbase == -1){ - out[i,] <- c(out[i-1,1]+avgMoved*cos(angle),out[i-1,2]+avgMoved*sin(angle), NA, NA, NA, NA, timeMillis[i],NA) - } else { - out[i,] <- c(x, y, x+realWheelbase/2*cos(rawAngle[i]+pi/2), y+realWheelbase/2*sin(rawAngle[i]+pi/2), x+realWheelbase/2*cos(rawAngle[i]-pi/2), y+realWheelbase/2*sin(rawAngle[i]-pi/2), timeMillis[i],realWheelbase) - } - } else { - #Magnitude of movement vector is 2*r*sin(deltaTheta/2), but r is just avg/deltaTheta - mag <- 2*(avgMoved/deltaTheta)*sin(deltaTheta/2) - - #Vector decomposition - x <- out[i-1,1]+mag*cos(angle) - y <- out[i-1,2]+mag*sin(angle) - - if(realWheelbase == -1){ - #Only log left and right wheel positions if the angular vel is above threshhold - if (deltaTheta/deltaTime < angularVelThreshRad){ - out[i,] <- c(x, y, NA,NA,NA,NA, timeMillis[i],NA) - } else { - out[i,] <- c(x, y, x+wheelbase/2*cos(rawAngle[i]+pi/2), y+wheelbase/2*sin(rawAngle[i]+pi/2), x+wheelbase/2*cos(rawAngle[i]-pi/2), y+wheelbase/2*sin(rawAngle[i]-pi/2), timeMillis[i],wheelbase) - } - } else { - out[i,] <- c(x, y, x+realWheelbase/2*cos(rawAngle[i]+pi/2), y+realWheelbase/2*sin(rawAngle[i]+pi/2), x+realWheelbase/2*cos(rawAngle[i]-pi/2), y+realWheelbase/2*sin(rawAngle[i]-pi/2), timeMillis[i],realWheelbase) - } - } - } - - #Plot results, with fake wheelbase, only showing points within 1 actual wheelbase of the path - plot(out[,1], out[,2], t="l", xlim = c(min(out[,1], na.rm = TRUE)-3,max(out[,1],na.rm = TRUE)+3), ylim=c(min(out[,2], na.rm = TRUE)-3,max(out[,2], na.rm=TRUE)+3), xlab="X position (Feet)", ylab="Y position (Feet)", main="Equal Scrub Pose Estimation Algorithm", asp=1) - lines(out[,3], out[,4], col="Green") - lines(out[,5], out[,6], col="Red") - - return(out) -} - -#A pose estimation algorithm that only uses the encoders -encoderOnlyPoseEstimation <- function(leftPos, rightPos, startingAngleDegrees, timeMillis, fakeWheelbase){ - #Convert because degrees suuuuck - startingAngle <- deg2rad(startingAngleDegrees) - - wheelRadius <- fakeWheelbase/2 - - #Set up output array - out <- array(dim=c(length(timeMillis), 8)) - colnames(out) <- c("X","Y","leftX","leftY","rightX","rightY","angle","time") - out[1,] <- c(0,0,wheelRadius*cos(startingAngle+pi/2), wheelRadius*sin(startingAngle+pi/2), wheelRadius*cos(startingAngle-pi/2), wheelRadius*sin(startingAngle-pi/2),startingAngle,timeMillis[1]) - - #Loop through each logged tic, calculating pose iteratively - for(i in 2:length(timeMillis)){ - - #Directly find change in position and angle - deltaLeft <- leftPos[i]-leftPos[i-1] - deltaRight <- rightPos[i]-rightPos[i-1] - - #Average - avgMoved <- (deltaRight+deltaLeft)/2 - - #Points in the direction the robot is facing at the start of tic - perpendicular <- out[i-1,7] - - #The angle of the sector the path is tracing - theta <- (deltaRight - deltaLeft)/fakeWheelbase - - #If not turning, magnitude is just the average moved - if(theta == 0){ - mag <- avgMoved - } else { - #If turning, calculate the radius and use that to get the magnitude of the turn - mag <- 2*(avgMoved/theta)*sin(theta/2) - } - - angle <- perpendicular + (theta/2) - x <- out[i-1,1]+mag*cos(angle) - y <- out[i-1,2]+mag*sin(angle) - newHeading <- perpendicular + theta - out[i,] <- c(x,y,x+wheelRadius*cos(newHeading+pi/2), y+wheelRadius*sin(newHeading+pi/2), x+wheelRadius*cos(newHeading-pi/2), y+wheelRadius*sin(newHeading-pi/2), newHeading, timeMillis[i]) - } - - #Plot results, with fake wheelbase - plot(out[,1], out[,2], t="l", xlim = c(min(out[,1], out[,3], out[,5]),max(out[,1], out[,3], out[,5])), ylim=c(min(out[,2], out[,4], out[,6]),max(out[,2], out[,4], out[,6])), xlab="X position (Feet)", ylab="Y position (Feet)", main="Encoder-only Pose Estimation Algorithm",asp=1) - lines(out[,3], out[,4], col="Green") - lines(out[,5], out[,6], col="Red") - - return(out) -} - -accelerometerOnlyPoseEstimation <- function(xAccel, yAccel, rawAngleDegrees, timeMillis, realWheelbase){ - #Convert because degrees suuuuck - rawAngle <- deg2rad(rawAngleDegrees) - - #Set up output array - out <- array(dim=c(length(timeMillis),9)) - colnames(out)<-c("X","Y","leftX","leftY","rightX","rightY","xVel","yVel","time") - out[1,] <- c(0,0, realWheelbase/2*cos(rawAngle[1]+pi/2), realWheelbase/2*sin(rawAngle[1]+pi/2), realWheelbase/2*cos(rawAngle[1]-pi/2), realWheelbase/2*sin(rawAngle[1]-pi/2),0,0, timeMillis[1]) - - #Loop through each logged tic, calculating pose iteratively - for(i in 2:length(timeMillis)){ - #Find change in time, in seconds - deltaTime <- (timeMillis[i] - out[i-1,9])/1000 - xVel <- out[i-1,7]+xAccel[i]*deltaTime - yVel <- out[i-1,8]+yAccel[i]*deltaTime - x <- out[i-1,1]+xVel*deltaTime - y <- out[i-1,2]+yVel*deltaTime - angle <- rawAngle[i] - out[i,] <- c(x,y,x+realWheelbase/2*cos(angle+pi/2),y+realWheelbase/2*sin(angle+pi/2),x+realWheelbase/2*cos(angle-pi/2),y+realWheelbase/2*sin(angle-pi/2),xVel,yVel, timeMillis[i]) - } - - #Plot results - plot(out[,1], out[,2], t="l", xlim = c(min(out[,1], out[,3], out[,5]),max(out[,1], out[,3], out[,5])), ylim=c(min(out[,2], out[,4], out[,6]),max(out[,2], out[,4], out[,6])), xlab="X position (Feet)", ylab="Y position (Feet)", main="Accelerometer-only Pose Estimation Algorithm",asp=1) - lines(out[,3], out[,4], col="Green") - lines(out[,5], out[,6], col="Red") - return(out) -} - -#Make all the graphs, for wheelbase and both algorithms, using the average effective wheelbase for encoder-only -doEverything <- function(leftPos, rightPos, rawAngleDegrees, timeMillis, angularVelThreshRad, smoothingConst){ - avg <- plotWheelVsVel(leftPos, rightPos, rawAngleDegrees, timeMillis, angularVelThreshRad, smoothingConst) - equalScrubPoseEstimation(leftPos, rightPos, rawAngleDegrees, timeMillis, angularVelThreshRad) - encoderOnlyPoseEstimation(leftPos=leftPos, rightPos=rightPos, startingAngleDegrees=rawAngleDegrees[1], timeMillis=timeMillis, fakeWheelbase=avg) - return(avg) -} - -animateRobot <- function(x, y, headingRadians, deltaTime, fieldFile, robotFile, robotRadius, frameSize=-1, filename="animation.mp4"){ - library("animation") - theta <- deg2rad(headingRadians) - saveVideo({ - for(i in 1:length(x)){ - #Set up frame - if(frameSize == -1){ - plot(x=c(),y=c(),xlim=c(min(x)-robotRadius, max(x)+robotRadius),ylim=c(min(y)-robotRadius, max(y)+robotRadius), asp=1, xlab="X position (feet)", ylab="Y position (feet)") - } else { - plot(x=c(),y=c(),xlim=c(x[i]-frameSize/2, x[i]+frameSize/2),ylim=c(y[i]-frameSize/2, y[i]+frameSize/2),asp=1, xlab="X position (feet)", ylab="Y position (feet)") - } - plotField(fieldFile, 0, 0) - drawRobot(robotFile, x[i],y[i],theta[i]) - } - }, interval = deltaTime, ani.width = 600, ani.height = 600, video.name=filename) -} - -tracedAnimation <- function(x, y, leftX, leftY, rightX, rightY, headingRadians, deltaTime, fieldFile, robotFile, robotRadius, frameSize=-1, filename="animation.mp4"){ - library("animation") - theta <- deg2rad(headingRadians) - saveVideo({ - for(i in 1:length(x)){ - #Set up frame - if(frameSize == -1){ - plot(x=c(),y=c(),xlim=c(min(x)-robotRadius, max(x)+robotRadius),ylim=c(min(y)-robotRadius, max(y)+robotRadius), asp=1, xlab="X position (feet)", ylab="Y position (feet)") - } else { - plot(x=c(),y=c(),xlim=c(x[i]-frameSize/2, x[i]+frameSize/2),ylim=c(y[i]-frameSize/2, y[i]+frameSize/2),asp=1, xlab="X position (feet)", ylab="Y position (feet)") - } - lines(x=leftX[1:i], y=leftY[1:i], col="Green") - lines(x=rightX[1:i], y=rightY[1:i], col="Red") - plotField(fieldFile, 0, 0) - drawRobot(robotFile, x[i],y[i],theta[i]) - } - }, interval = deltaTime, ani.width = 1920, ani.height = 1080, video.name=filename) -} - -#tracedAnimation(equalScrub[,1],equalScrub[,2], equalScrub[,3],equalScrub[,4],equalScrub[,5],equalScrub[,6],rel$Drive.raw_angle,0.05,"field.csv","robot.csv",27.138/12, -1, "traceAnimation.mp4") \ No newline at end of file diff --git a/R scripts/robot.csv b/R scripts/robot.csv deleted file mode 100644 index d37dd9fe..00000000 --- a/R scripts/robot.csv +++ /dev/null @@ -1,9 +0,0 @@ -x1, y1, x2, y2 --1.395833, -1.479167, -1.395833, 1.479167 --1.395833, 1.479167, 1.395833, 1.479167 -1.395833, 1.479167, 1.395833, 0.541667 -1.395833, 0.541667, 1.125, 0.541667 -1.125, 0.541667, 1.125, -0.541667 -1.125, -0.541667, 1.395833, -0.541667 -1.395833, -0.541667, 1.395833, -1.479167 -1.395833, -1.479167, -1.395833, -1.479167 \ No newline at end of file diff --git a/RoboRIO/.gitignore b/RoboRIO/.gitignore deleted file mode 100644 index 4e6ef42b..00000000 --- a/RoboRIO/.gitignore +++ /dev/null @@ -1 +0,0 @@ -!*Profile.csv \ No newline at end of file diff --git a/RoboRIO/build.gradle b/RoboRIO/build.gradle deleted file mode 100644 index b0fd7250..00000000 --- a/RoboRIO/build.gradle +++ /dev/null @@ -1,106 +0,0 @@ -plugins { - id 'org.hidetake.ssh' version "2.9.0" - id 'java' - id 'eclipse' - id 'idea' - id 'jaci.openrio.gradle.GradleRIO' version "2017.1.5" -} - -group 'org.usfirst.frc.team449.robot2017' -version '1.0' - -repositories { - mavenCentral() - maven { - name = "GradleRio" - url = "http://dev.imjac.in/maven" - } - - maven { url "https://plugins.gradle.org/m2/" } -} - -wpi { - wpilibVersion = "2017.3.1" // The WPILib version to use. For this version of GradleRIO, must be a 2017 version. - ntcoreVersion = "3.1.7" // The NetworkTables Core version to use. - opencvVersion = "3.1.0" // The OpenCV version to use. - cscoreVersion = "1.0.2" // The CSCore version to use. - talonSrxVersion = "4.4.1.14" // The CTRE Toolsuite (Talon SRX) version to use. - navxVersion = "3.0.331" // The NavX-MXP library version to use. -} - -dependencies { - // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind - compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.0.pr3' - // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core - compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.0.pr3' - // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations - compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.0.pr3' - compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.9.0.pr3' - //com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.0.pr3 - compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: '2.9.0.pr3' - compile 'org.jetbrains:annotations:13.0' - compile wpilib() - compile talonSrx() - compile navx() -} - -/* GradleRIO stuff */ -remotes { - rio { - host = 'roboRIO-449-frc.local' - user = 'lvuser' - knownHosts = allowAnyHosts - } -} - -frc { - team = '449' - robotClass = "org.usfirst.frc.team449.robot.Robot" -} - -def robotManifest = { - attributes 'Main-Class': 'edu.wpi.first.wpilibj.RobotBase' - attributes 'Robot-Class': frc.robotClass -} - -task('copyResources') { - doLast { - ssh.run { - session(remotes.rio) { - execute 'mkdir ~/449_resources', ignoreError: true - execute 'mkdir ~/logs', ignoreError: true - put from: fileTree('src/main/resources'), into: './449_resources/' - execute ". /etc/profile.d/natinst-path.sh; /usr/local/frc/bin/frcKillRobot.sh -t -r", ignoreError: true - } - } - } -} - -/* Generic artifact gen stuff */ -jar { - from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } - manifest robotManifest -} - -task genJavadoc(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -task deleteDocs(type: Delete){ - delete '../docs' - followSymlinks = false -} - -task copyDocs(type: Copy, dependsOn: [genJavadoc, deleteDocs]){ - from 'build/docs/javadoc' - into '../docs' -} - -artifacts { - archives genJavadoc -} - -compileJava { - options.compilerArgs << '-parameters' -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Boiler.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Boiler.java deleted file mode 100644 index 776872ce..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Boiler.java +++ /dev/null @@ -1,68 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.autonomous; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.commands.general.WaitForMillis; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.RunProfileTwoSides; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile; - -/** - * The autonomous routine to deliver a gear to the center gear. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class Auto2017Boiler extends YamlCommandGroupWrapper { - - /** - * Default constructor. - * - * @param runWallToPegProfile The command for running the profile for going from the wall to the peg, which - * has already been loaded. - * @param dropGear The command for dropping the held gear. - * @param dropGearSwitch The switch deciding whether or not to drop the gear. - * @param allianceSwitch The switch indicating which alliance we're on. - * @param runRedPegToKeyProfile The command for moving from the peg to the key, on the red side of the field. - * @param runBluePegToKeyProfile The command for moving from the peg to the key, on the blue side of the field. - * @param spinUpShooter The command for revving up the flywheel. Can be null. - * @param fireShooter The command for firing the flywheel. Can be null. - * @param waitBetweenProfilesMillis How long to wait between each motion profile. Defaults to 50 if less than 50. - */ - @JsonCreator - public Auto2017Boiler(@NotNull @JsonProperty(required = true) RunLoadedProfile runWallToPegProfile, - @NotNull @JsonProperty(required = true) YamlCommand dropGear, - @NotNull @JsonProperty(required = true) MappedDigitalInput dropGearSwitch, - @NotNull @JsonProperty(required = true) MappedDigitalInput allianceSwitch, - @NotNull @JsonProperty(required = true) RunProfileTwoSides runRedPegToKeyProfile, - @NotNull @JsonProperty(required = true) RunProfileTwoSides runBluePegToKeyProfile, - @Nullable YamlCommand spinUpShooter, - @Nullable YamlCommand fireShooter, - long waitBetweenProfilesMillis) { - waitBetweenProfilesMillis = Math.max(50, waitBetweenProfilesMillis); - if (spinUpShooter != null) { - addParallel(spinUpShooter.getCommand()); - } - addSequential(runWallToPegProfile); - if (dropGearSwitch.getStatus().get(0)) { - addSequential(dropGear.getCommand()); - } - - addSequential(new WaitForMillis(waitBetweenProfilesMillis)); - - //Red is true, blue is false - if (allianceSwitch.getStatus().get(0)) { - addSequential(runRedPegToKeyProfile); - } else { - addSequential(runBluePegToKeyProfile); - } - - if (fireShooter != null) { - addSequential(fireShooter.getCommand()); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Center.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Center.java deleted file mode 100644 index c04e7593..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Center.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.autonomous; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile; - -/** - * The autonomous routine to deliver a gear to the center gear. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class Auto2017Center extends YamlCommandGroupWrapper { - - /** - * Default constructor. - * - * @param runWallToPegProfile The command for running the profile for going from the wall to the peg, which has - * already been loaded. - * @param dropGear The command for dropping the held gear. - * @param dropGearSwitch The switch deciding whether or not to drop the gear. - * @param driveBack The command for backing up away from the peg. - */ - @JsonCreator - public Auto2017Center( - @NotNull @JsonProperty(required = true) RunLoadedProfile runWallToPegProfile, - @NotNull @JsonProperty(required = true) YamlCommand dropGear, - @NotNull @JsonProperty(required = true) MappedDigitalInput dropGearSwitch, - @NotNull @JsonProperty(required = true) YamlCommand driveBack) { - addSequential(runWallToPegProfile); - if (dropGearSwitch.getStatus().get(0)) { - addSequential(dropGear.getCommand()); - } - addSequential(driveBack.getCommand()); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Feeder.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Feeder.java deleted file mode 100644 index e76c4bd0..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Feeder.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.autonomous; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.commands.general.WaitForMillis; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.RunProfileTwoSides; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile; - -/** - * The autonomous routine to deliver a gear to the center gear. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class Auto2017Feeder extends YamlCommandGroupWrapper { - - /** - * Default constructor. - * - * @param runWallToPegProfile The command for running the profile for going from the wall to the peg, which - * has already been loaded. - * @param dropGear The command for dropping the held gear. - * @param dropGearSwitch The switch deciding whether or not to drop the gear. - * @param allianceSwitch The switch indicating which alliance we're on. - * @param runRedBackupProfile The command for away from the peg, on the red side of the field. - * @param runBlueBackupProfile The command for moving away from the peg, on the blue side of the field. - * @param driveForwardsRed The command for moving forwards towards the feeder station on the red side. - * @param driveForwardsBlue The command for moving forwards towards the feeder station on the blue side. - * @param waitBetweenProfilesMillis How long to wait between each motion profile. Defaults to 50 if less than 50. - */ - @JsonCreator - public Auto2017Feeder(@NotNull @JsonProperty(required = true) RunLoadedProfile runWallToPegProfile, - @NotNull @JsonProperty(required = true) YamlCommand dropGear, - @NotNull @JsonProperty(required = true) MappedDigitalInput dropGearSwitch, - @NotNull @JsonProperty(required = true) MappedDigitalInput allianceSwitch, - @NotNull @JsonProperty(required = true) RunProfileTwoSides runRedBackupProfile, - @NotNull @JsonProperty(required = true) RunProfileTwoSides runBlueBackupProfile, - @NotNull @JsonProperty(required = true) YamlCommand driveForwardsRed, - @NotNull @JsonProperty(required = true) YamlCommand driveForwardsBlue, - long waitBetweenProfilesMillis) { - waitBetweenProfilesMillis = Math.max(50, waitBetweenProfilesMillis); - addSequential(runWallToPegProfile); - - //Only do this stuff if we drop the gear - if (dropGearSwitch.getStatus().get(0)) { - addSequential(dropGear.getCommand()); - - addSequential(new WaitForMillis(waitBetweenProfilesMillis)); - - if (allianceSwitch.getStatus().get(0)) { //Red is true - addSequential(runRedBackupProfile); - } else { - addSequential(runBlueBackupProfile); - } - - addSequential(new WaitForMillis(waitBetweenProfilesMillis)); - - if (allianceSwitch.getStatus().get(0)) { - addSequential(driveForwardsRed.getCommand()); - } else { - addSequential(driveForwardsBlue.getCommand()); - } - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/CommandSequence.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/CommandSequence.java deleted file mode 100644 index 48bb38ff..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/CommandSequence.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.general; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; - -import java.util.List; - -/** - * A command group that takes a list of commands and runs them in the order given. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class CommandSequence extends YamlCommandGroupWrapper { - - /** - * Default constructor - * - * @param commandList The commands to run, in order. - */ - @JsonCreator - public CommandSequence(@NotNull @JsonProperty(required = true) List commandList) { - for (YamlCommand command : commandList) { - addSequential(command.getCommand()); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/ParallelCommandGroup.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/ParallelCommandGroup.java deleted file mode 100644 index 3fdd8d41..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/ParallelCommandGroup.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.general; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; - -import java.util.Set; - -/** - * A command group for running many commands in parallel. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ParallelCommandGroup extends YamlCommandGroupWrapper { - - /** - * Default constructor - * - * @param commandSet The commands to run. - */ - @JsonCreator - public ParallelCommandGroup(@NotNull @JsonProperty(required = true) Set commandSet) { - for (YamlCommand command : commandSet) { - addParallel(command.getCommand()); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/RunRunnables.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/RunRunnables.java deleted file mode 100644 index fdc06af8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/RunRunnables.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.general; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * A command that runs any number of {@link Runnable} objects every tic. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class RunRunnables extends YamlCommandWrapper { - - /** - * The runnables to run. - */ - @NotNull - private final Runnable[] runnables; - - /** - * Default constructor - * - * @param runnables The runnables to run. - */ - @JsonCreator - public RunRunnables(@NotNull @JsonProperty(required = true) MappedRunnable[] runnables) { - this.runnables = runnables; - } - - /** - * Log on init - */ - @Override - protected void initialize() { - Logger.addEvent("RunRunnables init.", this.getClass()); - } - - /** - * Run all the runnables in the order they were given. - */ - @Override - protected void execute() { - for (Runnable runnable : runnables) { - runnable.run(); - } - } - - /** - * @return false - */ - @Override - protected boolean isFinished() { - //This does NOT have to be true. - return false; - } - - /** - * Log on exit. - */ - @Override - protected void end() { - Logger.addEvent("RunRunnables end.", this.getClass()); - } - - /** - * Log when interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("RunRunnables Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/WaitForMillis.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/WaitForMillis.java deleted file mode 100644 index cf0a5c55..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/general/WaitForMillis.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.general; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Clock; - -/** - * A command that does nothing and finishes after a set number of milliseconds. For use to create a delay in sequential - * CommandGroups. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class WaitForMillis extends YamlCommandWrapper { - - /** - * How long this command takes to finish, in milliseconds. - */ - private final long timeout; - - /** - * The time this command started at. - */ - private long startTime; - - /** - * Default constructor - * - * @param time How long this command will take to finish, in milliseconds. - */ - @JsonCreator - public WaitForMillis(@JsonProperty(required = true) long time) { - timeout = time; - } - - /** - * Store the start time. - */ - @Override - protected void initialize() { - startTime = Clock.currentTimeMillis(); - } - - /** - * Finish if the specified amount of time has passed. - * - * @return true if the specified number of milliseconds have passed since this command started, false otherwise. - */ - @Override - protected boolean isFinished() { - return Clock.currentTimeMillis() - startTime >= timeout; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/RunMotorWhileConditonMet.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/RunMotorWhileConditonMet.java deleted file mode 100644 index edbb79a8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/RunMotorWhileConditonMet.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor; -import org.usfirst.frc.team449.robot.subsystem.interfaces.conditional.SubsystemConditional; - -/** - * Run a BinaryMotor while a condition is true. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class RunMotorWhileConditonMet extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on - */ - @NotNull - private final T subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public RunMotorWhileConditonMet(@NotNull @JsonProperty(required = true) T subsystem) { - requires(subsystem); - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("RunMotorWhileConditonMet init", this.getClass()); - } - - /** - * Run the motor - */ - @Override - protected void execute() { - subsystem.turnMotorOn(); - } - - /** - * Stop when the condition is met. - * - * @return true if the condition is met, false otherwise. - */ - @Override - protected boolean isFinished() { - return subsystem.isConditionTrueCached(); - } - - /** - * Stop the motor and log that the command has ended. - */ - @Override - protected void end() { - //Stop the motor when we meet the condition. - subsystem.turnMotorOff(); - Logger.addEvent("RunMotorWhileConditonMet end", this.getClass()); - } - - /** - * Stop the motor and log that the command has been interrupted. - */ - @Override - protected void interrupted() { - //Stop the motor if this command is interrupted. - subsystem.turnMotorOff(); - Logger.addEvent("RunMotorWhileConditonMet interrupted, stopping climb.", this.getClass()); - } - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.java deleted file mode 100644 index 1c6140d2..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.java +++ /dev/null @@ -1,225 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface.drive; - -import com.fasterxml.jackson.annotation.*; -import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand; - -import java.util.ArrayList; -import java.util.List; - -/** - * Unidirectional drive with field-oriented control - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class FieldOrientedUnidirectionalDriveCommand extends PIDAngleCommand { - - /** - * The drive this command is controlling. - */ - @NotNull - protected final T subsystem; - - /** - * The OI giving the input stick values. - */ - @NotNull - protected final OIFieldOriented oi; - - /** - * The points to snap the PID controller input to. - */ - @NotNull - private final List snapPoints; - - /** - * The absolute angular setpoint for the robot to go to. Field to avoid garbage collection. - */ - @Nullable - private Double theta; - - /** - * Default constructor - * - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be considered on - * target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0. - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be considered within - * tolerance. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given to the - * motors. Defaults to zero. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param subsystem The drive to execute this command on. - * @param oi The OI controlling the robot. - * @param snapPoints The points to snap the PID controller input to. - */ - @JsonCreator - public FieldOrientedUnidirectionalDriveCommand(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - boolean inverted, - double kP, - double kI, - double kD, - @NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) OIFieldOriented oi, - @Nullable List snapPoints) { - //Assign stuff - super(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, inverted, subsystem, kP, kI, kD); - this.oi = oi; - this.subsystem = subsystem; - this.snapPoints = snapPoints != null ? snapPoints : new ArrayList<>(); - - //Needs a requires because it's a default command. - requires(this.subsystem); - - //Logging, but in Spanish. - Logger.addEvent("Drive Robot bueno", this.getClass()); - } - - /** - * Initialize PIDController and variables. - */ - @Override - protected void initialize() { - //Reset all values of the PIDController and enable it. - this.getPIDController().reset(); - this.getPIDController().enable(); - Logger.addEvent("FieldOrientedUnidirectionalDriveCommand init.", this.getClass()); - } - - /** - * Set PID setpoint to processed controller setpoint. - */ - @Override - protected void execute() { - theta = oi.getThetaCached(); - if (theta != null) { - for (AngularSnapPoint snapPoint : snapPoints) { - //See if we should snap - if (snapPoint.getLowerBound() < theta && theta < snapPoint.getUpperBound()) { - theta = snapPoint.getSnapTo(); - //Break to shorten runtime, we'll never snap twice. - break; - } - } - this.getPIDController().setSetpoint(theta); - SmartDashboard.putNumber("Theta navx setpoint", theta); - } - } - - /** - * Run constantly because this is a defaultDrive - * - * @return false - */ - @Override - protected boolean isFinished() { - return false; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("FieldOrientedUnidirectionalDriveCommand End.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("FieldOrientedUnidirectionalDriveCommand Interrupted!", this.getClass()); - } - - /** - * Give the correct output to the motors based on the PID output and velocity input. - * - * @param output The output of the angular PID loop. - */ - @Override - protected void usePIDOutput(double output) { - SmartDashboard.putNumber("Unprocessed loop output", output); - //Process or zero the input depending on whether the NavX is being overriden. - output = subsystem.getOverrideGyro() ? 0 : processPIDOutput(output); - - SmartDashboard.putNumber("PID loop output", output); - - //Adjust the heading according to the PID output, it'll be positive if we want to go right. - subsystem.setOutput(oi.getVelCached() - output, oi.getVelCached() + output); - } - - /** - * A data-holding class representing an angular setpoint to "snap" the controller output to. - */ - protected static class AngularSnapPoint { - - /** - * The angle to snap the setpoint to, in degrees. - */ - private final double snapTo; - - /** - * The upper bound, below which all angles above snapTo are changed to snapTo. Measured in degrees. - */ - private final double upperBound; - - /** - * The lower bound, above which all angles below snapTo are changed to snapTo. Measured in degrees. - */ - private final double lowerBound; - - /** - * Default constructor. - * - * @param snapTo The angle to snap the setpoint to, in degrees. - * @param upperBound The upper bound, below which all angles above snapTo are changed to snapTo. Measured in - * degrees. - * @param lowerBound The lower bound, above which all angles below snapTo are changed to snapTo. Measured in - * degrees. - */ - @JsonCreator - public AngularSnapPoint(@JsonProperty(required = true) double snapTo, - @JsonProperty(required = true) double upperBound, - @JsonProperty(required = true) double lowerBound) { - this.snapTo = snapTo; - this.upperBound = upperBound; - this.lowerBound = lowerBound; - } - - /** - * @return The angle to snap the setpoint to, in degrees. - */ - public double getSnapTo() { - return snapTo; - } - - /** - * @return The upper bound, below which all angles above snapTo are changed to snapTo. Measured in degrees. - */ - public double getUpperBound() { - return upperBound; - } - - /** - * @return The lower bound, above which all angles below snapTo are changed to snapTo. Measured in degrees. - */ - public double getLowerBound() { - return lowerBound; - } - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommandShifting.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommandShifting.java deleted file mode 100644 index d5cb2886..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommandShifting.java +++ /dev/null @@ -1,121 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface.drive; - -import com.fasterxml.jackson.annotation.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.components.AutoshiftComponent; -import org.usfirst.frc.team449.robot.drive.shifting.DriveShiftable; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; - -import java.util.List; - -/** - * Unidirectional drive with field-oriented control and autoshifting. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class FieldOrientedUnidirectionalDriveCommandShifting - extends FieldOrientedUnidirectionalDriveCommand { - - /** - * The drive to execute this command on. - */ - @NotNull - protected final T subsystem; - - /** - * The helper object for autoshifting. - */ - @NotNull - private final AutoshiftComponent autoshiftComponent; - - /** - * The coefficient to multiply the loop output by in high gear. Defaults to 1. - */ - private final double highGearAngularCoefficient; - - /** - * Default constructor - * - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be considered on - * target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0. - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be considered within - * tolerance. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given to the - * motors. Defaults to zero. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param subsystem The drive to execute this command on. - * @param oi The OI controlling the robot. - * @param snapPoints The points to snap the PID controller input to. - * @param autoshiftComponent The helper object for autoshifting. - * @param highGearAngularCoefficient The coefficient to multiply the loop output by in high gear. Defaults to 1. - */ - @JsonCreator - public FieldOrientedUnidirectionalDriveCommandShifting(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - boolean inverted, - double kP, - double kI, - double kD, - @NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) OIFieldOriented oi, - @Nullable List snapPoints, - @NotNull @JsonProperty(required = true) AutoshiftComponent autoshiftComponent, - @Nullable Double highGearAngularCoefficient) { - //Assign stuff - super(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, inverted, kP, kI, kD, subsystem, oi, snapPoints); - this.subsystem = subsystem; - this.autoshiftComponent = autoshiftComponent; - this.highGearAngularCoefficient = highGearAngularCoefficient != null ? highGearAngularCoefficient : 1; - } - - /** - * Set PID setpoint to processed controller setpoint and autoshift. - */ - @Override - protected void execute() { - if (!subsystem.getOverrideAutoshift()) { - autoshiftComponent.autoshift(oi.getVelCached(), subsystem.getLeftVelCached(), subsystem.getRightVelCached(), gear -> subsystem.setGear(gear)); - } - super.execute(); - } - - /** - * Give the correct output to the motors based on the PID output and velocity input. - * - * @param output The output of the angular PID loop. - */ - @Override - protected void usePIDOutput(double output) { - super.usePIDOutput(output * (subsystem.getGear() == Shiftable.gear.HIGH.getNumVal() ? highGearAngularCoefficient : 1)); - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("FieldOrientedUnidirectionalDriveCommandShifting End.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("FieldOrientedUnidirectionalDriveCommandShifting Interrupted!", this.getClass()); - } - -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/JiggleRobot.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/JiggleRobot.java deleted file mode 100644 index 2ff9665c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/JiggleRobot.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface.drive; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; - -/** - * Rotates the robot back and forth in order to dislodge any stuck balls. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class JiggleRobot extends YamlCommandGroupWrapper { - - /** - * Instantiate the CommandGroup - * - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be considered on - * target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0. - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be considered within - * tolerance. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given to the - * motors. Defaults to zero. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param subsystem The drive to execute this command on. - */ - @JsonCreator - public JiggleRobot(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - boolean inverted, - int kP, - int kI, - int kD, - @NotNull @JsonProperty(required = true) T subsystem) { - addSequential(new NavXTurnToAngleRelative<>(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, inverted, kP, kI, kD, 10, subsystem, 3)); - addSequential(new NavXTurnToAngleRelative<>(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, inverted, kP, kI, kD, -10, subsystem, 3)); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXDriveStraight.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXDriveStraight.java deleted file mode 100644 index ec0acb69..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXDriveStraight.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface.drive; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand; - -/** - * Drives straight using the NavX gyro to keep a constant alignment. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class NavXDriveStraight extends PIDAngleCommand { - - /** - * The drive subsystem to give output to. - */ - @NotNull - protected final T subsystem; - - /** - * The tank OI to get input from. - */ - @NotNull - private final OITank oi; - - /** - * Whether to use the left joystick to drive straight. - */ - private final boolean useLeft; - - /** - * Default constructor. - * - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be considered on - * target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0. - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be considered within - * tolerance. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given to the - * motors. Defaults to zero. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param subsystem The drive to execute this command on. - * @param oi The tank OI to take input from. - * @param useLeft Which joystick to use to get the forward component to drive straight. True for left, - * false for right. - */ - @JsonCreator - public NavXDriveStraight(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - boolean inverted, - int kP, - int kI, - int kD, - @NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) OITank oi, - @JsonProperty(required = true) boolean useLeft) { - super(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, inverted, subsystem, kP, kI, kD); - this.oi = oi; - this.subsystem = subsystem; - this.useLeft = useLeft; - //This is likely to need to interrupt the DefaultCommand and therefore should require its subsystem. - requires(subsystem); - } - - /** - * Give output to the drive based on the out of the PID loop. - * - * @param output the value the PID loop calculated - */ - @Override - protected void usePIDOutput(double output) { - //Process the PID output with deadband, minimum output, etc. - output = processPIDOutput(output); - - //Set throttle to the specified stick. - if (useLeft) { - subsystem.setOutput(oi.getLeftOutputCached() - output, oi.getLeftOutputCached() + output); - } else { - subsystem.setOutput(oi.getRightOutputCached() - output, oi.getRightOutputCached() + output); - } - } - - /** - * Set the setpoint of the angle PID. - */ - @Override - protected void initialize() { - this.getPIDController().setSetpoint(this.returnPIDInput()); - this.getPIDController().enable(); - } - - /** - * Never finishes. - * - * @return false - */ - @Override - protected boolean isFinished() { - return false; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("NavXDriveStraight end", this.getClass()); - this.getPIDController().disable(); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("NavXDriveStraight interrupted!", this.getClass()); - this.getPIDController().disable(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngle.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngle.java deleted file mode 100644 index c286d234..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngle.java +++ /dev/null @@ -1,149 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface.drive; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Clock; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand; - -/** - * Turns to a specified angle, relative to the angle the AHRS was at when the robot was turned on. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class NavXTurnToAngle extends PIDAngleCommand { - - /** - * The drive subsystem to execute this command on and to get the gyro reading from. - */ - @NotNull - protected final T subsystem; - - /** - * The angle to turn to. - */ - protected final double setpoint; - - /** - * How long this command is allowed to run for (in milliseconds) - */ - private final long timeout; - - /** - * The time this command was initiated - */ - protected long startTime; - - /** - * Default constructor. - * - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be considered on - * target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0. - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be considered within - * tolerance. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given to the - * motors. Defaults to zero. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param setpoint The setpoint, in degrees from 180 to -180. - * @param subsystem The drive subsystem to execute this command on. - * @param timeout How long this command is allowed to run for, in seconds. Needed because sometimes - * floating-point errors prevent termination. - */ - @JsonCreator - public NavXTurnToAngle(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - boolean inverted, - int kP, - int kI, - int kD, - @JsonProperty(required = true) double setpoint, - @NotNull @JsonProperty(required = true) T subsystem, - @JsonProperty(required = true) double timeout) { - super(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, inverted, subsystem, kP, kI, kD); - this.subsystem = subsystem; - this.setpoint = setpoint; - //Convert from seconds to milliseconds - this.timeout = (long) (timeout * 1000); - requires(subsystem); - } - - /** - * Clip a degree number to the NavX's -180 to 180 system. - * - * @param theta The angle to clip, in degrees. - * @return The equivalent of that number, clipped to be between -180 and 180. - */ - @Contract(pure = true) - protected static double clipTo180(double theta) { - return (theta + 180) % 360 - 180; - } - - /** - * Give output to the motors based on the output of the PID loop - * - * @param output The output of the angle PID loop - */ - @Override - protected void usePIDOutput(double output) { - //Process the output with deadband, minimum output, etc. - output = processPIDOutput(output); - - //spin to the right angle - subsystem.setOutput(-output, output); - } - - /** - * Set up the start time and setpoint. - */ - @Override - protected void initialize() { - //Set up start time - this.startTime = Clock.currentTimeMillis(); - this.setSetpoint(setpoint); - //Make sure to enable the controller! - this.getPIDController().enable(); - } - - /** - * Exit when the robot reaches the setpoint or enough time has passed. - * - * @return True if timeout seconds have passed or the robot is on target, false otherwise. - */ - @Override - protected boolean isFinished() { - //The PIDController onTarget() is crap and sometimes never returns true because of floating point errors, so we need a timeout - return this.getPIDController().onTarget() || Clock.currentTimeMillis() - startTime > timeout; - } - - /** - * Log when the command ends. - */ - @Override - protected void end() { - Logger.addEvent("NavXTurnToAngle end.", this.getClass()); - this.getPIDController().disable(); - } - - /** - * Log when the command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("NavXTurnToAngle interrupted!", this.getClass()); - this.getPIDController().disable(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngleRelative.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngleRelative.java deleted file mode 100644 index f290e398..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngleRelative.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface.drive; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Clock; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; - -/** - * Turn a certain number of degrees from the current heading. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class NavXTurnToAngleRelative extends NavXTurnToAngle { - - /** - * Default constructor. - * - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be considered on - * target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0. - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be considered within - * tolerance. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given to the - * motors. Defaults to zero. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param setpoint The setpoint, in degrees from 180 to -180. - * @param drive The drive subsystem to execute this command on. - * @param timeout How long this command is allowed to run for, in seconds. Needed because sometimes - * floating-point errors prevent termination. - */ - @JsonCreator - public NavXTurnToAngleRelative(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - boolean inverted, - int kP, - int kI, - int kD, - @JsonProperty(required = true) double setpoint, - @NotNull @JsonProperty(required = true) T drive, - @JsonProperty(required = true) double timeout) { - super(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, inverted, kP, kI, kD, setpoint, drive, timeout); - } - - /** - * Set up the start time and setpoint. - */ - @Override - protected void initialize() { - //Setup start time - this.startTime = Clock.currentTimeMillis(); - Logger.addEvent("NavXRelativeTurnToAngle init.", this.getClass()); - //Do math to setup the setpoint. - this.setSetpoint(clipTo180(((SubsystemAHRS) subsystem).getHeadingCached() + setpoint)); - //Make sure to enable the controller! - this.getPIDController().enable(); - } - - /** - * Log when the command ends. - */ - @Override - protected void end() { - Logger.addEvent("NavXRelativeTurnToAngle end.", this.getClass()); - //Stop the controller - this.getPIDController().disable(); - } - - /** - * Log when the command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("NavXRelativeTurnToAngle interrupted!", this.getClass()); - //Stop the controller - this.getPIDController().disable(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXDefaultDrive.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXDefaultDrive.java deleted file mode 100644 index 42de1446..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXDefaultDrive.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface.drive; - -import com.fasterxml.jackson.annotation.*; -import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional; -import org.usfirst.frc.team449.robot.other.BufferTimer; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand; - -/** - * Drive with arcade drive setup, and when the driver isn't turning, use a NavX to stabilize the robot's alignment. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class UnidirectionalNavXDefaultDrive extends PIDAngleCommand { - - /** - * The drive this command is controlling. - */ - @NotNull - protected final T subsystem; - - /** - * The OI giving the input stick values. - */ - @NotNull - protected final OIUnidirectional oi; - - /** - * The maximum velocity for the robot to be at in order to switch to driveStraight, in degrees/sec - */ - private final double maxAngularVelToEnterLoop; - - /** - * A bufferTimer so we only switch to driving straight when the conditions are met for a certain period of time. - */ - @NotNull - private final BufferTimer driveStraightLoopEntryTimer; - - /** - * Whether or not we should be using the NavX to drive straight stably. - */ - private boolean drivingStraight; - - /** - * Default constructor - * - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be - * considered on target. Multiply by loop period of ~20 milliseconds for time. - * Defaults to 0. - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be - * considered within tolerance. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output - * is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given - * to the motors. Defaults to zero. - * @param maxAngularVelToEnterLoop The maximum angular velocity, in degrees/sec, at which the loop will be - * entered. Defaults to 180. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param driveStraightLoopEntryTimer The buffer timer for starting to drive straight. - * @param subsystem The drive to execute this command on. - * @param oi The OI controlling the robot. - */ - @JsonCreator - public UnidirectionalNavXDefaultDrive(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - @Nullable Double maxAngularVelToEnterLoop, - boolean inverted, - double kP, - double kI, - double kD, - @NotNull @JsonProperty(required = true) BufferTimer driveStraightLoopEntryTimer, - @NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) OIUnidirectional oi) { - //Assign stuff - super(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, inverted, subsystem, kP, kI, kD); - this.oi = oi; - this.subsystem = subsystem; - - this.driveStraightLoopEntryTimer = driveStraightLoopEntryTimer; - this.maxAngularVelToEnterLoop = maxAngularVelToEnterLoop != null ? maxAngularVelToEnterLoop : 180; - - //Needs a requires because it's a default command. - requires(this.subsystem); - - //Logging, but in Spanish. - Logger.addEvent("Drive Robot bueno", this.getClass()); - } - - /** - * Initialize PIDController and variables. - */ - @Override - protected void initialize() { - //Reset all values of the PIDController and enable it. - this.getPIDController().reset(); - this.getPIDController().enable(); - Logger.addEvent("UnidirectionalNavXArcadeDrive init.", this.getClass()); - - //Initial assignment - drivingStraight = false; - } - - /** - * Decide whether or not we should be in free drive or straight drive. - */ - @Override - protected void execute() { - //If we're driving straight but the driver tries to turn or overrides the AHRS: - if (drivingStraight && (!oi.commandingStraight() || subsystem.getOverrideGyro())) { - //Switch to free drive - drivingStraight = false; - } - //If we're free driving and the driver stops turning: - else if (driveStraightLoopEntryTimer.get(!(subsystem.getOverrideGyro()) && !(drivingStraight) && - oi.commandingStraight() && Math.abs(subsystem.getAngularVelCached()) <= maxAngularVelToEnterLoop)) { - //Switch to driving straight - drivingStraight = true; - //Set the setpoint to the current heading and reset the AHRS - this.getPIDController().reset(); - this.getPIDController().setSetpoint(subsystem.getHeadingCached()); - this.getPIDController().enable(); - } - } - - /** - * Run constantly because this is a defaultDrive - * - * @return false - */ - @Override - protected boolean isFinished() { - return false; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("UnidirectionalNavXArcadeDrive End.", this.getClass()); - } - - /** - * Stop the motors and log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("UnidirectionalNavXArcadeDrive Interrupted! Stopping the robot.", this.getClass()); - subsystem.fullStop(); - } - - /** - * Give the correct output to the motors based on whether we're in free drive or drive straight. - * - * @param output The output of the angular PID loop. - */ - @Override - protected void usePIDOutput(double output) { - SmartDashboard.putBoolean("Driving straight", drivingStraight); - //If we're driving straight.. - if (drivingStraight) { - //Process the output (minimumOutput, deadband, etc.) - output = processPIDOutput(output); - - //Deadband if we're stationary - if (oi.getLeftOutputCached() == 0 || oi.getRightOutputCached() == 0) { - output = deadbandOutput(output); - } - - //Adjust the heading according to the PID output, it'll be positive if we want to go right. - subsystem.setOutput(oi.getLeftOutputCached() - output, oi.getRightOutputCached() + output); - } - //If we're free driving... - else { - //Set the throttle to normal arcade throttle. - subsystem.setOutput(oi.getLeftOutputCached(), oi.getRightOutputCached()); - } - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXShiftingDefaultDrive.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXShiftingDefaultDrive.java deleted file mode 100644 index d3791ec8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXShiftingDefaultDrive.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiInterface.drive; - -import com.fasterxml.jackson.annotation.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.components.AutoshiftComponent; -import org.usfirst.frc.team449.robot.drive.shifting.DriveShiftable; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional; -import org.usfirst.frc.team449.robot.other.BufferTimer; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; - -/** - * Drive with arcade drive setup, autoshift, and when the driver isn't turning, use a NavX to stabilize the robot's - * alignment. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class UnidirectionalNavXShiftingDefaultDrive extends UnidirectionalNavXDefaultDrive { - - /** - * The drive to execute this command on. - */ - @NotNull - protected final T subsystem; - - /** - * The helper object for autoshifting. - */ - @NotNull - protected final AutoshiftComponent autoshiftComponent; - - /** - * The coefficient to multiply the loop output by in high gear. - */ - private final double highGearAngularCoefficient; - - /** - * Default constructor - * - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be - * considered on target. Multiply by loop period of ~20 milliseconds for time. - * Defaults to 0. - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be - * considered within tolerance. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output - * is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given - * to the motors. Defaults to zero. - * @param maxAngularVelToEnterLoop The maximum angular velocity, in degrees/sec, at which the loop will be - * entered. Defaults to 180. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param driveStraightLoopEntryTimer The buffer timer for starting to drive straight. - * @param subsystem The drive to execute this command on. - * @param oi The OI controlling the robot. - * @param autoshiftComponent The helper object for autoshifting. - * @param highGearAngularCoefficient The coefficient to multiply the loop output by in high gear. Defaults to 1. - */ - @JsonCreator - public UnidirectionalNavXShiftingDefaultDrive(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - @Nullable Double maxAngularVelToEnterLoop, - boolean inverted, - double kP, - double kI, - double kD, - @NotNull @JsonProperty(required = true) BufferTimer driveStraightLoopEntryTimer, - @NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) OIUnidirectional oi, - @NotNull @JsonProperty(required = true) AutoshiftComponent autoshiftComponent, - @Nullable Double highGearAngularCoefficient) { - super(absoluteTolerance, toleranceBuffer, minimumOutput, maximumOutput, deadband, maxAngularVelToEnterLoop, - inverted, kP, kI, kD, driveStraightLoopEntryTimer, subsystem, oi); - this.autoshiftComponent = autoshiftComponent; - this.subsystem = subsystem; - this.highGearAngularCoefficient = highGearAngularCoefficient != null ? highGearAngularCoefficient : 1; - } - - /** - * Autoshift and decide whether or not we should be in free drive or straight drive - */ - @Override - public void execute() { - //Auto-shifting - if (!subsystem.getOverrideAutoshift()) { - autoshiftComponent.autoshift((oi.getLeftOutputCached() + oi.getRightOutputCached()) / 2., subsystem.getLeftVelCached(), - subsystem.getRightVelCached(), gear -> subsystem.setGear(gear)); - } - super.execute(); - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("ShiftingUnidirectionalNavXArcadeDrive End.", this.getClass()); - } - - /** - * Stop the motors and log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("ShiftingUnidirectionalNavXArcadeDrive Interrupted! Stopping the robot.", this.getClass()); - subsystem.fullStop(); - } - - /** - * Give the correct output to the motors based on whether we're in free drive or drive straight. - * - * @param output The output of the angular PID loop. - */ - @Override - protected void usePIDOutput(double output) { - super.usePIDOutput(output * (subsystem.getGear() == Shiftable.gear.HIGH.getNumVal() ? highGearAngularCoefficient : 1)); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/FireShooter.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/FireShooter.java deleted file mode 100644 index 7da611e1..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/FireShooter.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiSubsystem; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode; - -/** - * Command group for firing the flywheel. Runs flywheel, runs static intake, stops dynamic intake, raises intake, and - * runs feeder. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class FireShooter extends YamlCommandGroupWrapper { - - /** - * Constructs a FireShooter command group - * - * @param subsystemFlywheel flywheel subsystem. Can be null. - * @param subsystemIntake intake subsystem. Can be null. - */ - @JsonCreator - public FireShooter(@Nullable SubsystemFlywheel subsystemFlywheel, - @Nullable SubsystemIntake subsystemIntake) { - if (subsystemFlywheel != null) { - addParallel(new TurnAllOn(subsystemFlywheel)); - } - if (subsystemIntake != null) { - addParallel(new SetIntakeMode(subsystemIntake, SubsystemIntake.IntakeMode.IN_SLOW)); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/LoadShooter.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/LoadShooter.java deleted file mode 100644 index e820b45d..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/LoadShooter.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiSubsystem; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse; - -/** - * Command group for intaking balls from the ground. Stops flywheel, runs static intake, runs dynamic intake, lowers - * intake, and stops feeder. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class LoadShooter extends YamlCommandGroupWrapper { - - /** - * Constructs a LoadShooter command group - * - * @param subsystemFlywheel flywheel subsystem. Can be null. - * @param subsystemIntake intake subsystem. Can be null. - */ - @JsonCreator - public LoadShooter(@Nullable SubsystemFlywheel subsystemFlywheel, - @Nullable T subsystemIntake) { - if (subsystemFlywheel != null) { - addParallel(new TurnAllOff(subsystemFlywheel)); - } - if (subsystemIntake != null) { - addParallel(new SolenoidReverse(subsystemIntake)); - addParallel(new SetIntakeMode(subsystemIntake, SubsystemIntake.IntakeMode.IN_FAST)); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/RackShooter.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/RackShooter.java deleted file mode 100644 index e869b7e2..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/RackShooter.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiSubsystem; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse; - -/** - * Command group for preparing the flywheel to fire. Starts flywheel, runs static intake, stops dynamic intake, raises - * intake, and stops feeder. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class RackShooter extends YamlCommandGroupWrapper { - - /** - * Constructs a RackShooter command group - * - * @param subsystemFlywheel flywheel subsystem. Can be null. - * @param subsystemIntake intake subsystem. Can be null. - */ - @JsonCreator - public RackShooter(@Nullable SubsystemFlywheel subsystemFlywheel, - @Nullable T subsystemIntake) { - if (subsystemFlywheel != null) { - addParallel(new SpinUpFlywheel(subsystemFlywheel)); - } - if (subsystemIntake != null) { - addParallel(new SolenoidReverse(subsystemIntake)); - addParallel(new SetIntakeMode(subsystemIntake, SubsystemIntake.IntakeMode.IN_SLOW)); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/ResetShooter.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/ResetShooter.java deleted file mode 100644 index 00fc50f0..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/commands/multiSubsystem/ResetShooter.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.usfirst.frc.team449.robot.commands.multiSubsystem; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse; - -/** - * Command group to reset everything. Turns everything off, raises intake - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ResetShooter extends YamlCommandGroupWrapper { - - /** - * Constructs a ResetShooter command group - * - * @param subsystemFlywheel flywheel subsystem. Can be null. - * @param subsystemIntake intake subsystem. Can be null. - */ - @JsonCreator - public ResetShooter(@Nullable SubsystemFlywheel subsystemFlywheel, - @Nullable T subsystemIntake) { - if (subsystemFlywheel != null) { - addParallel(new TurnAllOff(subsystemFlywheel)); - } - if (subsystemIntake != null) { - addParallel(new SolenoidReverse(subsystemIntake)); - addParallel(new SetIntakeMode(subsystemIntake, SubsystemIntake.IntakeMode.OFF)); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/AHRSRumbleComponent.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/AHRSRumbleComponent.java deleted file mode 100644 index 4f462384..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/AHRSRumbleComponent.java +++ /dev/null @@ -1,144 +0,0 @@ -package org.usfirst.frc.team449.robot.components; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.rumbleable.Rumbleable; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable; -import org.usfirst.frc.team449.robot.other.Clock; - -import java.util.List; - -/** - * A component to rumble controllers based off the jerk measurements from an AHRS. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class AHRSRumbleComponent implements MappedRunnable { - - /** - * The NavX to get jerk measurements from. - */ - @NotNull - private final MappedAHRS ahrs; - - /** - * The things to rumble. - */ - @NotNull - private final List rumbleables; - - /** - * The minimum jerk that will trigger rumbling, in feet/second^3. - */ - private final double minJerk; - - /** - * The jerk, in feet/second^3, that's scaled to maximum rumble. All jerks of greater magnitude are capped at 1. - */ - private final double maxJerk; - - /** - * Whether the NavX Y-axis measures forwards-back jerk or left-right jerk. - */ - private final boolean yIsFrontBack; - - /** - * Whether to invert the left-right jerk measurement. - */ - private final boolean invertLeftRight; - - /** - * Variables for the per-call rumble calculation representing the directional accelerations. Fields to avoid garbage - * collection. - */ - private double lastFrontBackAccel, lastLeftRightAccel; - - /** - * Variables for the per-call rumble calculation representing the rumble outputs. Fields to avoid garbage - * collection. - */ - private double left, right; - - /** - * Variables for per-call acceleration calculation. Fields to avoid garbage collection. - */ - private double frontBack, leftRight; - - /** - * The time at which the acceleration was last measured. - */ - private long timeLastCalled; - - /** - * Default constructor. - * - * @param ahrs The NavX to get jerk measurements from. - * @param rumbleables The things to rumble. - * @param minJerk The minimum jerk that will trigger rumbling, in feet/(sec^3). - * @param maxJerk The jerk, in feet/(sec^3), that's scaled to maximum rumble. All jerks of greater magnitude - * are capped at 1. - * @param yIsFrontBack Whether the NavX Y-axis measures forwards-back jerk or left-right jerk. Defaults to - * false. - * @param invertLeftRight Whether to invert the left-right jerk measurement. Defaults to false. - */ - @JsonCreator - public AHRSRumbleComponent(@NotNull @JsonProperty(required = true) MappedAHRS ahrs, - @NotNull @JsonProperty(required = true) List rumbleables, - @JsonProperty(required = true) double minJerk, - @JsonProperty(required = true) double maxJerk, - boolean yIsFrontBack, - boolean invertLeftRight) { - this.ahrs = ahrs; - this.rumbleables = rumbleables; - this.minJerk = minJerk; - this.maxJerk = maxJerk; - this.yIsFrontBack = yIsFrontBack; - this.invertLeftRight = invertLeftRight; - timeLastCalled = 0; - lastFrontBackAccel = 0; - lastLeftRightAccel = 0; - } - - /** - * Read the NavX jerk data and rumble the joysticks based off of it. - */ - @Override - public void run() { - if (yIsFrontBack) { - //Put an abs() here because we can't differentiate front vs back when rumbling, so we only care about magnitude. - frontBack = Math.abs(ahrs.getYAccel()); - leftRight = ahrs.getXAccel() * (invertLeftRight ? -1 : 1); - } else { - frontBack = Math.abs(ahrs.getYAccel()); - leftRight = ahrs.getXAccel() * (invertLeftRight ? -1 : 1); - } - - //Left is negative jerk, so we subtract it from left so that when we're going left, left is bigger and vice versa - left = ((frontBack - lastFrontBackAccel) - (leftRight - lastLeftRightAccel)) / (Clock.currentTimeMillis() - timeLastCalled); - right = ((frontBack - lastFrontBackAccel) + (leftRight - lastLeftRightAccel)) / (Clock.currentTimeMillis() - timeLastCalled); - - if (left > minJerk) { - left = (left - minJerk) / maxJerk; - } else { - left = 0; - } - - if (right > minJerk) { - right = (right - minJerk) / maxJerk; - } else { - right = 0; - } - - for (Rumbleable rumbleable : rumbleables) { - rumbleable.rumble(left, right); - } - - lastLeftRightAccel = leftRight; - lastFrontBackAccel = frontBack; - timeLastCalled = Clock.currentTimeMillis(); - } - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/AutoshiftComponent.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/AutoshiftComponent.java deleted file mode 100644 index f7043245..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/AutoshiftComponent.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.usfirst.frc.team449.robot.components; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.other.BufferTimer; -import org.usfirst.frc.team449.robot.other.Clock; - -import java.util.function.Consumer; - -/** - * A component class for autoshifting. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class AutoshiftComponent { - - /** - * The speed setpoint at the upshift break - */ - private final double upshiftSpeed; - - /** - * The speed setpoint at the downshift break - */ - private final double downshiftSpeed; - - /** - * The robot isn't eligible to shift again for this many milliseconds after upshifting. - */ - private final long cooldownAfterUpshift; - - /** - * The robot isn't eligible to shift again for this many milliseconds after downshifting. - */ - private final long cooldownAfterDownshift; - - /** - * BufferTimers for shifting that make it so all the other conditions to shift must be met for some amount of time - * before shifting actually happens. - */ - @NotNull - private final BufferTimer upshiftBufferTimer, downshiftBufferTimer; - - /** - * The forward velocity setpoint (on a 0-1 scale) below which we stay in low gear - */ - private final double upshiftFwdThresh; - - /** - * The time we last upshifted (milliseconds) - */ - private long timeLastUpshifted; - - /** - * The time we last downshifted (milliseconds) - */ - private long timeLastDownshifted; - - /** - * Whether it's okay to up or down shift. Fields to avoid garbage collection. - */ - private boolean okayToUpshift, okayToDownshift; - - /** - * Default constructor - * - * @param upshiftSpeed The minimum speed both sides the drive must be going at to shift to high gear. - * @param downshiftSpeed The maximum speed both sides must be going at to shift to low gear. - * @param upshiftBufferTimer Buffer timer for upshifting. - * @param downshiftBufferTimer Buffer timer for downshifting. - * @param cooldownAfterDownshift The minimum time, in seconds, between downshifting and then upshifting again. - * Defaults to 0. - * @param cooldownAfterUpshift The minimum time, in seconds, between upshifting and then downshifting again. - * Defaults to 0. - * @param upshiftFwdThresh The minimum amount the forward joystick must be pushed forward in order to upshift, - * on [0, 1]. Defaults to 0. - */ - @JsonCreator - public AutoshiftComponent(@JsonProperty(required = true) double upshiftSpeed, - @JsonProperty(required = true) double downshiftSpeed, - @NotNull @JsonProperty(required = true) BufferTimer upshiftBufferTimer, - @NotNull @JsonProperty(required = true) BufferTimer downshiftBufferTimer, - double upshiftFwdThresh, - double cooldownAfterUpshift, - double cooldownAfterDownshift) { - this.upshiftSpeed = upshiftSpeed; - this.downshiftSpeed = downshiftSpeed; - this.upshiftFwdThresh = upshiftFwdThresh; - this.cooldownAfterUpshift = (long) (cooldownAfterUpshift * 1000.); - this.cooldownAfterDownshift = (long) (cooldownAfterDownshift * 1000.); - this.upshiftBufferTimer = upshiftBufferTimer; - this.downshiftBufferTimer = downshiftBufferTimer; - } - - /** - * Determine whether the robot should downshift. - * - * @param forwardThrottle The forwards throttle, on [-1, 1]. - * @param leftVel The velocity of the left side of the drive. - * @param rightVel The velocity of the right side of the drive. - * @return True if the drive should downshift, false otherwise. - */ - private boolean shouldDownshift(double forwardThrottle, double leftVel, double rightVel) { - //We should shift if we're going slower than the downshift speed - okayToDownshift = Math.max(Math.abs(leftVel), Math.abs(rightVel)) < downshiftSpeed; - //Or if we're just turning in place. - okayToDownshift = okayToDownshift || (forwardThrottle == 0); - //Or commanding a low speed. - okayToDownshift = okayToDownshift || (Math.abs(forwardThrottle) < upshiftFwdThresh); - //But we can only shift if we're out of the cooldown period. - okayToDownshift = okayToDownshift && Clock.currentTimeMillis() - timeLastUpshifted > cooldownAfterUpshift; - - //We use a BufferTimer so we only shift if the conditions are met for a specific continuous interval. - // This avoids brief blips causing shifting. - okayToDownshift = downshiftBufferTimer.get(okayToDownshift); - - //Record the time if we do decide to shift. - if (okayToDownshift) { - timeLastDownshifted = Clock.currentTimeMillis(); - } - return okayToDownshift; - } - - /** - * Determine whether the robot should upshift. - * - * @param forwardThrottle The forwards throttle, on [-1, 1]. - * @param leftVel The velocity of the left side of the drive. - * @param rightVel The velocity of the right side of the drive. - * @return True if the drive should upshift, false otherwise. - */ - private boolean shouldUpshift(double forwardThrottle, double leftVel, double rightVel) { - //We should shift if we're going faster than the upshift speed... - okayToUpshift = Math.min(Math.abs(leftVel), Math.abs(rightVel)) > upshiftSpeed; - //AND the driver's trying to go forward fast. - okayToUpshift = okayToUpshift && Math.abs(forwardThrottle) > upshiftFwdThresh; - //But we can only shift if we're out of the cooldown period. - okayToUpshift = okayToUpshift && Clock.currentTimeMillis() - timeLastDownshifted > cooldownAfterDownshift; - - //We use a BufferTimer so we only shift if the conditions are met for a specific continuous interval. - // This avoids brief blips causing shifting. - okayToUpshift = upshiftBufferTimer.get(okayToUpshift); - if (okayToUpshift) { - timeLastUpshifted = Clock.currentTimeMillis(); - } - return okayToUpshift; - } - - /** - * Determine if the subsystem should shift, and if yes, do the shifting. - * - * @param forwardThrottle The forwards throttle, on [-1, 1]. - * @param leftVel The velocity of the left side of the drive. - * @param rightVel The velocity of the right side of the drive. - * @param shift The function to actually shift gears. - */ - public void autoshift(double forwardThrottle, double leftVel, double rightVel, Consumer shift) { - if (shouldDownshift(forwardThrottle, leftVel, rightVel)) { - shift.accept(Shiftable.gear.LOW.getNumVal()); - } else if (shouldUpshift(forwardThrottle, leftVel, rightVel)) { - shift.accept(Shiftable.gear.HIGH.getNumVal()); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/ShiftComponent.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/ShiftComponent.java deleted file mode 100644 index f9948350..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/ShiftComponent.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.usfirst.frc.team449.robot.components; - -import com.fasterxml.jackson.annotation.*; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedDoubleSolenoid; - -import java.util.List; - -/** - * A component that a subsystem can use to handle shifting gears. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ShiftComponent { - - /** - * All objects that should be shifted when this component's piston is. - */ - @NotNull - protected final List otherShiftables; - - /** - * The piston that shifts. - */ - @NotNull - private final MappedDoubleSolenoid piston; - - /** - * The piston position for low gear. - */ - @NotNull - private final DoubleSolenoid.Value lowGearPistonPos; - - /** - * The gear this component is currently in. - */ - protected int currentGear; - - /** - * Default constructor. - * - * @param otherShiftables All objects that should be shifted when this component's piston is. - * @param piston The piston that shifts. - * @param lowGearPistonPos The piston position for low gear. Defaults to Forward. - * @param startingGear The gear to start in. Can be null, and if it is, the starting gear is gotten from the - * piston's position. - */ - @JsonCreator - public ShiftComponent(@NotNull @JsonProperty(required = true) List otherShiftables, - @NotNull @JsonProperty(required = true) MappedDoubleSolenoid piston, - @Nullable DoubleSolenoid.Value lowGearPistonPos, - @Nullable Shiftable.gear startingGear) { - this.otherShiftables = otherShiftables; - this.piston = piston; - this.lowGearPistonPos = lowGearPistonPos != null ? lowGearPistonPos : DoubleSolenoid.Value.kForward; - - if (startingGear != null) { - this.currentGear = startingGear.getNumVal(); - } else { - //Get the starting gear from the piston's position if it's not provided - this.currentGear = piston.get() == lowGearPistonPos ? Shiftable.gear.LOW.getNumVal() : Shiftable.gear.HIGH.getNumVal(); - } - - //Set all the shiftables to the starting gear. - for (Shiftable shiftable : otherShiftables) { - shiftable.setGear(currentGear); - } - } - - /** - * Shifts to a given gear. - * - * @param gear The gear to shift to. - */ - public void shiftToGear(int gear) { - //Do nothing if we try to switch to the current gear. - if (!(gear == currentGear)) { - for (Shiftable shiftable : otherShiftables) { - shiftable.setGear(gear); - } - shiftPiston(gear); - this.currentGear = gear; - } - } - - /** - * @return The gear the shifter is currently in. - */ - public int getCurrentGear() { - return currentGear; - } - - /** - * Shifts the piston to the given gear. - * - * @param gear The gear to shift to - */ - protected void shiftPiston(int gear) { - if (gear == Shiftable.gear.LOW.getNumVal()) { - //Switch to the low gear pos - piston.set(lowGearPistonPos); - } else if (lowGearPistonPos.equals(DoubleSolenoid.Value.kForward)) { - //If we want to switch to high gear and the low gear pos is forward, switch to reverse - piston.set(DoubleSolenoid.Value.kReverse); - } else { - //If we want to switch to high gear and the low gear pos is reverse, switch to forward - piston.set(DoubleSolenoid.Value.kForward); - } - } - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/ShiftWithSensorComponent.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/ShiftWithSensorComponent.java deleted file mode 100644 index 9472765a..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/components/ShiftWithSensorComponent.java +++ /dev/null @@ -1,164 +0,0 @@ -package org.usfirst.frc.team449.robot.components; - -import com.fasterxml.jackson.annotation.*; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import edu.wpi.first.wpilibj.Notifier; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedDoubleSolenoid; -import org.usfirst.frc.team449.robot.other.BufferTimer; - -import java.util.List; - -/** - * A component that a subsystem can use for shifting when the pistons have sensor to detect position. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ShiftWithSensorComponent extends ShiftComponent { - - /** - * The reed switches that detect if the shifter pistons are in high gear. - */ - @NotNull - private final MappedDigitalInput highGearSensors; - - /** - * The reed switches that detect if the shifter pistons are in low gear. - */ - @NotNull - private final MappedDigitalInput lowGearSensors; - - /** - * The motors that should be disabled while the piston is shifting. - */ - @NotNull - private final List motorsToDisable; - - /** - * The timer for how long the piston can be considered shifting before we ignore the sensors and re-enable the - * motors. - */ - @NotNull - private final BufferTimer motorDisableTimer; - - /** - * The Notifier that runs checkToReenable periodically. - */ - @NotNull - private final Notifier sensorChecker; - - /** - * The period for the loop that checks the sensors and enables/disables the motors, in seconds. - */ - private final double sensorCheckerPeriodSecs; - - /** - * Whether the piston's position was correct the last time checkToReenable was run. - */ - private boolean pistonWasCorrect; - - /** - * Whether the piston's position is currently correct. Field to avoid garbage collection. - */ - private boolean pistonCorrect; - - /** - * Default constructor. - * - * @param otherShiftables All objects that should be shifted when this component's piston is. - * @param piston The piston that shifts. - * @param lowGearPistonPos The piston position for low gear. Defaults to Forward. - * @param startingGear The gear to start in. Can be null, and if it is, the starting gear is gotten from - * the piston's position. - * @param highGearSensors The reed switches that detect if the shifter pistons are in high gear. - * @param lowGearSensors The reed switches that detect if the shifter pistons are in low gear. - * @param motorsToDisable The motors that should be disabled while the piston is shifting. - * @param motorDisableTimer The timer for how long the piston can be considered shifting before we ignore the - * sensors and re-enable the motors. - * @param sensorCheckerPeriodSecs The period for the loop that checks the sensors and enables/disables the motors, - * in seconds. - */ - @JsonCreator - public ShiftWithSensorComponent(@NotNull @JsonProperty(required = true) List otherShiftables, - @NotNull @JsonProperty(required = true) MappedDoubleSolenoid piston, - @Nullable DoubleSolenoid.Value lowGearPistonPos, - @Nullable Shiftable.gear startingGear, - @NotNull @JsonProperty(required = true) MappedDigitalInput highGearSensors, - @NotNull @JsonProperty(required = true) MappedDigitalInput lowGearSensors, - @NotNull @JsonProperty(required = true) List motorsToDisable, - @NotNull @JsonProperty(required = true) BufferTimer motorDisableTimer, - @JsonProperty(required = true) double sensorCheckerPeriodSecs) { - super(otherShiftables, piston, lowGearPistonPos, startingGear); - this.highGearSensors = highGearSensors; - this.lowGearSensors = lowGearSensors; - this.motorsToDisable = motorsToDisable; - this.motorDisableTimer = motorDisableTimer; - this.sensorChecker = new Notifier(this::checkToReenable); - this.sensorChecker.startPeriodic(sensorCheckerPeriodSecs); - this.sensorCheckerPeriodSecs = sensorCheckerPeriodSecs; - } - - /** - * Check the sensors and enable/disable the motors accordingly. - */ - private void checkToReenable() { - //Check if the piston is in correct position by making sure each sensor is reading correctly. - pistonCorrect = true; - if (currentGear == Shiftable.gear.HIGH.getNumVal()) { - for (boolean sensor : highGearSensors.getStatus()) { - //The position is correct if all the sensors read true. - pistonCorrect = pistonCorrect && sensor; - } - } else { - for (boolean sensor : lowGearSensors.getStatus()) { - //The position is correct if all the sensors read true. - pistonCorrect = pistonCorrect && sensor; - } - } - - //If the pistons haven't been correct for more than a certain amount of time, we assume something went wrong and - // keep the motors enabled (essentially ignoring the sensors) so the robot can still drive. - if (motorDisableTimer.get(!pistonCorrect)) { - //We set pistonCorrect here because we're basically just overriding what the sensors say. - pistonCorrect = true; - for (SimpleMotor motor : motorsToDisable) { - motor.enable(); - } - sensorChecker.stop(); - } - //Otherwise, if the piston is wrong, disable all the motors. We do this constantly in case some other part of - //the code tries to re-enable them. - //TODO set up a lock system so no other part of the code can re-enable the motors. - else if (!pistonCorrect) { - for (SimpleMotor motor : motorsToDisable) { - motor.disable(); - } - } - //If the piston is correct, but wasn't the last time we checked, that means the piston has finished shifting and - //we should re-enable the motors. - else if (!pistonWasCorrect) { - for (SimpleMotor motor : motorsToDisable) { - motor.enable(); - } - sensorChecker.stop(); - } - - //Record the piston position so we can have rising/falling edge detection - pistonWasCorrect = pistonCorrect; - } - - /** - * Shifts to a given gear. - * - * @param gear The gear to shift to. - */ - @Override - public void shiftToGear(int gear) { - super.shiftToGear(gear); - sensorChecker.startPeriodic(sensorCheckerPeriodSecs); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/DriveSubsystem.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/DriveSubsystem.java deleted file mode 100644 index 108c6db8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/DriveSubsystem.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.usfirst.frc.team449.robot.drive; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * Any locomotion device for the robot. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface DriveSubsystem { - - /** - * Completely stop the robot by setting the voltage to each side to be 0. - */ - void fullStop(); - - /** - * If this drive uses motors that can be disabled, enable them. - */ - void enableMotors(); - - /** - * Reset the position of the drive if it has encoders. - */ - void resetPosition(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/commands/EnableMotors.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/commands/EnableMotors.java deleted file mode 100644 index 9bd8c102..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/commands/EnableMotors.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.DriveSubsystem; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Enables the motors of the given drive subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class EnableMotors extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final DriveSubsystem subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public EnableMotors(@NotNull @JsonProperty(required = true) DriveSubsystem subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("EnableMotors init.", this.getClass()); - } - - /** - * Do the state change. - */ - @Override - protected void execute() { - subsystem.enableMotors(); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("EnableMotors end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("EnableMotors Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/commands/ResetPosition.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/commands/ResetPosition.java deleted file mode 100644 index 26fe993c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/commands/ResetPosition.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.DriveSubsystem; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Resets the positions of the motors of the given drive subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ResetPosition extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final DriveSubsystem subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public ResetPosition(@NotNull @JsonProperty(required = true) DriveSubsystem subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("EnableMotors init.", this.getClass()); - } - - /** - * Do the state change. - */ - @Override - protected void execute() { - subsystem.resetPosition(); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("EnableMotors end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("EnableMotors Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/DriveShiftable.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/DriveShiftable.java deleted file mode 100644 index 557d711c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/DriveShiftable.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.shifting; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; - -/** - * A drive that has a high gear and a low gear and can switch between them. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface DriveShiftable extends Shiftable { - - /** - * @return true if currently overriding autoshifting, false otherwise. - */ - boolean getOverrideAutoshift(); - - /** - * @param override Whether or not to override autoshifting. - */ - void setOverrideAutoshift(boolean override); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/commands/OverrideAutoShift.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/commands/OverrideAutoShift.java deleted file mode 100644 index 898e9185..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/commands/OverrideAutoShift.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.shifting.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.shifting.DriveShiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Override or unoverride whether we're autoshifting. Used to stay in low gear for pushing matches and more! - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class OverrideAutoShift extends YamlCommandWrapper { - - /** - * Whether or not to override. - */ - private final boolean override; - - /** - * The drive subsystem to execute this command on. - */ - @NotNull - private final DriveShiftable subsystem; - - /** - * Default constructor - * - * @param drive The drive subsystem to execute this command on. - * @param override Whether or not to override autoshifting. - */ - @JsonCreator - public OverrideAutoShift(@NotNull @JsonProperty(required = true) DriveShiftable drive, - @JsonProperty(required = true) boolean override) { - subsystem = drive; - this.override = override; - } - - /** - * Log on initialization - */ - @Override - protected void initialize() { - Logger.addEvent("OverrideAutoShift init", this.getClass()); - } - - /** - * Override autoshifting. - */ - @Override - protected void execute() { - //Set whether or not we're overriding - subsystem.setOverrideAutoshift(override); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends. - */ - @Override - protected void end() { - Logger.addEvent("OverrideAutoShift end", this.getClass()); - } - - /** - * Log when interrupted - */ - @Override - protected void interrupted() { - Logger.addEvent("OverrideAutoShift Interrupted!", this.getClass()); - } -} - diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/commands/ToggleOverrideAutoShift.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/commands/ToggleOverrideAutoShift.java deleted file mode 100644 index 9a5098e1..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/shifting/commands/ToggleOverrideAutoShift.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.shifting.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.shifting.DriveShiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Override or unoverride whether we're autoshifting. Used to stay in low gear for pushing matches and more! - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ToggleOverrideAutoShift extends YamlCommandWrapper { - - /** - * The drive subsystem to execute this command on. - */ - @NotNull - private final DriveShiftable subsystem; - - /** - * Default constructor - * - * @param drive The drive subsystem to execute this command on. - */ - @JsonCreator - public ToggleOverrideAutoShift(@NotNull @JsonProperty(required = true) DriveShiftable drive) { - subsystem = drive; - } - - /** - * Log on initialization - */ - @Override - protected void initialize() { - Logger.addEvent("OverrideAutoShift init", this.getClass()); - } - - /** - * Toggle overriding autoshifting. - */ - @Override - protected void execute() { - //Set whether or not we're overriding - subsystem.setOverrideAutoshift(!subsystem.getOverrideAutoshift()); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends. - */ - @Override - protected void end() { - Logger.addEvent("OverrideAutoShift end", this.getClass()); - } - - /** - * Log when interrupted - */ - @Override - protected void interrupted() { - Logger.addEvent("OverrideAutoShift Interrupted!", this.getClass()); - } -} - diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonCluster.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonCluster.java deleted file mode 100644 index 0f17522c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonCluster.java +++ /dev/null @@ -1,477 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional; - -import com.fasterxml.jackson.annotation.*; -import edu.wpi.first.wpilibj.command.Command; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable; -import org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.other.MotionProfileData; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.SubsystemMPTwoSides; - - -/** - * A drive with a cluster of any number of CANTalonSRX controlled motors on each side. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class DriveTalonCluster extends YamlSubsystem implements SubsystemAHRS, DriveUnidirectional, Loggable, SubsystemMPTwoSides { - - /** - * Joystick scaling constant. Joystick output is scaled by this before being handed to the motors. - */ - protected final double VEL_SCALE; - - /** - * Right master Talon - */ - @NotNull - protected final FPSTalon rightMaster; - - /** - * Left master Talon - */ - @NotNull - protected final FPSTalon leftMaster; - - /** - * The NavX gyro - */ - @NotNull - private final MappedAHRS ahrs; - - /** - * Whether or not to use the NavX for driving straight - */ - private boolean overrideGyro; - - /** - * Cached values for various sensor readings. - */ - @Nullable - private Double cachedLeftVel, cachedRightVel, cachedLeftPos, cachedRightPos; - private double cachedHeading, cachedAngularDisplacement, cachedAngularVel; - - /** - * Default constructor. - * - * @param leftMaster The master talon on the left side of the drive. - * @param rightMaster The master talon on the right side of the drive. - * @param ahrs The NavX gyro for calculating this drive's heading and angular velocity. - * @param VelScale The amount to scale the output to the motor by. Defaults to 1. - */ - @JsonCreator - public DriveTalonCluster(@NotNull @JsonProperty(required = true) FPSTalon leftMaster, - @NotNull @JsonProperty(required = true) FPSTalon rightMaster, - @NotNull @JsonProperty(required = true) MappedAHRS ahrs, - @Nullable Double VelScale) { - super(); - //Initialize stuff - this.VEL_SCALE = VelScale != null ? VelScale : 1.; - this.rightMaster = rightMaster; - this.leftMaster = leftMaster; - this.ahrs = ahrs; - this.overrideGyro = false; - } - - /** - * Set the output of each side of the drive. - * - * @param left The output for the left side of the drive, from [-1, 1] - * @param right the output for the right side of the drive, from [-1, 1] - */ - @Override - public void setOutput(double left, double right) { - //scale by the max speed - leftMaster.setVelocity(VEL_SCALE * left); - rightMaster.setVelocity(VEL_SCALE * right); - } - - /** - * Get the velocity of the left side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Override - @Nullable - public Double getLeftVel() { - return leftMaster.getVelocity(); - } - - /** - * Get the velocity of the right side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Override - @Nullable - public Double getRightVel() { - return rightMaster.getVelocity(); - } - - /** - * Get the position of the left side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getLeftPos() { - return leftMaster.getPositionFeet(); - } - - /** - * Get the position of the right side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getRightPos() { - return rightMaster.getPositionFeet(); - } - - /** - * Get the cached velocity of the left side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getLeftVelCached() { - return cachedLeftVel; - } - - /** - * Get the cached velocity of the right side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getRightVelCached() { - return cachedRightVel; - } - - /** - * Get the cached position of the left side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getLeftPosCached() { - return cachedLeftPos; - } - - /** - * Get the cached position of the right side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getRightPosCached() { - return cachedRightPos; - } - - /** - * Completely stop the robot by setting the voltage to each side to be 0. - */ - @Override - public void fullStop() { - leftMaster.setPercentVoltage(0); - rightMaster.setPercentVoltage(0); - } - - /** - * If this drive uses motors that can be disabled, enable them. - */ - @Override - public void enableMotors() { - leftMaster.enable(); - rightMaster.enable(); - } - - /** - * Stuff run on first enable. - */ - @Override - protected void initDefaultCommand() { - //Do nothing, the default command gets set with setDefaultCommandManual - } - - /** - * Set the default command. Done here instead of in initDefaultCommand so we don't have a defaultCommand during - * auto. - * - * @param defaultCommand The command to have run by default. Must require this subsystem. - */ - public void setDefaultCommandManual(Command defaultCommand) { - setDefaultCommand(defaultCommand); - } - - /** - * Get the robot's heading using the AHRS - * - * @return robot heading, in degrees, on [-180, 180] - */ - @Override - public double getHeading() { - return ahrs.getHeading(); - } - - /** - * Set the robot's heading. - * - * @param heading The heading to set to, in degrees on [-180, 180]. - */ - @Override - public void setHeading(double heading) { - ahrs.setHeading(heading); - } - - /** - * Get the robot's cached heading. - * - * @return robot heading, in degrees, on [-180, 180]. - */ - @Override - public double getHeadingCached() { - return cachedHeading; - } - - /** - * Get the robot's angular velocity. - * - * @return Angular velocity in degrees/sec - */ - @Override - public double getAngularVel() { - return ahrs.getAngularVelocity(); - } - - /** - * Get the robot's cached angular velocity. - * - * @return Angular velocity in degrees/sec - */ - @Override - public double getAngularVelCached() { - return cachedAngularVel; - } - - /** - * Get the robot's angular displacement since being turned on. - * - * @return Angular displacement in degrees. - */ - @Override - public double getAngularDisplacement() { - return ahrs.getAngularDisplacement(); - } - - /** - * Get the robot's cached angular displacement since being turned on. - * - * @return Angular displacement in degrees. - */ - @Override - public double getAngularDisplacementCached() { - return cachedAngularDisplacement; - } - - /** - * @return true if the NavX is currently overriden, false otherwise. - */ - @Override - public boolean getOverrideGyro() { - return overrideGyro; - } - - /** - * @param override true to override the NavX, false to un-override it. - */ - @Override - public void setOverrideGyro(boolean override) { - overrideGyro = override; - } - - /** - * Get the headers for the data this subsystem logs every loop. - * - * @return An N-length array of String labels for data, where N is the length of the Object[] returned by getData(). - */ - @Override - @NotNull - @Contract(pure = true) - public String[] getHeader() { - return new String[]{"left_vel", - "right_vel", - "left_setpoint", - "right_setpoint", - "left_current", - "right_current", - "left_voltage", - "right_voltage", - "left_pos", - "right_pos", - "left_error", - "right_error", - "heading", - "9_axis_heading", - "rotational_velocity", - "angular_displacement", - "x_accel", - "y_accel"}; - } - - /** - * Get the data this subsystem logs every loop. - * - * @return An N-length array of Objects, where N is the number of labels given by getHeader. - */ - @Override - @NotNull - public Object[] getData() { - return new Object[]{cachedLeftVel, - cachedRightVel, - leftMaster.getSetpoint(), - rightMaster.getSetpoint(), - leftMaster.getOutputCurrent(), - rightMaster.getOutputCurrent(), - leftMaster.getOutputVoltage(), - rightMaster.getOutputVoltage(), - cachedLeftPos, - cachedRightPos, - leftMaster.getError(), - rightMaster.getError(), - cachedHeading, - ahrs.get9AxisHeading(), - cachedAngularVel, - cachedAngularDisplacement, - ahrs.getXAccel(), - ahrs.getYAccel()}; - } - - /** - * Get the name of this object. - * - * @return A string that will identify this object in the log file. - */ - @Override - @NotNull - @Contract(pure = true) - public String getName() { - return "Drive"; - } - - /** - * Loads a profile into the MP buffer. - * - * @param profile The profile to be loaded. - */ - @Override - public void loadMotionProfile(@NotNull MotionProfileData profile) { - leftMaster.loadProfile(profile); - rightMaster.loadProfile(profile); - } - - /** - * Loads given profiles into the left and right sides of the drive. - * - * @param left The profile to load into the left side. - * @param right The profile to load into the right side. - */ - @Override - public void loadMotionProfile(@NotNull MotionProfileData left, @NotNull MotionProfileData right) { - Logger.addEvent("Loading left", this.getClass()); - leftMaster.loadProfile(left); - Logger.addEvent("Loading right", this.getClass()); - rightMaster.loadProfile(right); - } - - /** - * Start running the profile that's currently loaded into the MP buffer. - */ - @Override - public void startRunningLoadedProfile() { - leftMaster.startRunningMP(); - rightMaster.startRunningMP(); - } - - /** - * Get whether this subsystem has finished running the profile loaded in it. - * - * @return true if there's no profile loaded and no profile running, false otherwise. - */ - @Override - public boolean profileFinished() { - return leftMaster.MPIsFinished() && rightMaster.MPIsFinished(); - } - - /** - * Disable the motors. - */ - @Override - public void disable() { - leftMaster.disable(); - rightMaster.disable(); - } - - /** - * Hold the current position. - */ - @Override - public void holdPosition() { - leftMaster.holdPositionMP(); - rightMaster.holdPositionMP(); - } - - /** - * Get whether the subsystem is ready to run the loaded profile. - * - * @return true if a profile is loaded and ready to run, false otherwise. - */ - @Override - public boolean readyToRunProfile() { - return leftMaster.readyForMP() && rightMaster.readyForMP(); - } - - /** - * Stops any MP-related threads currently running. Normally called at the start of teleop. - */ - @Override - public void stopMPProcesses() { - leftMaster.stopMPProcesses(); - rightMaster.stopMPProcesses(); - } - - /** - * Reset the position of the drive if it has encoders. - */ - @Override - public void resetPosition() { - leftMaster.resetPosition(); - rightMaster.resetPosition(); - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - cachedLeftVel = getLeftVel(); - cachedLeftPos = getLeftPos(); - cachedRightVel = getRightVel(); - cachedRightPos = getRightPos(); - cachedHeading = getHeading(); - cachedAngularDisplacement = getAngularDisplacement(); - cachedAngularVel = getAngularVel(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonClusterShiftable.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonClusterShiftable.java deleted file mode 100644 index 12276a7a..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonClusterShiftable.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.components.ShiftComponent; -import org.usfirst.frc.team449.robot.drive.shifting.DriveShiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS; - - -/** - * A drive with a cluster of any number of CANTalonSRX controlled motors on each side and a high and low gear. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class DriveTalonClusterShiftable extends DriveTalonCluster implements DriveShiftable { - - /** - * The component that controls shifting. - */ - @NotNull - private final ShiftComponent shiftComponent; - - /** - * Whether not to override auto shifting - */ - private boolean overrideAutoshift; - - /** - * Default constructor. - * - * @param leftMaster The master talon on the left side of the drive. - * @param rightMaster The master talon on the right side of the drive. - * @param ahrs The NavX on this drive. - * @param VelScale The amount to scale the output to the motor by. Defaults to 1. - * @param shiftComponent The component that controls shifting. - * @param startingOverrideAutoshift Whether to start with autoshift disabled. Defaults to false. - */ - @JsonCreator - public DriveTalonClusterShiftable(@NotNull @JsonProperty(required = true) FPSTalon leftMaster, - @NotNull @JsonProperty(required = true) FPSTalon rightMaster, - @NotNull @JsonProperty(required = true) MappedAHRS ahrs, - @Nullable Double VelScale, - @NotNull @JsonProperty(required = true) ShiftComponent shiftComponent, - boolean startingOverrideAutoshift) { - super(leftMaster, rightMaster, ahrs, VelScale); - //Initialize stuff - this.shiftComponent = shiftComponent; - - // Initialize shifting constants, assuming robot is stationary. - overrideAutoshift = startingOverrideAutoshift; - } - - /** - * @return true if currently overriding autoshifting, false otherwise. - */ - @Override - public boolean getOverrideAutoshift() { - return overrideAutoshift; - } - - /** - * @param override Whether or not to override autoshifting. - */ - @Override - public void setOverrideAutoshift(boolean override) { - this.overrideAutoshift = override; - } - - /** - * Set the output of each side of the drive. - * - * @param left The output for the left side of the drive, from [-1, 1] - * @param right the output for the right side of the drive, from [-1, 1] - */ - @Override - public void setOutput(double left, double right) { - //If we're not shifting or using PID, or we're just turning in place, scale by the max speed in the current - // gear - if (overrideAutoshift) { - super.setOutput(left, right); - } - //If we are shifting, scale by the high gear max speed to make acceleration smoother and faster. - else { - leftMaster.setGearScaledVelocity(left, gear.HIGH); - rightMaster.setGearScaledVelocity(right, gear.HIGH); - } - } - - /** - * @return The gear this subsystem is currently in. - */ - @Override - public int getGear() { - return shiftComponent.getCurrentGear(); - } - - /** - * Shift to a specific gear. - * - * @param gear Which gear to shift to. - */ - @Override - public void setGear(int gear) { - shiftComponent.shiftToGear(gear); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectional.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectional.java deleted file mode 100644 index 495a355d..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectional.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.drive.DriveSubsystem; -import org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable; - -/** - * A drive with a left side and a right side. "Unidirectional" because it can only move forwards or backwards, not - * sideways. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface DriveUnidirectional extends DriveSubsystem, Updatable { - - /** - * Set the output of each side of the drive. - * - * @param left The output for the left side of the drive, from [-1, 1] - * @param right the output for the right side of the drive, from [-1, 1] - */ - void setOutput(double left, double right); - - /** - * Get the velocity of the left side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - Double getLeftVel(); - - /** - * Get the velocity of the right side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - Double getRightVel(); - - /** - * Get the position of the left side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - Double getLeftPos(); - - /** - * Get the position of the right side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - Double getRightPos(); - - /** - * Get the cached velocity of the left side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - Double getLeftVelCached(); - - /** - * Get the cached velocity of the right side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - Double getRightVelCached(); - - /** - * Get the cached position of the left side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - Double getLeftPosCached(); - - /** - * Get the cached position of the right side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - Double getRightPosCached(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectionalSimple.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectionalSimple.java deleted file mode 100644 index b1d21ace..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectionalSimple.java +++ /dev/null @@ -1,186 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * A generic example of a subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class DriveUnidirectionalSimple extends YamlSubsystem implements DriveUnidirectional { - - /** - * The motor for the left side of the drive. - */ - @NotNull - private final SimpleMotor leftMotor; - - /** - * The motor for the right side of the drive. - */ - @NotNull - private final SimpleMotor rightMotor; - - /** - * Default constructor - * - * @param leftMotor The motor for the left side of the drive. - * @param rightMotor The motor for the right side of the drive. - */ - @JsonCreator - public DriveUnidirectionalSimple(@NotNull @JsonProperty(required = true) SimpleMotor leftMotor, - @NotNull @JsonProperty(required = true) SimpleMotor rightMotor) { - this.leftMotor = leftMotor; - this.rightMotor = rightMotor; - } - - /** - * Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - * the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - * after all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } - - /** - * Set the output of each side of the drive. - * - * @param left The output for the left side of the drive, from [-1, 1] - * @param right the output for the right side of the drive, from [-1, 1] - */ - @Override - public void setOutput(double left, double right) { - leftMotor.setVelocity(left); - rightMotor.setVelocity(right); - } - - /** - * Get the velocity of the left side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getLeftVel() { - return null; - } - - /** - * Get the velocity of the right side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getRightVel() { - return null; - } - - /** - * Get the position of the left side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getLeftPos() { - return null; - } - - /** - * Get the position of the right side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getRightPos() { - return null; - } - - /** - * Get the cached velocity of the left side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getLeftVelCached() { - return null; - } - - /** - * Get the cached velocity of the right side of the drive. - * - * @return The signed velocity in feet per second, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getRightVelCached() { - return null; - } - - /** - * Get the cached position of the left side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getLeftPosCached() { - return null; - } - - /** - * Get the cached position of the right side of the drive. - * - * @return The signed position in feet, or null if the drive doesn't have encoders. - */ - @Nullable - @Override - public Double getRightPosCached() { - return null; - } - - /** - * Completely stop the robot by setting the voltage to each side to be 0. - */ - @Override - public void fullStop() { - leftMotor.setVelocity(0); - rightMotor.setVelocity(0); - } - - /** - * If this drive uses motors that can be disabled, enable them. - */ - @Override - public void enableMotors() { - leftMotor.enable(); - rightMotor.enable(); - } - - /** - * Reset the position of the drive if it has encoders. - */ - @Override - public void resetPosition() { - //No encoders, do nothing - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - //Do nothing - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineNominalVoltage.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineNominalVoltage.java deleted file mode 100644 index 1a0bdb6e..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineNominalVoltage.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Run the motors until they move, slowly increasing the voltage up from 0. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class DetermineNominalVoltage extends YamlCommandWrapper { - - /** - * The drive subsystem to execute this command on. - */ - @NotNull - private final T subsystem; - /** - * The minimum speed, in RPS, at which the drive is considered to be moving. - */ - private final double minSpeed; - /** - * The current percent of max output commanded, on [0, 1]. - */ - private double percentCommanded; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on - * @param minSpeed The minimum speed, in RPS, at which the drive is considered to be moving. - */ - @JsonCreator - public DetermineNominalVoltage(@NotNull @JsonProperty(required = true) T subsystem, - @JsonProperty(required = true) double minSpeed) { - //Initialize stuff - this.subsystem = subsystem; - this.minSpeed = minSpeed; - requires(subsystem); - } - - /** - * Log initialization - */ - @Override - protected void initialize() { - percentCommanded = 0; - //Reset drive velocity (for safety reasons) - subsystem.fullStop(); - Logger.addEvent("DetermineNominalVoltage init", this.getClass()); - } - - /** - * Send output to motors - */ - @Override - protected void execute() { - //Adjust it by 0.01 per second, so 0.01 * 20/1000, which is 0.0002 - percentCommanded += 0.0002; - //Set the velocity - subsystem.setOutput(percentCommanded, percentCommanded); - } - - /** - * Exit if the motors are moving. - * - * @return True if the motors are moving, false otherwise. - */ - @Override - protected boolean isFinished() { - return Math.max(Math.abs(subsystem.getLeftVelCached()), Math.abs(subsystem.getRightVelCached())) >= minSpeed; - } - - /** - * Stop the drive and log when the command ends. - */ - @Override - protected void end() { - //Brake on exit. Yes this should be setOutput because often we'll be testing how well the PID loop handles a full stop. - subsystem.fullStop(); - Logger.addEvent("DetermineNominalVoltage end.", this.getClass()); - } - - /** - * Log and stop the drive when the command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("DetermineNominalVoltage Interrupted! Stopping the robot.", this.getClass()); - //Brake if we're interrupted - subsystem.fullStop(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineVelVsVoltage.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineVelVsVoltage.java deleted file mode 100644 index 63c4d69d..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineVelVsVoltage.java +++ /dev/null @@ -1,197 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Clock; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * A command to run the robot at a range of voltages and record the velocity. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class DetermineVelVsVoltage extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final T subsystem; - - /** - * How far, in feet, to drive for each trial. - */ - private final double distanceToDrive; - - /** - * How many trials to do for each voltage. - */ - private final int numTrials; - - /** - * A list of all the voltages to be tested, from (0, 1]. - */ - private final double[] voltagePercentsToTest; - - /** - * The maximum measured speed, in feet/sec, for the current trial. - */ - private double maxSpeedForTrial; - - /** - * The time the maximum speed for this trial was measured at. - */ - private long timeMaxMeasuredAt; - - /** - * The index, in the list of voltages to test, of the voltage currently being tested. - */ - private int voltageIndex; - - /** - * How many trials are left for the current voltage. - */ - private int trialsRemaining; - - /** - * The current sign of the output. Alternates every trial so we just drive back and forth. - */ - private int sign; - - /** - * The average speed of the two sides. Field to avoid garbage collection. - */ - private double avgSpeed; - - /** - * Whether the distance for this trial has been driven. Field to avoid garbage collection. - */ - private boolean drivenDistance; - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on. - * @param distanceToDrive How far, in feet, to drive for each trial. - * @param numTrials How many trials to do for each voltage. - * @param voltagesToTest A list of all the voltages to be tested, from (0, 12]. - */ - @JsonCreator - public DetermineVelVsVoltage(@NotNull @JsonProperty(required = true) T subsystem, - @JsonProperty(required = true) double distanceToDrive, - @JsonProperty(required = true) int numTrials, - @JsonProperty(required = true) double[] voltagesToTest) { - this.subsystem = subsystem; - this.distanceToDrive = distanceToDrive; - this.numTrials = numTrials; - - //Convert from volts to percentages because CANTalons. - this.voltagePercentsToTest = new double[voltagesToTest.length]; - for (int i = 0; i < voltagesToTest.length; i++) { - this.voltagePercentsToTest[i] = voltagesToTest[i] / 12.; - } - } - - /** - * Reset the encoder position and variables. - */ - @Override - protected void initialize() { - subsystem.resetPosition(); - sign = 1; - voltageIndex = 0; - maxSpeedForTrial = 0; - timeMaxMeasuredAt = 0; - trialsRemaining = numTrials; - subsystem.setOutput(voltagePercentsToTest[voltageIndex], voltagePercentsToTest[voltageIndex]); - SmartDashboard.putNumber("Desired voltage", voltagePercentsToTest[voltageIndex] * 12); - } - - /** - * Update the max speed for this trial and check if this trial is finished. - */ - @Override - protected void execute() { - //Multiply each by sign so that only the movement in the correct direction is counted and leftover momentum from - // the previous trial isn't. - - avgSpeed = (sign * subsystem.getLeftVelCached() + sign * subsystem.getRightVelCached()) / 2.; - - if (avgSpeed > maxSpeedForTrial) { - maxSpeedForTrial = avgSpeed; - timeMaxMeasuredAt = Clock.currentTimeMillis(); - } - - SmartDashboard.putNumber("Average Distance", (subsystem.getLeftPosCached() + subsystem.getRightPosCached()) / 2.); - SmartDashboard.putNumber("Average Speed", avgSpeed); - - //Check if we've driven past the given distance - if (sign == -1) { - drivenDistance = (subsystem.getLeftPosCached() + subsystem.getRightPosCached()) / 2. <= 0; - } else { - drivenDistance = (subsystem.getLeftPosCached() + subsystem.getRightPosCached()) / 2. >= distanceToDrive; - } - - //If we've driven past, log the max speed and reset the variables. - if (drivenDistance) { - //Log - Logger.addEvent(Long.toString(timeMaxMeasuredAt), this.getClass()); - - //Reset - maxSpeedForTrial = 0; - - //Switch direction - sign *= -1; - - //Finished a trial - trialsRemaining--; - - //Go onto the next voltage if we've done enough trials - if (trialsRemaining <= 0) { - trialsRemaining = numTrials; - voltageIndex++; - - //Exit if we've done all trials for all voltages - if (voltageIndex >= voltagePercentsToTest.length) { - return; - } - } - - //Set the output to the correct voltage and sign - subsystem.setOutput(sign * voltagePercentsToTest[voltageIndex], sign * voltagePercentsToTest[voltageIndex]); - SmartDashboard.putNumber("Desired voltage", voltagePercentsToTest[voltageIndex] * 12.); - } - } - - /** - * Finish when all trials have been run. - * - * @return true if all trials have be run, false otherwise. - */ - @Override - protected boolean isFinished() { - return voltageIndex >= voltagePercentsToTest.length; - } - - /** - * Do nothing, no logging because we want to be able to use R's subset method to find the max speeds. - */ - @Override - protected void end() { - //Nothing! - } - - /** - * Log when interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("DetermineVelVsVoltage Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveAtSpeed.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveAtSpeed.java deleted file mode 100644 index f546a021..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveAtSpeed.java +++ /dev/null @@ -1,110 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Clock; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Go at a certain velocity for a set number of seconds - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class DriveAtSpeed extends YamlCommandWrapper { - - /** - * Speed to go at - */ - private final double velocity; - - /** - * How long to run for - */ - private final double seconds; - - /** - * The drive subsystem to execute this command on. - */ - @NotNull - private final T subsystem; - - /** - * When this command was initialized. - */ - private long startTime; - - /** - * Default constructor - * - * @param subsystem The drive to execute this command on - * @param velocity How fast to go, in RPS - * @param seconds How long to drive for. - */ - @JsonCreator - public DriveAtSpeed(@NotNull @JsonProperty(required = true) T subsystem, - @JsonProperty(required = true) double velocity, - @JsonProperty(required = true) double seconds) { - //Initialize stuff - this.subsystem = subsystem; - this.velocity = velocity; - this.seconds = seconds; - requires(subsystem); - Logger.addEvent("Drive Robot bueno", this.getClass()); - } - - /** - * Set up start time. - */ - @Override - protected void initialize() { - //Set up start time - startTime = Clock.currentTimeMillis(); - //Reset drive velocity (for safety reasons) - subsystem.fullStop(); - Logger.addEvent("DriveAtSpeed init", this.getClass()); - } - - /** - * Send output to motors and log data - */ - @Override - protected void execute() { - //Set the velocity - subsystem.setOutput(velocity, velocity); - } - - /** - * Exit after the command's been running for long enough - * - * @return True if timeout has been reached, false otherwise - */ - @Override - protected boolean isFinished() { - return (Clock.currentTimeMillis() - startTime) * 1e-3 > seconds; - } - - /** - * Stop the drive when the command ends. - */ - @Override - protected void end() { - //Brake on exit. Yes this should be setOutput because often we'll be testing how well the PID loop handles a full stop. - subsystem.setOutput(0, 0); - Logger.addEvent("DriveAtSpeed end.", this.getClass()); - } - - /** - * Log and stop the drive when the command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("DriveAtSpeed Interrupted! Stopping the robot.", this.getClass()); - //Brake if we're interrupted - subsystem.fullStop(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveStraight.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveStraight.java deleted file mode 100644 index 8cfa0928..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveStraight.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Drives straight when using a tank drive. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class DriveStraight extends YamlCommandWrapper { - - /** - * The oi that this command gets input from. - */ - @NotNull - private final OITank oi; - - /** - * Whether to use the left or right joystick for the forward velocity. - */ - private final boolean useLeft; - - /** - * The drive subsystem to execute this command on. - */ - @NotNull - private final T subsystem; - - /** - * Drive straight without NavX stabilization. - * - * @param subsystem The drive subsystem to execute this command on. - * @param oi The oi to get input from. - * @param useLeft true to use the left stick to drive straight, false to use the right. - */ - @JsonCreator - public DriveStraight(@NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) OITank oi, - @JsonProperty(required = true) boolean useLeft) { - this.subsystem = subsystem; - this.oi = oi; - this.useLeft = useLeft; - requires(subsystem); - Logger.addEvent("Drive Robot bueno", this.getClass()); - } - - /** - * Stop the drive for safety reasons. - */ - @Override - protected void initialize() { - subsystem.fullStop(); - } - - /** - * Give output to the motors based on the joystick input. - */ - @Override - protected void execute() { - if (useLeft) { - subsystem.setOutput(oi.getLeftOutputCached(), oi.getLeftOutputCached()); - } else { - subsystem.setOutput(oi.getRightOutputCached(), oi.getRightOutputCached()); - } - } - - /** - * Runs constantly because this is a drive command. - * - * @return false - */ - @Override - protected boolean isFinished() { - return false; - } - - /** - * Log and brake when interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("DriveStraight Interrupted! Stopping the robot.", this.getClass()); - subsystem.fullStop(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDBackAndForth.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDBackAndForth.java deleted file mode 100644 index ad3ca480..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDBackAndForth.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * Drive back and forth to tune PID. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class PIDBackAndForth extends YamlCommandGroupWrapper { - - /** - * Instantiate the CommandGroup - * - * @param subsystem the drive to execute this command on. - * @param speed The speed to drive forwards and backwards at, from [0, 1]. - * @param timeInSecs How long to drive in each direction for, in seconds. - */ - @JsonCreator - public PIDBackAndForth(@NotNull @JsonProperty(required = true) T subsystem, - @JsonProperty(required = true) double speed, - @JsonProperty(required = true) double timeInSecs) { - //Drive forwards - addSequential(new DriveAtSpeed<>(subsystem, speed, timeInSecs)); - //Drive backwards - addSequential(new DriveAtSpeed<>(subsystem, -speed, timeInSecs)); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDTest.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDTest.java deleted file mode 100644 index 8cb5f5e3..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * Drive forward at constant speed then stop to tune PID. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class PIDTest extends YamlCommandGroupWrapper { - - /** - * Default constructor - * - * @param subsystem the subsystem to execute this command on - * @param driveTime How long to drive forwards for, in seconds. - * @param speed The speed to drive at, from [0, 1]. - */ - @JsonCreator - public PIDTest(@NotNull @JsonProperty(required = true) T subsystem, - @JsonProperty(required = true) double driveTime, - @JsonProperty(required = true) double speed) { - //Drive forward for a bit - addSequential(new DriveAtSpeed<>(subsystem, speed, driveTime)); - //Stop actively to see how the PID responds. - addSequential(new DriveAtSpeed<>(subsystem, 0, 100)); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/SimpleUnidirectionalDrive.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/SimpleUnidirectionalDrive.java deleted file mode 100644 index f3109a81..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/SimpleUnidirectionalDrive.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Very simple unidirectional drive control. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SimpleUnidirectionalDrive extends YamlCommandWrapper { - - /** - * The OI used for input. - */ - @NotNull - public final OIUnidirectional oi; - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final T subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on - * @param oi The OI that gives the input to this command. - */ - @JsonCreator - public SimpleUnidirectionalDrive(@NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) OIUnidirectional oi) { - this.oi = oi; - this.subsystem = subsystem; - //Default commands need to require their subsystems. - requires(subsystem); - } - - /** - * Stop the drive for safety reasons. - */ - @Override - protected void initialize() { - subsystem.fullStop(); - } - - /** - * Give output to the motors based on the stick inputs. - */ - @Override - protected void execute() { - subsystem.setOutput(oi.getLeftOutputCached(), oi.getRightOutputCached()); - } - - /** - * Run constantly because this is a default drive - * - * @return false - */ - @Override - protected boolean isFinished() { - return false; - } - - /** - * Log and brake when interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SimpleUnidirectionalDrive Interrupted! Stopping the robot.", this.getClass()); - //Brake for safety! - subsystem.fullStop(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/VoltageRamp.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/VoltageRamp.java deleted file mode 100644 index dca51292..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/drive/unidirectional/commands/VoltageRamp.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.usfirst.frc.team449.robot.drive.unidirectional.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Clock; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * A command to ramp up the motors to full power at a given voltage rate. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class VoltageRamp extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final DriveUnidirectional subsystem; - - /** - * The number of percentage points to increase motor output by per millisecond. - */ - private final double percentPerMillis; - - /** - * The last time execute() was run. - */ - private long lastTime; - - /** - * The output to give to the motors. - */ - private double output; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on - * @param voltsPerSecond How many volts to increase the output by per second. - */ - @JsonCreator - public VoltageRamp(@NotNull @JsonProperty(required = true) DriveUnidirectional subsystem, - @JsonProperty(required = true) double voltsPerSecond) { - this.subsystem = subsystem; - this.percentPerMillis = voltsPerSecond / 12. / 1000.; - } - - /** - * Reset the output - */ - @Override - protected void initialize() { - Logger.addEvent("VoltageRamp init.", this.getClass()); - lastTime = Clock.currentTimeMillis(); - output = 0; - } - - /** - * Update the output based on how long it's been since execute() was last run. - */ - @Override - protected void execute() { - output += percentPerMillis * (Clock.currentTimeMillis() - lastTime); - subsystem.setOutput(output, output); - lastTime = Clock.currentTimeMillis(); - } - - /** - * Exit if the output is greater than the motors can produce. - * - * @return true if the output is greater than or equal to 1, false otherwise. - */ - @Override - protected boolean isFinished() { - return output >= 1.; - } - - /** - * Log and stop on end. - */ - @Override - protected void end() { - subsystem.setOutput(0, 0); - Logger.addEvent("VoltageRamp end.", this.getClass()); - } - - /** - * Log on interrupt. - */ - @Override - protected void interrupted() { - Logger.addEvent("VoltageRamp Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/loggable/Loggable.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/loggable/Loggable.java deleted file mode 100644 index 5b7fa568..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/loggable/Loggable.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.loggable; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.jetbrains.annotations.NotNull; - -/** - * An object that logs telemetry data every loop. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface Loggable { - - /** - * Get the headers for the data this subsystem logs every loop. - * - * @return An N-length array of String labels for data, where N is the length of the Object[] returned by getData(). - */ - @NotNull - String[] getHeader(); - - /** - * Get the data this subsystem logs every loop. - * - * @return An N-length array of Objects, where N is the number of labels given by getHeader. - */ - @NotNull - Object[] getData(); - - /** - * Get the name of this object. - * - * @return A string that will identify this object in the log file. - */ - @NotNull - String getName(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/Rumbleable.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/Rumbleable.java deleted file mode 100644 index 76ad8060..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/Rumbleable.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.rumbleable; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * An interface for any sort of OI device that can rumble to give feedback to the driver. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface Rumbleable { - - /** - * Rumble at a given strength on each side of the device. - * - * @param left The strength to rumble the left side, on [-1, 1] - * @param right The strength to rumble the right side, on [-1, 1] - */ - void rumble(double left, double right); - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.java deleted file mode 100644 index 62c35b04..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.shiftable; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * An interface for any object that different settings for different gears - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface Shiftable { - - /** - * @return The gear this subsystem is currently in. - */ - int getGear(); - - /** - * Shift to a specific gear. - * - * @param gear Which gear to shift to. - */ - void setGear(int gear); - - enum gear { - LOW(1), HIGH(2); - - private final int numVal; - - gear(int numVal) { - this.numVal = numVal; - } - - public int getNumVal() { - return numVal; - } - } - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/ShiftGears.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/ShiftGears.java deleted file mode 100644 index 699744b5..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/ShiftGears.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Shifts gears. Basically a "ToggleGear" command. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ShiftGears extends YamlCommandWrapper { - - /** - * The drive to execute this command on - */ - @NotNull - private final Shiftable subsystem; - - /** - * Default constructor - * - * @param subsystem The drive to execute this command on - */ - @JsonCreator - public ShiftGears(@NotNull @JsonProperty(required = true) Shiftable subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("ShiftGears init.", this.getClass()); - } - - /** - * Switch gears - */ - @Override - protected void execute() { - subsystem.setGear(subsystem.getGear() == Shiftable.gear.LOW.getNumVal() ? Shiftable.gear.HIGH.getNumVal() : Shiftable.gear.LOW.getNumVal()); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("ShiftGears end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("ShiftGears Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToGear.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToGear.java deleted file mode 100644 index 658edb88..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToGear.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * Switches to a specified gear. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SwitchToGear extends YamlCommandWrapper { - - /** - * The drive to execute this command on. - */ - @NotNull - private final Shiftable subsystem; - - /** - * The gear to switch to. - */ - private final int switchTo; - - /** - * Default constructor - * - * @param subsystem The drive to execute this command on. - * @param switchToNum The number of the gear to switch to. Is ignored if switchTo isn't null. - * @param switchTo The gear to switch to. Can be null, and if it is, switchToNum is used instead. - */ - @JsonCreator - public SwitchToGear(@NotNull @JsonProperty(required = true) Shiftable subsystem, - int switchToNum, - @Nullable Shiftable.gear switchTo) { - this.subsystem = subsystem; - if (switchTo != null) { - this.switchTo = switchTo.getNumVal(); - } else { - this.switchTo = switchToNum; - } - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SwitchToGear init.", this.getClass()); - } - - /** - * Switch to the specified gear - */ - @Override - protected void execute() { - subsystem.setGear(switchTo); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SwitchToGear end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SwitchToGear Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToHighGear.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToHighGear.java deleted file mode 100644 index 855fad88..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToHighGear.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * A command that switches to high gear. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SwitchToHighGear extends YamlCommandWrapper { - - /** - * The drive subsystem to execute this command on. - */ - @NotNull - private final Shiftable subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on - */ - @JsonCreator - public SwitchToHighGear(@NotNull @JsonProperty(required = true) Shiftable subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SwitchToHighGear init.", this.getClass()); - } - - /** - * Switch to high gear - */ - @Override - protected void execute() { - subsystem.setGear(Shiftable.gear.HIGH.getNumVal()); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SwitchToHighGear end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SwitchToHighGear Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToLowGear.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToLowGear.java deleted file mode 100644 index eb9ae765..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToLowGear.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * A command that switches to low gear. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SwitchToLowGear extends YamlCommandWrapper { - - /** - * The drive subsystem to execute this command on. - */ - @NotNull - private final Shiftable subsystem; - - /** - * Default constructor - * - * @param subsystem The drive subsystem to execute this command on - */ - @JsonCreator - public SwitchToLowGear(@NotNull @JsonProperty(required = true) Shiftable subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SwitchToLowGear init.", this.getClass()); - } - - /** - * Switch to low gear - */ - @Override - protected void execute() { - subsystem.setGear(Shiftable.gear.LOW.getNumVal()); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SwitchToLowGear end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SwitchToLowGear Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/SimpleMotor.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/SimpleMotor.java deleted file mode 100644 index d4c6d840..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/SimpleMotor.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface SimpleMotor { - - /** - * Set the velocity for the motor to go at. - * - * @param velocity the desired velocity, on [-1, 1]. - */ - void setVelocity(double velocity); - - /** - * Enables the motor, if applicable. - */ - void enable(); - - /** - * Disables the motor, if applicable. - */ - void disable(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/updatable/Updatable.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/updatable/Updatable.java deleted file mode 100644 index 60047045..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/generalInterfaces/updatable/Updatable.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.usfirst.frc.team449.robot.generalInterfaces.updatable; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * An interface for any object that caches values. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface Updatable { - - /** - * Updates all cached values with current ones. - */ - void update(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.java deleted file mode 100644 index d38c4fe4..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.java +++ /dev/null @@ -1,1098 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.ctre.CANTalon; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.Notifier; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.other.Clock; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.other.MotionProfileData; - -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Component wrapper on the CTRE {@link CANTalon}, with unit conversions to/from FPS built in. Every non-unit-conversion - * in this class takes arguments in post-gearing FPS. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class FPSTalon implements SimpleMotor, Shiftable { - - /** - * The CTRE CAN Talon SRX that this class is a wrapper on - */ - @NotNull - protected final CANTalon canTalon; - - /** - * The counts per rotation of the encoder being used, or null if there is no encoder. - */ - @Nullable - private final Integer encoderCPR; - - /** - * The type of encoder the talon uses, or null if there is no encoder. - */ - @Nullable - private final CANTalon.FeedbackDevice feedbackDevice; - - /** - * The coefficient the output changes by after being measured by the encoder, e.g. this would be 1/70 if there was a - * 70:1 gearing between the encoder and the final output. - */ - private final double postEncoderGearing; - - /** - * The number of feet travelled per rotation of the motor this is attached to, or null if there is no encoder. - */ - private final double feetPerRotation; - - /** - * The minimum number of points that must be in the bottom-level MP buffer before starting a profile. - */ - private final int minNumPointsInBottomBuffer; - - /** - * The motion profile motionProfileStatus of the Talon. - */ - @NotNull - private final CANTalon.MotionProfileStatus motionProfileStatus; - - /** - * A notifier that moves points from the API-level buffer to the talon-level one. - */ - private final Notifier bottomBufferLoader; - - /** - * The period for bottomBufferLoader, in seconds. - */ - private final double updaterProcessPeriodSecs; - - /** - * A list of all the gears this robot has and their settings. - */ - @NotNull - private final Map perGearSettings; - - /** - * Whether or not to invert the motor in voltage mode. - */ - private final boolean invertInVoltage; - - /** - * The settings currently being used by this Talon. - */ - @NotNull - protected PerGearSettings currentGearSettings; - - /** - * The time at which the motion profile status was last checked. Only getting the status once per tic avoids CAN - * traffic. - */ - private long timeMPStatusLastRead; - - /** - * RPS as used in a unit conversion method. Field to avoid garbage collection. - */ - private Double RPS; - - /** - * Default constructor. - * - * @param port CAN port of this Talon. - * @param invertInVoltage Whether or not to invert the motor in voltage mode. - * @param reverseOutput Whether to reverse the output (identical effect to inverting outside of - * position PID) - * @param enableBrakeMode Whether to brake or coast when stopped. - * @param fwdLimitSwitchNormallyOpen Whether the forward limit switch is normally open or closed. If this is null, - * the forward limit switch is disabled. - * @param revLimitSwitchNormallyOpen Whether the reverse limit switch is normally open or closed. If this is null, - * the reverse limit switch is disabled. - * @param fwdSoftLimit The forward software limit, in feet. If this is null, the forward software - * limit is disabled. - * @param revSoftLimit The reverse software limit, in feet. If this is null, the reverse software - * limit is disabled. - * @param postEncoderGearing The coefficient the output changes by after being measured by the encoder, e.g. - * this would be 1/70 if there was a 70:1 gearing between the encoder and the - * final output. Defaults to 1. - * @param feetPerRotation The number of feet travelled per rotation of the motor this is attached to. - * Defaults to 1. - * @param currentLimit The max amps this device can draw. If this is null, no current limit is used. - * @param maxClosedLoopVoltage The voltage to scale closed-loop output based on, e.g. closed-loop output of 1 - * will produce this voltage, output of 0.5 will produce half, etc. This feature - * compensates for low battery voltage. - * @param feedbackDevice The type of encoder used to measure the output velocity of this motor. Can be - * null if there is no encoder attached to this Talon. - * @param encoderCPR The counts per rotation of the encoder on this Talon. Can be null if - * feedbackDevice is, but otherwise must have a value. - * @param reverseSensor Whether or not to reverse the reading from the encoder on this Talon. Ignored - * if feedbackDevice is null. Defaults to false. - * @param perGearSettings The settings for each gear this motor has. Can be null to use default values - * and gear # of zero. Gear numbers can't be repeated. - * @param startingGear The gear to start in. Can be null to use startingGearNum instead. - * @param startingGearNum The number of the gear to start in. Ignored if startingGear isn't null. - * Defaults to the lowest gear. - * @param minNumPointsInBottomBuffer The minimum number of points that must be in the bottom-level MP buffer before - * starting a profile. Defaults to 20. - * @param updaterProcessPeriodSecs The period for the Notifier that moves points between the MP buffers, in - * seconds. Defaults to 0.005. - * @param statusFrameRatesMillis The update rates, in millis, for each of the Talon status frames. - * @param controlFrameRateMillis The update rate, in milliseconds, for the control frame. Defaults to 10. - * @param slaves The other {@link CANTalon}s that are slaved to this one. - */ - @JsonCreator - public FPSTalon(@JsonProperty(required = true) int port, - boolean invertInVoltage, - boolean reverseOutput, - @JsonProperty(required = true) boolean enableBrakeMode, - @Nullable Boolean fwdLimitSwitchNormallyOpen, - @Nullable Boolean revLimitSwitchNormallyOpen, - @Nullable Double fwdSoftLimit, - @Nullable Double revSoftLimit, - @Nullable Double postEncoderGearing, - @Nullable Double feetPerRotation, - @Nullable Integer currentLimit, - double maxClosedLoopVoltage, - @Nullable CANTalon.FeedbackDevice feedbackDevice, - @Nullable Integer encoderCPR, - boolean reverseSensor, - @Nullable List perGearSettings, - @Nullable Shiftable.gear startingGear, - @Nullable Integer startingGearNum, - @Nullable Integer minNumPointsInBottomBuffer, - @Nullable Double updaterProcessPeriodSecs, - @Nullable Map statusFrameRatesMillis, - @Nullable Integer controlFrameRateMillis, - @Nullable List slaves) { - //Instantiate the base CANTalon this is a wrapper on. - canTalon = new CANTalon(port, controlFrameRateMillis != null ? controlFrameRateMillis : 10); - //Set this to false because we only use reverseOutput for slaves. - canTalon.reverseOutput(reverseOutput); - //NO TOUCHY - canTalon.setInverted(false); - //Set brake mode - canTalon.enableBrakeMode(enableBrakeMode); - - //Set frame rates - if (statusFrameRatesMillis != null) { - for (CANTalon.StatusFrameRate statusFrameRate : statusFrameRatesMillis.keySet()) { - canTalon.setStatusFrameRateMs(statusFrameRate, statusFrameRatesMillis.get(statusFrameRate)); - } - } - - //Set fields - this.invertInVoltage = invertInVoltage; - this.feetPerRotation = feetPerRotation != null ? feetPerRotation : 1; - this.updaterProcessPeriodSecs = updaterProcessPeriodSecs != null ? updaterProcessPeriodSecs : 0.005; - this.minNumPointsInBottomBuffer = minNumPointsInBottomBuffer != null ? minNumPointsInBottomBuffer : 20; - - //Initialize - this.motionProfileStatus = new CANTalon.MotionProfileStatus(); - this.timeMPStatusLastRead = 0; - this.perGearSettings = new HashMap<>(); - - //If given no gear settings, use the default values. - if (perGearSettings == null || perGearSettings.size() == 0) { - this.perGearSettings.put(0, new PerGearSettings()); - } - //Otherwise, map the settings to the gear they are. - else { - for (PerGearSettings settings : perGearSettings) { - this.perGearSettings.put(settings.getGear(), settings); - } - } - - int currentGear; - //If the starting gear isn't given, assume we start in low gear. - if (startingGear == null) { - if (startingGearNum == null) { - currentGear = Integer.MAX_VALUE; - for (Integer gear : this.perGearSettings.keySet()) { - if (gear < currentGear) { - currentGear = gear; - } - } - } else { - currentGear = startingGearNum; - } - } else { - currentGear = startingGear.getNumVal(); - } - currentGearSettings = this.perGearSettings.get(currentGear); - - //Only enable the limit switches if it was specified if they're normally open or closed. - boolean fwdSwitchEnable = false, revSwitchEnable = false; - if (fwdLimitSwitchNormallyOpen != null) { - canTalon.ConfigFwdLimitSwitchNormallyOpen(fwdLimitSwitchNormallyOpen); - fwdSwitchEnable = true; - } - if (revLimitSwitchNormallyOpen != null) { - canTalon.ConfigRevLimitSwitchNormallyOpen(revLimitSwitchNormallyOpen); - revSwitchEnable = true; - } - canTalon.enableLimitSwitch(fwdSwitchEnable, revSwitchEnable); - - //Set up the feedback device if it exists. - if (feedbackDevice != null) { - //CTRE encoder use RPM instead of native units, and can be used as QuadEncoders, so we switch them to avoid - //having to support RPM. - if (feedbackDevice.equals(CANTalon.FeedbackDevice.CtreMagEncoder_Absolute) || - feedbackDevice.equals(CANTalon.FeedbackDevice.CtreMagEncoder_Relative)) { - this.feedbackDevice = CANTalon.FeedbackDevice.QuadEncoder; - } else { - this.feedbackDevice = feedbackDevice; - } - canTalon.setFeedbackDevice(this.feedbackDevice); - this.encoderCPR = encoderCPR; - canTalon.reverseSensor(reverseSensor); - } else { - this.feedbackDevice = null; - this.encoderCPR = null; - } - - //postEncoderGearing defaults to 1 - this.postEncoderGearing = postEncoderGearing != null ? postEncoderGearing : 1.; - - //Set up gear-based settings. - setGear(currentGear); - - //Set the current limit if it was given - if (currentLimit != null) { - canTalon.setCurrentLimit(currentLimit); - canTalon.EnableCurrentLimit(true); - } else { - //If we don't have a current limit, disable current limiting. - canTalon.EnableCurrentLimit(false); - } - - //Only enable the software limits if they were given a value. - if (fwdSoftLimit != null) { - canTalon.enableForwardSoftLimit(true); - canTalon.setForwardSoftLimit(feetToEncoder(fwdSoftLimit)); - } else { - canTalon.enableForwardSoftLimit(false); - } - if (revSoftLimit != null) { - canTalon.enableReverseSoftLimit(true); - canTalon.setReverseSoftLimit(feetToEncoder(revSoftLimit)); - } else { - canTalon.enableReverseSoftLimit(false); - } - - //Set the nominal closed loop battery voltage. Different thing from NominalOutputVoltage. - canTalon.setNominalClosedLoopVoltage(maxClosedLoopVoltage); - - //Set up MP notifier - bottomBufferLoader = new Notifier(canTalon::processMotionProfileBuffer); - - if (slaves != null) { - //Set up slaves. - for (SlaveTalon slave : slaves) { - CANTalon tmp = new CANTalon(slave.getPort()); - //To invert slaves, use reverseOutput. See section 9.1.4 of the TALON SRX Software Reference Manual. - tmp.reverseOutput(slave.isInverted()); - //Don't use the other inversion options - tmp.reverseSensor(false); - tmp.setInverted(false); - - tmp.enableLimitSwitch(false, false); - tmp.enableForwardSoftLimit(false); - tmp.enableReverseSoftLimit(false); - tmp.configMaxOutputVoltage(12); - - //Brake mode and current limiting don't automatically follow master, so we set them up for each slave. - tmp.enableBrakeMode(enableBrakeMode); - if (currentLimit != null) { - tmp.setCurrentLimit(currentLimit); - tmp.EnableCurrentLimit(true); - } else { - //If we don't have a current limit, disable current limiting. - tmp.EnableCurrentLimit(false); - } - - //Set the slave up to follow this talon. - tmp.changeControlMode(CANTalon.TalonControlMode.Follower); - tmp.set(port); - tmp.enable(); - } - } - } - - /** - * Set the motor output voltage to a given percent of available voltage. - * - * @param percentVoltage percent of total voltage from [-1, 1] - */ - public void setPercentVoltage(double percentVoltage) { - //Warn the user if they're setting Vbus to a number that's outside the range of values. - if (Math.abs(percentVoltage) > 1.0) { - Logger.addEvent("WARNING: YOU ARE CLIPPING MAX PERCENT VBUS AT " + percentVoltage, this.getClass()); - percentVoltage = Math.signum(percentVoltage); - } - - //Switch to voltage mode - canTalon.changeControlMode(CANTalon.TalonControlMode.PercentVbus); - - //Set the setpoint to the input given. - canTalon.set(percentVoltage * (invertInVoltage ? -1 : 1)); - } - - /** - * @return The gear this subsystem is currently in. - */ - @Override - public int getGear() { - return currentGearSettings.getGear(); - } - - /** - * Shift to a specific gear. - * - * @param gear Which gear to shift to. - */ - @Override - public void setGear(int gear) { - //Set the current gear - currentGearSettings = perGearSettings.get(gear); - - //Set general max voltage - canTalon.configMaxOutputVoltage(Math.max(currentGearSettings.getFwdPeakOutputVoltage(), -currentGearSettings.getRevPeakOutputVoltage())); - - //Set closed loop max and min voltages - canTalon.configPeakOutputVoltage(currentGearSettings.getFwdPeakOutputVoltage(), currentGearSettings.getRevPeakOutputVoltage()); - canTalon.configNominalOutputVoltage(currentGearSettings.getFwdNominalOutputVoltage(), currentGearSettings.getRevNominalOutputVoltage()); - - //Set PID stuff - if (currentGearSettings.getMaxSpeed() != null) { - //Put driving constants in slot 0 - canTalon.setPID(currentGearSettings.getkP(), currentGearSettings.getkI(), currentGearSettings.getkD(), - 1023. / FPSToEncoder(currentGearSettings.getMaxSpeed()), 0, currentGearSettings.getClosedLoopRampRate(), 0); - //Put MP constants in slot 1 - canTalon.setPID(currentGearSettings.getMotionProfilePFwd(), currentGearSettings.getMotionProfileIFwd(), currentGearSettings.getMotionProfileDFwd(), - 1023. / FPSToEncoder(currentGearSettings.getMaxSpeedMPFwd()), 0, currentGearSettings.getClosedLoopRampRate(), 1); - canTalon.setProfile(0); - } - } - - /** - * Convert from native units read by an encoder to feet moved. Note this DOES account for post-encoder gearing. - * - * @param nativeUnits A distance native units as measured by the encoder. - * @return That distance in feet, or null if no encoder CPR was given. - */ - @Nullable - protected Double encoderToFeet(double nativeUnits) { - if (encoderCPR == null) { - return null; - } - return nativeUnits / (encoderCPR * 4) * postEncoderGearing * feetPerRotation; - } - - /** - * Convert a distance from feet to encoder reading in native units. Note this DOES account for post-encoder - * gearing. - * - * @param feet A distance in feet. - * @return That distance in native units as measured by the encoder, or null if no encoder CPR was given. - */ - @Nullable - protected Double feetToEncoder(double feet) { - if (encoderCPR == null) { - return null; - } - return feet / feetPerRotation * (encoderCPR * 4) / postEncoderGearing; - } - - /** - * Converts the velocity read by the talon's getVelocity() method to the FPS of the output shaft. Note this DOES - * account for post-encoder gearing. - * - * @param encoderReading The velocity read from the encoder with no conversions. - * @return The velocity of the output shaft, in FPS, when the encoder has that reading, or null if no encoder CPR - * was given. - */ - @Nullable - protected Double encoderToFPS(double encoderReading) { - RPS = nativeToRPS(encoderReading); - if (RPS == null) { - return null; - } - return RPS * postEncoderGearing * feetPerRotation; - } - - /** - * Converts from the velocity of the output shaft to what the talon's getVelocity() method would read at that - * velocity. Note this DOES account for post-encoder gearing. - * - * @param FPS The velocity of the output shaft, in FPS. - * @return What the raw encoder reading would be at that velocity, or null if no encoder CPR was given. - */ - @Nullable - protected Double FPSToEncoder(double FPS) { - return RPSToNative((FPS / postEncoderGearing) / feetPerRotation); - } - - /** - * Convert from CANTalon native velocity units to output rotations per second. Note this DOES NOT account for - * post-encoder gearing. - * - * @param nat A velocity in CANTalon native units. - * @return That velocity in RPS, or null if no encoder CPR was given. - */ - @Contract(pure = true) - @Nullable - private Double nativeToRPS(double nat) { - if (encoderCPR == null) { - return null; - } - return (nat / (encoderCPR * 4)) * 10; //4 edges per count, and 10 100ms per second. - } - - /** - * Convert from output RPS to the CANTalon native velocity units. Note this DOES NOT account for post-encoder - * gearing. - * - * @param RPS The RPS velocity you want to convert. - * @return That velocity in CANTalon native units, or null if no encoder CPR was given. - */ - @Contract(pure = true) - @Nullable - private Double RPSToNative(double RPS) { - if (encoderCPR == null) { - return null; - } - return (RPS / 10) * (encoderCPR * 4); //4 edges per count, and 10 100ms per second. - } - - /** - * Get the velocity of the CANTalon in FPS. - * - * @return The CANTalon's velocity in FPS, or null if no encoder CPR was given. - */ - @Nullable - public Double getVelocity() { - return encoderToFPS(canTalon.getSpeed()); - } - - /** - * Set the velocity for the motor to go at. - * - * @param velocity the desired velocity, on [-1, 1]. - */ - @Override - public void setVelocity(double velocity) { - if (currentGearSettings.getMaxSpeed() != null) { - setVelocityFPS(velocity * currentGearSettings.getMaxSpeed()); - } else { - setPercentVoltage(velocity); - } - } - - /** - * Give a velocity closed loop setpoint in FPS. - * - * @param velocity velocity setpoint in FPS. - */ - protected void setVelocityFPS(double velocity) { - //Switch control mode to velocity closed-loop - canTalon.changeControlMode(CANTalon.TalonControlMode.Speed); - canTalon.set(FPSToEncoder(velocity)); - } - - /** - * Get the current closed-loop velocity error in FPS. WARNING: will give garbage if not in velocity mode. - * - * @return The closed-loop error in FPS, or null if no encoder CPR was given. - */ - @Nullable - public Double getError() { - return encoderToFPS(canTalon.getError()); - } - - /** - * Get the current velocity setpoint of the Talon in FPS. WARNING: will give garbage if not in velocity mode. - * - * @return The closed-loop velocity setpoint in FPS, or null if no encoder CPR was given. - */ - @Nullable - public Double getSetpoint() { - return encoderToFPS(canTalon.getSetpoint()); - } - - /** - * Get the voltage the Talon is currently drawing from the PDP. - * - * @return Voltage in volts. - */ - public double getOutputVoltage() { - return canTalon.getOutputVoltage(); - } - - /** - * Get the current the Talon is currently drawing from the PDP. - * - * @return Current in amps. - */ - public double getOutputCurrent() { - return canTalon.getOutputCurrent(); - } - - /** - * Enables the motor, if applicable. - */ - @Override - public void enable() { - canTalon.enable(); - } - - /** - * Disables the motor, if applicable. - */ - @Override - public void disable() { - canTalon.disable(); - } - - /** - * Set the velocity scaled to a given gear's max velocity. Used mostly when autoshifting. - * - * @param velocity The velocity to go at, from [-1, 1], where 1 is the max speed of the given gear. - * @param gear The number of the gear to use the max speed from to scale the velocity. - */ - public void setGearScaledVelocity(double velocity, int gear) { - if (currentGearSettings.getMaxSpeed() == null) { - setPercentVoltage(velocity); - } else { - setVelocityFPS(perGearSettings.get(gear).getMaxSpeed() * velocity); - } - } - - /** - * Set the velocity scaled to a given gear's max velocity. Used mostly when autoshifting. - * - * @param velocity The velocity to go at, from [-1, 1], where 1 is the max speed of the given gear. - * @param gear The gear to use the max speed from to scale the velocity. - */ - public void setGearScaledVelocity(double velocity, Shiftable.gear gear) { - setGearScaledVelocity(velocity, gear.getNumVal()); - } - - /** - * @return the position of the talon in feet, or null of inches per rotation wasn't given. - */ - public Double getPositionFeet() { - return encoderToFeet(canTalon.getPosition()); - } - - /** - * Resets the position of the Talon to 0. - */ - public void resetPosition() { - canTalon.setEncPosition(0); - } - - /** - * A private utility method for updating motionProfileStatus with the current motion profile status. Makes sure that - * the status is only gotten once per tic, to avoid CAN traffic overload. - */ - private void updateMotionProfileStatus() { - if (timeMPStatusLastRead < Clock.currentTimeMillis()) { - canTalon.getMotionProfileStatus(motionProfileStatus); - timeMPStatusLastRead = Clock.currentTimeMillis(); - } - } - - /** - * Whether this talon is ready to start running a profile. - * - * @return True if minNumPointsInBottomBuffer points have been loaded or the top buffer is empty, false otherwise. - */ - public boolean readyForMP() { - updateMotionProfileStatus(); - return motionProfileStatus.topBufferCnt == 0 || motionProfileStatus.btmBufferCnt >= minNumPointsInBottomBuffer; - } - - /** - * Whether this talon has finished running a profile. - * - * @return True if the active point in the talon is the last point, false otherwise. - */ - public boolean MPIsFinished() { - updateMotionProfileStatus(); - return motionProfileStatus.activePoint.isLastPoint; - } - - /** - * Reset all MP-related stuff, including all points loaded in both the API and bottom-level buffers. - */ - private void clearMP() { - canTalon.clearMotionProfileHasUnderrun(); - canTalon.clearMotionProfileTrajectories(); - } - - /** - * Starts running the loaded motion profile. - */ - public void startRunningMP() { - this.enable(); - canTalon.changeControlMode(CANTalon.TalonControlMode.MotionProfile); - canTalon.set(CANTalon.SetValueMotionProfile.Enable.value); - } - - /** - * Holds the current position point in MP mode. - */ - public void holdPositionMP() { - canTalon.changeControlMode(CANTalon.TalonControlMode.MotionProfile); - canTalon.set(CANTalon.SetValueMotionProfile.Hold.value); - } - - /** - * Disables the talon and loads the given profile into the talon. - * - * @param data The profile to load. - */ - public void loadProfile(MotionProfileData data) { - bottomBufferLoader.stop(); - //Reset the Talon - disable(); - clearMP(); - - //Read velocityOnly out here so we only have to call data.isVelocityOnly() once. - boolean velocityOnly = data.isVelocityOnly(); - - //Declare this out here to avoid garbage collection - double velPlusAccel; - - //Set proper PID constants - if (data.isInverted()) { - canTalon.setPID(currentGearSettings.getMotionProfilePRev(), currentGearSettings.getMotionProfileIRev(), - currentGearSettings.getMotionProfileDRev(), - 1023. / FPSToEncoder(currentGearSettings.getMaxSpeedMPRev()), 0, - currentGearSettings.getClosedLoopRampRate(), 1); - } else { - canTalon.setPID(currentGearSettings.getMotionProfilePFwd(), currentGearSettings.getMotionProfileIFwd(), - currentGearSettings.getMotionProfileDFwd(), - 1023. / FPSToEncoder(currentGearSettings.getMaxSpeedMPFwd()), 0, - currentGearSettings.getClosedLoopRampRate(), 1); - } - - //Only call position getter once - double startPosition = data.resetPosition() ? 0 : getPositionFeet(); - - //Load in profiles - for (int i = 0; i < data.getData().length; ++i) { - CANTalon.TrajectoryPoint point = new CANTalon.TrajectoryPoint(); - //Set parameters that are true for all points - point.profileSlotSelect = 1; // gain selection, we always put MP gains in slot 1. - point.velocityOnly = velocityOnly; // true => no position servo just velocity feedforward - - // Set all the fields of the profile point - point.position = feetToEncoder(startPosition + (data.getData()[i][0] * (data.isInverted() ? -1 : 1))); - - //Calculate vel based off inversion - if (data.isInverted()) { - velPlusAccel = -data.getData()[i][1] - currentGearSettings.getFrictionCompFPSRev() - + -data.getData()[i][2] * currentGearSettings.getKaOverKvRev(); - } else { - velPlusAccel = data.getData()[i][1] + data.getData()[i][2] * currentGearSettings.getKaOverKvFwd() - + currentGearSettings.getFrictionCompFPSFwd(); - } - Logger.addEvent("VelPlusAccel: " + velPlusAccel, this.getClass()); - point.velocity = FPSToEncoder(velPlusAccel); - - //Doing vel+accel shouldn't lead to impossible setpoints, so if it does, we log so we know to change either the profile or kA. - if (Math.abs(velPlusAccel) > currentGearSettings.getMaxSpeed()) { - System.out.println("Point " + Arrays.toString(data.getData()[i]) + " has an unattainable velocity+acceleration setpoint!"); - Logger.addEvent("Point " + Arrays.toString(data.getData()[i]) + " has an unattainable velocity+acceleration setpoint!", this.getClass()); - } - point.timeDurMs = (int) data.getData()[i][3]; - point.zeroPos = i == 0 && data.resetPosition(); // If it's the first point, set the encoder position to 0. - point.isLastPoint = (i + 1) == data.getData().length; // If it's the last point, isLastPoint = true - - // Send the point to the Talon's buffer - if (!canTalon.pushMotionProfileTrajectory(point)) { - //If sending the point doesn't work, log an error and exit. - Logger.addEvent("Buffer full!", this.getClass()); - System.out.println("Buffer full!"); - break; - } - } - bottomBufferLoader.startPeriodic(updaterProcessPeriodSecs); - } - - /** - * Stops all MP-related threads to save on CPU power. Run at the beginning of teleop. - */ - public void stopMPProcesses() { - bottomBufferLoader.stop(); - } - - /** - * An object representing a slave {@link CANTalon} for use in the map. - */ - @JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) - protected static class SlaveTalon { - - /** - * The port number of this Talon. - */ - private final int port; - - /** - * Whether this Talon is inverted compared to its master. - */ - private final boolean inverted; - - /** - * Default constructor. - * - * @param port The port number of this Talon. - * @param inverted Whether this Talon is inverted compared to its master. - */ - @JsonCreator - public SlaveTalon(@JsonProperty(required = true) int port, - @JsonProperty(required = true) boolean inverted) { - this.port = port; - this.inverted = inverted; - } - - /** - * @return The port number of this Talon. - */ - public int getPort() { - return port; - } - - /** - * @return true if this Talon is inverted compared to its master, false otherwise. - */ - public boolean isInverted() { - return inverted; - } - } - - /** - * An object representing the CANTalon settings that are different for each gear. - */ - protected static class PerGearSettings { - - /** - * The gear number this is the settings for. - */ - private final int gear; - - /** - * The forwards and reverse peak output voltages. - */ - private final double fwdPeakOutputVoltage, revPeakOutputVoltage; - - /** - * The forwards and reverse nominal output voltages. - */ - private final double fwdNominalOutputVoltage, revNominalOutputVoltage; - - /** - * The closed loop ramp rate, in volts/sec. 0 means no ramp rate. - */ - private final double closedLoopRampRate; - - /** - * The maximum speed of the motor in this gear, in FPS. Can be null if not using PID in this gear. - */ - @Nullable - private final Double maxSpeed; - - /** - * The PID constants for the motor in this gear. Ignored if maxSpeed is null. - */ - private final double kP, kI, kD; - - /** - * The forwards PID constants for motion profiles in this gear. Ignored if maxSpeed is null. - */ - private final double motionProfilePFwd, motionProfileIFwd, motionProfileDFwd; - - /** - * The reverse PID constants for motion profiles in this gear. Ignored if maxSpeed is null. - */ - private final double motionProfilePRev, motionProfileIRev, motionProfileDRev; - - /** - * The ratio of acceleration to velocity used to convert acceleration setpoints to delta velocity in each - * direction. - */ - private final double kaOverKvFwd, kaOverKvRev; - - /** - * The "fake" maximum speed to use for MP mode in each direction, maxVoltage*(slope of vel vs. voltage curve). - */ - @Nullable - private final Double maxSpeedMPFwd, maxSpeedMPRev; - - /** - * The speed, in FPS, to add to all MP velocity setpoints to account for friction in each direction. - */ - private final double frictionCompFPSFwd, frictionCompFPSRev; - - /** - * Default constructor. - * - * @param gearNum The gear number this is the settings for. Ignored if gear isn't null. - * @param gear The gear this is the settings for. Can be null. - * @param fwdPeakOutputVoltage The peak output voltage for closed-loop modes in the forwards direction, in - * volts. Defaults to 12. - * @param revPeakOutputVoltage The peak output voltage for closed-loop modes in the reverse direction, in - * volts. Defaults to -fwdPeakOutputVoltage. - * @param fwdNominalOutputVoltage The minimum output voltage for closed-loop modes in the forwards direction. - * This does not rescale, it just sets any output below this voltage to this - * voltage. Defaults to 0. - * @param revNominalOutputVoltage The minimum output voltage for closed-loop modes in the reverse direction. - * This does not rescale, it just sets any output below this voltage to this - * voltage. Defaults to -fwdNominalOutputVoltage. - * @param closedLoopRampRate The closed loop ramp rate, in volts/sec. Can be null, and if it is, no ramp - * rate is used.. - * @param maxSpeed The maximum speed of the motor in this gear, in FPS. Can be null if not using - * PID in this gear. - * @param kP The proportional PID constant for the motor in this gear. Ignored if maxSpeed - * is null. Defaults to 0. - * @param kI The integral PID constant for the motor in this gear. Ignored if maxSpeed is - * null. Defaults to 0. - * @param kD The derivative PID constant for the motor in this gear. Ignored if maxSpeed is - * null. Defaults to 0. - * @param motionProfilePFwd The proportional PID constant for forwards motion profiles in this gear. - * Ignored if maxSpeed is null. Defaults to 0. - * @param motionProfileIFwd The integral PID constant for forwards motion profiles in this gear. Ignored - * if maxSpeed is null. Defaults to 0. - * @param motionProfileDFwd The derivative PID constant for forwards motion profiles in this gear. Ignored - * if maxSpeed is null. Defaults to 0. - * @param motionProfilePRev The proportional PID constant for reverse motion profiles in this gear. - * Ignored if maxSpeed is null. Defaults to motionProfilePFwd. - * @param motionProfileIRev The integral PID constant for reverse motion profiles in this gear. Ignored if - * maxSpeed is null. Defaults to motionProfileIFwd. - * @param motionProfileDRev The derivative PID constant for reverse motion profiles in this gear. Ignored - * if maxSpeed is null. Defaults to motionProfileDFwd. - * @param maxAccelFwd The maximum forwards acceleration the robot is capable of in this gear, - * theoretically stall torque of the drive output * wheel radius / (robot - * mass/2). Can be null to not use acceleration feed-forward. - * @param maxAccelRev The maximum reverse acceleration the robot is capable of in this gear, - * theoretically stall torque of the drive output * wheel radius / (robot - * mass/2). Defaults to maxAccelFwd. - * @param maxSpeedMPFwd The "fake" maximum speed to use for the forwards direction of MP mode, - * maxVoltage*(slope of vel vs. voltage curve). Defaults to regular max speed. - * @param maxSpeedMPRev The "fake" maximum speed to use for the reverse direction of MP mode, - * maxVoltage*(slope of vel vs. voltage curve). Defaults to maxSpeedMPFwd. - * @param frictionCompFPSFwd The speed, in FPS, to add to all MP velocity setpoints in the forwards - * direction to account for friction. Defaults to 0. - * @param frictionCompFPSRev The speed, in FPS, to add to all MP velocity setpoints in the reverse - * direction to account for friction. Defaults to frictionCompFPSFwd. - */ - @JsonCreator - public PerGearSettings(int gearNum, - @Nullable Shiftable.gear gear, - @Nullable Double fwdPeakOutputVoltage, - @Nullable Double revPeakOutputVoltage, - @Nullable Double fwdNominalOutputVoltage, - @Nullable Double revNominalOutputVoltage, - @Nullable Double closedLoopRampRate, - @Nullable Double maxSpeed, - double kP, - double kI, - double kD, - double motionProfilePFwd, - double motionProfileIFwd, - double motionProfileDFwd, - Double motionProfilePRev, - Double motionProfileIRev, - Double motionProfileDRev, - @Nullable Double maxAccelFwd, - @Nullable Double maxAccelRev, - @Nullable Double maxSpeedMPFwd, - double frictionCompFPSFwd, - @Nullable Double maxSpeedMPRev, - @Nullable Double frictionCompFPSRev) { - this.gear = gear != null ? gear.getNumVal() : gearNum; - this.fwdPeakOutputVoltage = fwdPeakOutputVoltage != null ? fwdPeakOutputVoltage : 12; - this.revPeakOutputVoltage = revPeakOutputVoltage != null ? revPeakOutputVoltage : -this.fwdPeakOutputVoltage; - this.fwdNominalOutputVoltage = fwdNominalOutputVoltage != null ? fwdNominalOutputVoltage : 0; - this.revNominalOutputVoltage = revNominalOutputVoltage != null ? revNominalOutputVoltage : -this.fwdNominalOutputVoltage; - if (closedLoopRampRate != null) { - //The talons have a minimum closed loop ramp rate of 1.173 volts/sec, anything lower becomes 0 which is - //no ramp rate. That's obviously not what someone who inputs 1 volt/sec wants, so we bump things up. - this.closedLoopRampRate = Math.max(closedLoopRampRate, 1.173); - } else { - this.closedLoopRampRate = 0; - } - this.maxSpeed = maxSpeed; - this.kP = kP; - this.kI = kI; - this.kD = kD; - this.motionProfilePFwd = motionProfilePFwd; - this.motionProfileIFwd = motionProfileIFwd; - this.motionProfileDFwd = motionProfileDFwd; - this.motionProfilePRev = motionProfilePRev != null ? motionProfilePRev : this.motionProfilePFwd; - this.motionProfileIRev = motionProfileIRev != null ? motionProfileIRev : this.motionProfileIFwd; - this.motionProfileDRev = motionProfileDRev != null ? motionProfileDRev : this.motionProfileDFwd; - this.maxSpeedMPFwd = maxSpeedMPFwd != null ? maxSpeedMPFwd : maxSpeed; - this.maxSpeedMPRev = maxSpeedMPRev != null ? maxSpeedMPRev : this.maxSpeedMPFwd; - - if (this.maxSpeedMPFwd != null && maxAccelFwd != null) { - this.kaOverKvFwd = this.maxSpeedMPFwd / maxAccelFwd; - this.kaOverKvRev = maxAccelRev != null ? this.maxSpeedMPRev / maxAccelRev : this.kaOverKvFwd; - } else { - this.kaOverKvFwd = 0; - this.kaOverKvRev = 0; - } - this.frictionCompFPSFwd = frictionCompFPSFwd; - this.frictionCompFPSRev = frictionCompFPSRev != null ? frictionCompFPSRev : frictionCompFPSFwd; - } - - /** - * Empty constructor that uses all default options. - */ - public PerGearSettings() { - this(0, null, null, null, null, null, null, null, 0, 0, 0, 0, 0, 0, null, null, null, null, null, null, 0, null, null); - } - - /** - * @return The gear number this is the settings for. - */ - public int getGear() { - return gear; - } - - /** - * @return The peak output voltage for closed-loop modes in the forwards direction, in volts. - */ - public double getFwdPeakOutputVoltage() { - return fwdPeakOutputVoltage; - } - - /** - * @return The peak output voltage for closed-loop modes in the reverse direction, in volts. - */ - public double getRevPeakOutputVoltage() { - return revPeakOutputVoltage; - } - - /** - * @return The minimum output voltage for closed-loop modes in the forwards direction. This does not rescale, it - * just sets any output below this voltage to this voltage. - */ - public double getFwdNominalOutputVoltage() { - return fwdNominalOutputVoltage; - } - - /** - * @return The minimum output voltage for closed-loop modes in the reverse direction. This does not rescale, it - * just sets any output below this voltage to this voltage. - */ - public double getRevNominalOutputVoltage() { - return revNominalOutputVoltage; - } - - /** - * @return The closed loop ramp rate, in volts/sec. - */ - public double getClosedLoopRampRate() { - return closedLoopRampRate; - } - - /** - * @return The maximum speed of the motor in this gear, in FPS. - */ - @Nullable - public Double getMaxSpeed() { - return maxSpeed; - } - - /** - * @return The proportional PID constant for the motor in this gear. - */ - public double getkP() { - return kP; - } - - /** - * @return The integral PID constant for the motor in this gear. - */ - public double getkI() { - return kI; - } - - /** - * @return The derivative PID constant for the motor in this gear. - */ - public double getkD() { - return kD; - } - - /** - * @return The proportional PID constant for motion profiles in this gear. - */ - public double getMotionProfilePFwd() { - return motionProfilePFwd; - } - - /** - * @return The integral PID constant for motion profiles in this gear. - */ - public double getMotionProfileIFwd() { - return motionProfileIFwd; - } - - /** - * @return The derivative PID constant for motion profiles in this gear. - */ - public double getMotionProfileDFwd() { - return motionProfileDFwd; - } - - public double getKaOverKvFwd() { - return kaOverKvFwd; - } - - @Nullable - public Double getMaxSpeedMPFwd() { - return maxSpeedMPFwd; - } - - @Nullable - public Double getMaxSpeedMPRev() { - return maxSpeedMPRev; - } - - public double getFrictionCompFPSFwd() { - return frictionCompFPSFwd; - } - - public double getFrictionCompFPSRev() { - return frictionCompFPSRev; - } - - public double getMotionProfilePRev() { - return motionProfilePRev; - } - - public double getMotionProfileIRev() { - return motionProfileIRev; - } - - public double getMotionProfileDRev() { - return motionProfileDRev; - } - - public double getKaOverKvRev() { - return kaOverKvRev; - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedAHRS.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedAHRS.java deleted file mode 100644 index 1983d587..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedAHRS.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import com.kauailabs.navx.frc.AHRS; -import edu.wpi.first.wpilibj.SPI; -import org.jetbrains.annotations.Contract; - -/** - * A Jackson-compatible, invertible wrapper for the NavX. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class MappedAHRS { - - /** - * The AHRS this class is a wrapper on. - */ - protected final AHRS ahrs; - - /** - * A multiplier for the yaw angle. -1 to invert, 1 to not. - */ - protected final int invertYaw; - - /** - * The 9-axis heading value to return. Field to avoid garbage collection. - */ - private double toRet; - - /** - * Default constructor. - * - * @param port The port the NavX is plugged into. It seems like only kMXP (the port on the RIO) works. - * @param invertYaw Whether or not to invert the yaw axis. Defaults to true. - */ - @JsonCreator - public MappedAHRS(@JsonProperty(required = true) SPI.Port port, - Boolean invertYaw) { - this.ahrs = new AHRS(port); - ahrs.reset(); - if (invertYaw == null || invertYaw) { - this.invertYaw = -1; - } else { - this.invertYaw = 1; - } - } - - /** - * Convert from gs (acceleration due to gravity) to feet/(second^2). - * - * @param accelGs An acceleration in gs. - * @return That acceleration in feet/(sec^2) - */ - @Contract(pure = true) - protected static double gsToFeetPerSecondSquared(double accelGs) { - return accelGs * 32.17; //Wolfram alpha said so - } - - /** - * Get the current yaw value. - * - * @return The heading, in degrees from [-180, 180] - */ - public double getHeading() { - return ahrs.getYaw() * invertYaw; - } - - /** - * Set the current yaw value. - * - * @param headingDegrees An angle in degrees, from [-180, 180], to set the heading to. - */ - public void setHeading(double headingDegrees) { - ahrs.setAngleAdjustment(ahrs.getYaw() + invertYaw * headingDegrees); - } - - /** - * Get the current total angular displacement. Differs from getHeading because it doesn't limit angle. - * - * @return The angular displacement, in degrees. - */ - public double getAngularDisplacement() { - return ahrs.getAngle() * invertYaw; - } - - /** - * Uses the gyro axes, magnetometer, and compass to get the most accurate possible yaw value for the robot. - * - * @return The heading, in degrees from [-180, 180] - */ - public double get9AxisHeading() { - toRet = ahrs.getFusedHeading(); - if (toRet > 180) { - toRet -= 360; - } - return toRet * invertYaw; - } - - /** - * Get the current angular yaw velocity. - * - * @return The angular yaw velocity, in degrees/sec. - */ - public double getAngularVelocity() { - return ahrs.getRate() * invertYaw; - } - - /** - * Get the absolute X acceleration of the robot, relative to the field. - * - * @return Linear X acceleration, in feet/(sec^2) - */ - public double getXAccel() { - return gsToFeetPerSecondSquared(ahrs.getWorldLinearAccelX()); - } - - /** - * Get the absolute Y acceleration of the robot, relative to the field. - * - * @return Linear Y acceleration, in feet/(sec^2) - */ - public double getYAccel() { - return gsToFeetPerSecondSquared(ahrs.getWorldLinearAccelY()); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedButton.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedButton.java deleted file mode 100644 index 48548b05..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedButton.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import edu.wpi.first.wpilibj.buttons.Button; - -/** - * A jackson-compatible wrapper on WPILib's {@link Button}. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public abstract class MappedButton extends Button { - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDigitalInput.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDigitalInput.java deleted file mode 100644 index 89217898..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDigitalInput.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.*; -import edu.wpi.first.wpilibj.DigitalInput; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.List; - -/** - * A series of roboRIO digital input pins. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class MappedDigitalInput { - - /** - * The digitalInputs this class represents - */ - @JsonIgnore - private final List digitalInputs; - - /** - * Value of the inputs. Field to avoid garbage collection. - */ - private List digitalValues; - - /** - * Construct a MappedDigitalInput. - * - * @param ports The ports to read from, in order. - */ - @JsonCreator - public MappedDigitalInput(@NotNull @JsonProperty(required = true) int[] ports) { - digitalInputs = new ArrayList<>(); - for (int portNum : ports) { - DigitalInput tmp = new DigitalInput(portNum); - digitalInputs.add(tmp); - } - } - - /** - * Get the status of each pin specified in the map, in the order they were specified. - * - * @return A list of booleans where 1 represents the input receiving a signal and 0 represents no signal. - */ - @JsonIgnore - @NotNull - public List getStatus() { - digitalValues = new ArrayList<>(); - for (DigitalInput digitalInput : digitalInputs) { - //Negated because, by default, false means signal and true means no signal, and that's dumb. - digitalValues.add(!digitalInput.get()); - } - return digitalValues; - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDoubleSolenoid.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDoubleSolenoid.java deleted file mode 100644 index 946eab65..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDoubleSolenoid.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.DoubleSolenoid; - -/** - * A Jackson-compatible wrapper on the {@link DoubleSolenoid}. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class MappedDoubleSolenoid extends DoubleSolenoid { - - /** - * Default constructor. - * - * @param module The module number of the PCM. Defaults to 0. - * @param forward The forward port on the PCM. - * @param reverse The reverse port on the PCM. - */ - @JsonCreator - public MappedDoubleSolenoid(int module, - @JsonProperty(required = true) int forward, - @JsonProperty(required = true) int reverse) { - super(module, forward, reverse); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedJoystick.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedJoystick.java deleted file mode 100644 index c3fbccb0..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedJoystick.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.Joystick; -import org.usfirst.frc.team449.robot.generalInterfaces.rumbleable.Rumbleable; - -/** - * A Jackson-compatible wrapper on a {@link Joystick}. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class MappedJoystick extends Joystick implements Rumbleable { - - /** - * Default constructor - * - * @param port The USB port of this joystick, on [0, 5]. - */ - @JsonCreator - public MappedJoystick(@JsonProperty(required = true) int port) { - super(port); - } - - /** - * Rumble at a given strength on each side of the device. - * - * @param left The strength to rumble the left side, on [-1, 1] - * @param right The strength to rumble the right side, on [-1, 1] - */ - @Override - public void rumble(double left, double right) { - setRumble(RumbleType.kLeftRumble, left); - setRumble(RumbleType.kRightRumble, right); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedRunnable.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedRunnable.java deleted file mode 100644 index 4a4a90f0..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedRunnable.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * A jackson-compatible wrapper on Java's {@link Runnable}. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface MappedRunnable extends Runnable { - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedUsbCamera.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedUsbCamera.java deleted file mode 100644 index dad6c4d8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedUsbCamera.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.cscore.UsbCamera; -import org.jetbrains.annotations.NotNull; - -/** - * A Jackson-compatible wrapper on the {@link UsbCamera}. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class MappedUsbCamera extends UsbCamera { - - /** - * Default constructor - * - * @param name The human-friendly name for this camera. - * @param devAddress The address of this device in /dev/, e.g. this would be 0 for /dev/video0, 1 for /dev/video1. - * @param width The width of this camera's output, in pixels. There's a minimum value for this that WPILib - * won't let us go below, but I don't know what it is. - * @param height The height of this camera's output, in pixels. There's a minimum value for this that WPILib - * won't let us go below, but I don't know what it is. - * @param fps The frames per second this camera tries to transmit. There's a minimum value for this that - * WPILib won't let us go below, but I don't know what it is. - */ - @JsonCreator - public MappedUsbCamera(@NotNull @JsonProperty(required = true) String name, - @JsonProperty(required = true) int devAddress, - @JsonProperty(required = true) int width, - @JsonProperty(required = true) int height, - @JsonProperty(required = true) int fps) { - super(name, devAddress); - setResolution(width, height); - setFPS(fps); - - //If we don't have the exposure be automatic, the camera will be super laggy. No idea why. - setExposureAuto(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedVictor.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedVictor.java deleted file mode 100644 index 65a8c9d6..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/MappedVictor.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.VictorSP; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; - -/** - * A wrapper for a {@link VictorSP} allowing it to be easily constructed from a map object. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class MappedVictor extends VictorSP implements SimpleMotor { - - /** - * Json constructor using a port and inversion. - * - * @param port The port number of the Victor. - * @param inverted Whether the motor is inverted. Defaults to false. - */ - @JsonCreator - public MappedVictor(@JsonProperty(required = true) int port, - boolean inverted) { - super(port); - this.setInverted(inverted); - } - - /** - * Set the velocity for the motor to go at. - * - * @param velocity the desired velocity, on [-1, 1]. - */ - @Override - public void setVelocity(double velocity) { - set(velocity); - } - - /** - * Enables the motor, if applicable. - */ - @Override - public void enable() { - //Do nothing. - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/PressureSensor.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/PressureSensor.java deleted file mode 100644 index 9c02dd8a..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/PressureSensor.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.AnalogInput; - -/** - * Wrapper for an {@link AnalogInput} pressure sensor that returns a voltage linearly proportional to pressure. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class PressureSensor { - - /** - * The AnalogInput this is a wrapper on. - */ - private final AnalogInput sensor; - - - /** - * Default constructor. - * - * @param port The port of the sensor. - * @param oversampleBits The number of oversample bits. - * @param averageBits The number of averaging bits. - */ - @JsonCreator - public PressureSensor(@JsonProperty(required = true) int port, - @JsonProperty(required = true) int oversampleBits, - @JsonProperty(required = true) int averageBits) { - sensor = new AnalogInput(port); - sensor.setOversampleBits(oversampleBits); - sensor.setAverageBits(averageBits); - } - - /** - * Returns the pressure measured by the sensor. - * - * @return pressure in PSI - */ - public double getPressure() { - return 50.0 * sensor.getAverageVoltage() - 25.0; //these are constants given by REV, assuming 5.0V in - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/SimpleMotorCluster.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/SimpleMotorCluster.java deleted file mode 100644 index 725c4959..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/SimpleMotorCluster.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; - -import java.util.List; - -/** - * A cluster of simple motors that act as a single simple motor. Don't use this for talons, use master-slave instead. - */ -public class SimpleMotorCluster implements SimpleMotor { - - /** - * The motors in this cluster. Contains at least 1 element. - */ - @NotNull - private List motors; - - /** - * Default constructor - * - * @param motors The motors in this cluster. Must have at least 1 element. - */ - @JsonCreator - public SimpleMotorCluster(@JsonProperty(required = true) @NotNull List motors) { - if (motors.size() == 0) { - throw new IllegalArgumentException("motors must have at least 1 element!"); - } - this.motors = motors; - } - - /** - * Set the velocity for the motor to go at. - * - * @param velocity the desired velocity, on [-1, 1]. - */ - @Override - public void setVelocity(double velocity) { - for (SimpleMotor motor : motors) { - motor.setVelocity(velocity); - } - } - - /** - * Enables the motor, if applicable. - */ - @Override - public void enable() { - for (SimpleMotor motor : motors) { - motor.enable(); - } - } - - /** - * Disables the motor, if applicable. - */ - @Override - public void disable() { - for (SimpleMotor motor : motors) { - motor.disable(); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommand.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommand.java deleted file mode 100644 index 2b5a834c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommand.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import edu.wpi.first.wpilibj.command.Command; -import org.jetbrains.annotations.NotNull; - -/** - * A command that's constructable from YAML. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface YamlCommand { - - /** - * Get the command object this object is. - * - * @return this. - */ - @NotNull - Command getCommand(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandGroupWrapper.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandGroupWrapper.java deleted file mode 100644 index 1174aef3..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandGroupWrapper.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import edu.wpi.first.wpilibj.command.Command; -import edu.wpi.first.wpilibj.command.CommandGroup; -import org.jetbrains.annotations.NotNull; - -/** - * A wrapper on {@link CommandGroup} with @JsonTypeInfo so we can use it in maps. - */ -public abstract class YamlCommandGroupWrapper extends CommandGroup implements YamlCommand { - - /** - * Return the Command this is a wrapper on. - * - * @return this. - */ - @NotNull - @Override - public Command getCommand() { - return this; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandWrapper.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandWrapper.java deleted file mode 100644 index b65fad74..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandWrapper.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import edu.wpi.first.wpilibj.command.Command; -import org.jetbrains.annotations.NotNull; - -/** - * A wrapper on {@link Command} with @JsonTypeInfo so we can use it in maps. - */ -public abstract class YamlCommandWrapper extends Command implements YamlCommand { - - /** - * Return the Command this is a wrapper on. - * - * @return this. - */ - @NotNull - @Override - public Command getCommand() { - return this; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlSubsystem.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlSubsystem.java deleted file mode 100644 index 9c81865b..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/jacksonWrappers/YamlSubsystem.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.usfirst.frc.team449.robot.jacksonWrappers; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import edu.wpi.first.wpilibj.command.Subsystem; - -/** - * A Jackson-compatible wrapper on {@link Subsystem}. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public abstract class YamlSubsystem extends Subsystem { - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/OI.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/OI.java deleted file mode 100644 index e604c9ab..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/OI.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.usfirst.frc.team449.robot.oi; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable; - -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface OI extends Updatable { -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/CommandButton.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/CommandButton.java deleted file mode 100644 index ce7e25c7..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/CommandButton.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.buttons; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedButton; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand; - -/** - * A button mapped to a command. - */ -public class CommandButton { - - /** - * Default constructor. - * - * @param button The button that triggers the command. - * @param command The command to run or cancel. - * @param action The action to do to the command. - */ - @JsonCreator - public CommandButton(@NotNull @JsonProperty(required = true) MappedButton button, - @NotNull @JsonProperty(required = true) YamlCommand command, - @NotNull @JsonProperty(required = true) Action action) { - switch (action) { - case WHILE_HELD: - button.whileHeld(command.getCommand()); - break; - case WHEN_PRESSED: - button.whenPressed(command.getCommand()); - break; - case WHEN_RELEASED: - button.whenReleased(command.getCommand()); - break; - case CANCEL_WHEN_PRESSED: - button.cancelWhenPressed(command.getCommand()); - break; - case TOGGLE_WHEN_PRESSED: - button.toggleWhenPressed(command.getCommand()); - break; - } - } - - /** - * The possible actions for the button to do to the command. - */ - enum Action { - WHEN_PRESSED, WHILE_HELD, WHEN_RELEASED, TOGGLE_WHEN_PRESSED, CANCEL_WHEN_PRESSED - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/SimpleButton.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/SimpleButton.java deleted file mode 100644 index 4d59cd03..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/SimpleButton.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.buttons; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.Joystick; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedButton; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick; - -/** - * A version of {@link edu.wpi.first.wpilibj.buttons.JoystickButton} that is a MappedButton. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SimpleButton extends MappedButton { - - /** - * The joystick the button is on. - */ - @NotNull - private final Joystick joystick; - - /** - * The port of the button on the joystick. - */ - private final int buttonNumber; - - /** - * Default constructor. - * - * @param joystick The joystick the button is on. - * @param buttonNumber The port of the button. Note that button numbers begin at 1, not 0. - */ - @JsonCreator - public SimpleButton(@NotNull @JsonProperty(required = true) MappedJoystick joystick, - @JsonProperty(required = true) int buttonNumber) { - this.joystick = joystick; - this.buttonNumber = buttonNumber; - } - - /** - * Get whether the button is pressed. - * - * @return true if the button is pressed, false otherwise. - */ - @Override - public boolean get() { - return joystick.getRawButton(buttonNumber); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/TriggerButton.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/TriggerButton.java deleted file mode 100644 index 99dc85d7..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/TriggerButton.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.buttons; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedButton; -import org.usfirst.frc.team449.robot.oi.throttles.Throttle; - -/** - * A button that gets triggered by a specific throttle being held down at or over a certain amount. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class TriggerButton extends MappedButton { - - /** - * The relevant throttle. - */ - @NotNull - private final Throttle throttle; - - /** - * The percentage pressed to trigger at, from (0, 1] - */ - private final double triggerAt; - - /** - * Argument-based constructor. - * - * @param throttle The relevant throttle. - * @param triggerAt The percentage pressed to trigger at, from (0, 1] - */ - @JsonCreator - public TriggerButton(@NotNull @JsonProperty(required = true) Throttle throttle, - @JsonProperty(required = true) double triggerAt) { - this.throttle = throttle; - this.triggerAt = triggerAt; - } - - /** - * Get whether this button is pressed. - * - * @return true if the throttle's output is greater than or equal to the trigger threshold, false otherwise. - */ - @Override - public boolean get() { - return Math.abs(throttle.getValueCached()) >= triggerAt; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/dPadButton.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/dPadButton.java deleted file mode 100644 index f02dacfd..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/buttons/dPadButton.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.buttons; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.Joystick; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedButton; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick; - -/** - * A Button triggered by pushing the D-pad to a specific angle. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class dPadButton extends MappedButton { - - /** - * The angle that the D-pad must be pushed to to trigger this button. - */ - private final int angle; - - /** - * The joystick with the relevant D-pad on it. - */ - @NotNull - private final Joystick joystick; - - /** - * Explicit argument constructor. - * - * @param joystick The joystick with the D-pad. - * @param angle The angle that the D-pad must be pushed to to trigger this button. - */ - @JsonCreator - public dPadButton(@NotNull @JsonProperty(required = true) MappedJoystick joystick, - @JsonProperty(required = true) int angle) { - this.angle = angle; - this.joystick = joystick; - } - - /** - * Get whether this button is pressed - * - * @return true if the joystick's D-pad is pressed to the given angle, false otherwise. - */ - @Override - public boolean get() { - return joystick.getPOV() == angle; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOriented.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOriented.java deleted file mode 100644 index e4082334..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOriented.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.fieldoriented; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.oi.OI; - -/** - * An OI that gives an absolute heading, relative to the field, and a velocity. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public abstract class OIFieldOriented implements OI { - - /** - * The cached linear velocity. - */ - private double cachedVel; - - /** - * The cached angular setpoint. - */ - @Nullable - private Double cachedTheta; - - /** - * Get the absolute angle for the robot to move towards. - * - * @return An angular setpoint for the robot in degrees, where 0 is pointing at the other alliance's driver station - * and 90 is pointing at the left wall when looking out from the driver station. Returns null if vel is 0. - */ - @Nullable - public abstract Double getTheta(); - - /** - * Get the velocity for the robot to go at. - * - * @return A velocity from [-1, 1]. - */ - public abstract double getVel(); - - /** - * Get the cached absolute angle for the robot to move towards. - * - * @return An angular setpoint for the robot in degrees, where 0 is pointing at the other alliance's driver station - * and 90 is pointing at the left wall when looking out from the driver station. Returns null if vel is 0. - */ - @Nullable - public Double getThetaCached() { - return cachedTheta; - } - - /** - * Get the cached velocity for the robot to go at. - * - * @return A velocity from [-1, 1]. - */ - public double getVelCached() { - return cachedVel; - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - cachedVel = getVel(); - cachedTheta = getTheta(); - } - -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOrientedPosCos.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOrientedPosCos.java deleted file mode 100644 index 4faca6e0..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOrientedPosCos.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.fieldoriented; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.oi.throttles.Throttle; -import org.usfirst.frc.team449.robot.other.Clock; - -/** - * A field-oriented OI that always points the robot an angle where cosine is positive, i.e. always pointing away from the driver station. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class OIFieldOrientedPosCos extends OIFieldOriented { - - /** - * The throttle for the X-axis, which points towards the opposing driver station. - */ - @NotNull - private final Throttle xThrottle; - - /** - * The throttle for the Y-axis, which points towards the driver's left. - */ - @NotNull - private final Throttle yThrottle; - /** - * The radius, from [0,1], within which the joystick is considered to be "at rest." - */ - private final double rDeadband; - /** - * The theta value calculated the last time calcValues was called. - */ - @Nullable - private Double theta; - /** - * The velocity value calculated the last time calcValues was called. - */ - private double vel; - /** - * The time calcValues was last called, in milliseconds - */ - private long timeLastUpdated; - /** - * Variables for the outputs of the x and y throttles. Fields to avoid garbage collection. - */ - private double x, y; - - /** - * Default constructor - * - * @param xThrottle The throttle for the X-axis, which points towards the opposing driver station. - * @param yThrottle The throttle for the Y-axis, which points towards the driver's left. - * @param rDeadband The radius, from [0,1], within which the joystick is considered to be "at rest." Defaults to 0. - */ - @JsonCreator - public OIFieldOrientedPosCos(@NotNull @JsonProperty(required = true) Throttle xThrottle, - @NotNull @JsonProperty(required = true) Throttle yThrottle, - double rDeadband) { - this.xThrottle = xThrottle; - this.yThrottle = yThrottle; - this.rDeadband = rDeadband; - } - - /** - * Calculate the theta and vel values, can be called multiple times per tic but will only execute logic once. - */ - protected void calcValues() { - if (timeLastUpdated != Clock.currentTimeMillis()) { - x = xThrottle.getValue(); - y = yThrottle.getValue(); - vel = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); - - //0,0ish has no angle so null - if (vel < rDeadband) { - theta = null; - vel = 0; - } else { - //Use atan2 to get angle from -180 to 180 - theta = Math.toDegrees(Math.atan2(y, x)); - if (theta > 90) { - vel *= -1; - theta -= 180; - } else if (theta < -90) { - vel *= -1; - theta += 180; - } - } - timeLastUpdated = Clock.currentTimeMillis(); - } - } - - - /** - * Get the absolute angle for the robot to move towards. - * - * @return An angular setpoint for the robot in degrees, where 0 is pointing at the other alliance's driver station - * and 90 is pointing at the left wall when looking out from the driver station. - */ - @Override - @Nullable - public Double getTheta() { - calcValues(); - if (theta != null) { - SmartDashboard.putNumber("theta", theta); - SmartDashboard.putBoolean("thetaNull", false); - } else { - SmartDashboard.putBoolean("thetaNull", true); - } - return theta; - } - - /** - * Get the velocity for the robot to go at. - * - * @return A velocity from [-1, 1]. - */ - @Override - public double getVel() { - calcValues(); - SmartDashboard.putNumber("Vel", vel); - return vel; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/Throttle.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/Throttle.java deleted file mode 100644 index 13a5a524..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/Throttle.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.throttles; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable; - -/** - * An object representing an axis of a stick on a joystick. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface Throttle extends Updatable { - - /** - * Get the output of the throttle this object represents. - * - * @return The output from [-1, 1]. - */ - double getValue(); - - /** - * Get the cached output of the throttle this object represents. - * - * @return The output from [-1, 1]. - */ - double getValueCached(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleBasic.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleBasic.java deleted file mode 100644 index 8e1508ec..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleBasic.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.throttles; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.Joystick; -import edu.wpi.first.wpilibj.PIDSource; -import edu.wpi.first.wpilibj.PIDSourceType; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick; - -/** - * A class representing a single axis on a joystick. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ThrottleBasic implements Throttle, PIDSource { - - /** - * The stick we're using - */ - @NotNull - protected final Joystick stick; - - /** - * The axis on the joystick we care about. - */ - private final int axis; - - /** - * Whether or not the controls should be inverted - */ - private final boolean inverted; - - /** - * The cached value of the output. - */ - protected double cachedOutput; - - /** - * Default constructor. - * - * @param stick The Joystick object being used - * @param axis The axis being used. 0 is X, 1 is Y, 2 is Z. - * @param inverted Whether or not to invert the joystick input. Defaults to false. - */ - @JsonCreator - public ThrottleBasic(@NotNull @JsonProperty(required = true) MappedJoystick stick, - @JsonProperty(required = true) int axis, - boolean inverted) { - this.stick = stick; - this.axis = axis; - this.inverted = inverted; - } - - /** - * Gets the raw value from the stick and inverts it if necessary. - * - * @return The raw joystick output, on [-1, 1]. - */ - public double getValue() { - return (inverted ? -1 : 1) * stick.getRawAxis(axis); - } - - /** - * Get the cached output of the throttle this object represents. - * - * @return The output from [-1, 1]. - */ - @Override - public double getValueCached() { - return cachedOutput; - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - cachedOutput = getValue(); - } - - /** - * Get which parameter of the device you are using as a process control variable. - * - * @return the currently selected PID source parameter - */ - @Override - public PIDSourceType getPIDSourceType() { - return null; - } - - /** - * Set which parameter of the device you are using as a process control variable. - * - * @param pidSource An enum to select the parameter. - */ - @Override - public void setPIDSourceType(PIDSourceType pidSource) { - //Do nothing - } - - /** - * Get the result to use in PIDController. - * - * @return the result to use in PIDController - */ - @Override - public double pidGet() { - return (inverted ? -1 : 1) * stick.getRawAxis(axis); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleDeadbanded.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleDeadbanded.java deleted file mode 100644 index a192f51f..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleDeadbanded.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.throttles; - -import com.fasterxml.jackson.annotation.*; -import edu.wpi.first.wpilibj.filters.LinearDigitalFilter; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick; - -/** - * A throttle with a deadband and smoothing. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ThrottleDeadbanded extends ThrottleBasic { - - /** - * The value below which the joystick input is considered 0. - */ - protected final double deadband; - /** - * The smoothing filter for this joystick. - */ - private final LinearDigitalFilter filter; - /** - * The input from the joystick. Declared outside of getValue to avoid garbage collection. - */ - private double input; - /** - * The sign of the input from the joystick. Declared outside of getValue to avoid garbage collection. - */ - private double sign; - - /** - * A basic constructor. - * - * @param stick The Joystick object being used - * @param axis The axis being used. 0 is X, 1 is Y, 2 is Z. - * @param deadband The deadband below which the input will be read as 0, on [0, 1]. Defaults to 0. - * @param smoothingTimeSecs How many seconds of input to take into account when smoothing. Defaults to 0.02. - * @param inverted Whether or not to invert the joystick input. Defaults to false. - */ - @JsonCreator - public ThrottleDeadbanded(@NotNull @JsonProperty(required = true) MappedJoystick stick, - @JsonProperty(required = true) int axis, - double deadband, - @Nullable Double smoothingTimeSecs, - boolean inverted) { - super(stick, axis, inverted); - this.deadband = deadband; - this.filter = LinearDigitalFilter.singlePoleIIR(this, smoothingTimeSecs != null ? smoothingTimeSecs : 0.02, 0.02); - } - - /** - * Gets the value from the joystick and deadbands it. The non-deadband values are scaled to avoid a discontinuity. - * - * @return The joystick's value, after being deadbanded. - */ - @Override - public double getValue() { - //Get the smoothed value - input = filter.pidGet(); - - sign = Math.signum(input); - input = Math.abs(input); - - //apply the deadband. - if (input < deadband) { - return 0; - } - - //scale so f(deadband) is 0 and f(1) is 1. - input = (input - deadband) / (1. - deadband); - - return sign * input; - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleExponential.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleExponential.java deleted file mode 100644 index aa08d1ba..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleExponential.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.throttles; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick; - -/** - * An exponentially-scaled throttle. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ThrottleExponential extends ThrottleDeadbanded { - - /** - * The base that is raised to the power of the joystick input. - */ - protected final double base; - - /** - * The input from the joystick. Declared outside of getValue to avoid garbage collection. - */ - private double input; - - /** - * The sign of the input from the joystick. Declared outside of getValue to avoid garbage collection. - */ - private double sign; - - /** - * A basic constructor. - * - * @param stick The Joystick object being used - * @param axis The axis being used. - * @param deadband The deadband below which the input will be read as 0, on [0, 1]. Defaults to 0. - * @param smoothingTimeSecs How many seconds of input to take into account when smoothing. Defaults to 0.02. - * @param inverted Whether or not to invert the joystick input. Defaults to false. - * @param base The base that is raised to the power of the joystick input. - */ - @JsonCreator - public ThrottleExponential(@NotNull @JsonProperty(required = true) MappedJoystick stick, - @JsonProperty(required = true) int axis, - double deadband, - @Nullable Double smoothingTimeSecs, - boolean inverted, - @JsonProperty(required = true) double base) { - super(stick, axis, deadband, smoothingTimeSecs, inverted); - this.base = base; - } - - /** - * Raises the base to the value of the deadbanded joystick output, adjusting for sign. - * - * @return The processed value of the joystick - */ - @Override - public double getValue() { - input = super.getValue(); - - //Extract the sign - sign = Math.signum(input); - input = Math.abs(input); - - //Exponentially scale - input = (Math.pow(base, input) - 1.) / (base - 1.); - - return sign * input; - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottlePolynomial.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottlePolynomial.java deleted file mode 100644 index e1eae3a5..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottlePolynomial.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.throttles; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick; -import org.usfirst.frc.team449.robot.other.Polynomial; - -/** - * A polynomially scaled throttle. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ThrottlePolynomial extends ThrottleDeadbanded { - - /** - * The polynomially that scales the throttle. - */ - @NotNull - protected final Polynomial polynomial; - - /** - * A basic constructor. - * - * @param stick The Joystick object being used - * @param axis The axis being used. 0 is X, 1 is Y, 2 is Z. - * @param deadband The deadband below which the input will be read as 0, on [0, 1]. Defaults to 0. - * @param smoothingTimeSecs How many seconds of input to take into account when smoothing. Defaults to 0.02. - * @param inverted Whether or not to invert the joystick input. Defaults to false. - * @param polynomial The polynomially that scales the throttle. Must not have any negative exponents. - */ - @JsonCreator - public ThrottlePolynomial(@NotNull @JsonProperty(required = true) MappedJoystick stick, - @JsonProperty(required = true) int axis, - double deadband, - @Nullable Double smoothingTimeSecs, - boolean inverted, - @NotNull @JsonProperty(required = true) Polynomial polynomial) { - super(stick, axis, deadband, smoothingTimeSecs, inverted); - - //Check for negative exponents - for (Double power : polynomial.getPowerToCoefficientMap().keySet()) { - if (power < 0) { - throw new IllegalArgumentException("Negative exponents are not allowed!"); - } - } - - //Scale coefficient sum to 1 - polynomial.scaleCoefficientSum(1); - - this.polynomial = polynomial; - } - - /** - * Passes the deadbanded joystick output to the polynomial, while preserving sign. - * - * @return The processed value of the joystick - */ - @Override - public double getValue() { - return polynomial.get(super.getValue()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleSum.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleSum.java deleted file mode 100644 index 7c7d0446..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/throttles/ThrottleSum.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.throttles; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; - -/** - * A Throttle that sums any number of other Throttles. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ThrottleSum implements Throttle { - - /** - * The throttles to sum. - */ - @NotNull - protected final Throttle[] throttles; - - /** - * The cached output. - */ - protected double cachedValue; - - /** - * The sum. Field to avoid garbage collection. - */ - private double sum; - - /** - * Default constructor. - * - * @param throttles The throttles to sum. - */ - @JsonCreator - public ThrottleSum(@NotNull @JsonProperty(required = true) Throttle[] throttles) { - this.throttles = throttles; - } - - /** - * Sums the throttles and returns their output - * - * @return The summed outputs, clipped to [-1, 1]. - */ - public double getValue() { - //sum throttles - sum = 0; - for (Throttle throttle : throttles) { - sum += throttle.getValue(); - } - - //clip to [-1, 1] - if (sum >= 1) { - return 1; - } else if (sum <= -1) { - return -1; - } else { - return sum; - } - } - - /** - * Get the cached output of the throttle this object represents. - * - * @return The output from [-1, 1]. - */ - @Override - public double getValueCached() { - return cachedValue; - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - cachedValue = getValue(); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/OIOutreach.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/OIOutreach.java deleted file mode 100644 index 00fd4590..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/OIOutreach.java +++ /dev/null @@ -1,113 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.unidirectional; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.buttons.Button; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedButton; - - -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class OIOutreach implements OIUnidirectional { - - /** - * The OI with higher priority that overrides if it has any input. - */ - @NotNull - private final OIUnidirectional overridingOI; - - /** - * The OI with lower priority that gets overriden. - */ - @NotNull - private final OIUnidirectional overridenOI; - - /** - * A button that overrides the lower priority controller - */ - @NotNull - private final Button button; - - /** - * The cached outputs for the left and right sides of the drive. - */ - private double cachedLeftOutput, cachedRightOutput; - - @JsonCreator - public OIOutreach(@NotNull @JsonProperty(required = true) OIUnidirectional overridingOI, - @NotNull @JsonProperty(required = true) OIUnidirectional overridenOI, - @NotNull @JsonProperty(required = true) MappedButton button) { - this.overridingOI = overridingOI; - this.overridenOI = overridenOI; - this.button = button; - } - - /** - * The output to be given to the left side of the drive. - * - * @return Output to left side from [-1, 1] - */ - @Override - public double getLeftOutput() { - if (overridingOI.getLeftOutput() != 0 || overridingOI.getRightOutput() != 0 || button.get()) { - return overridingOI.getLeftOutput(); - } else { - return overridenOI.getLeftOutput(); - } - } - - /** - * The output to be given to the right side of the drive. - * - * @return Output to right side from [-1, 1] - */ - @Override - public double getRightOutput() { - if (overridingOI.getLeftOutput() != 0 || overridingOI.getRightOutput() != 0 || button.get()) { - return overridingOI.getRightOutput(); - } else { - return overridenOI.getRightOutput(); - } - } - - /** - * Whether the driver is trying to drive straight. - * - * @return True if the driver is trying to drive straight, false otherwise. - */ - @Override - public boolean commandingStraight() { - return getLeftOutputCached() == getRightOutputCached(); - } - - /** - * The cached output to be given to the left side of the drive. - * - * @return Output to left side from [-1, 1] - */ - @Override - public double getLeftOutputCached() { - return cachedLeftOutput; - } - - /** - * The cached output to be given to the right side of the drive. - * - * @return Output to right side from [-1, 1] - */ - @Override - public double getRightOutputCached() { - return cachedRightOutput; - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - cachedLeftOutput = getLeftOutput(); - cachedRightOutput = getRightOutput(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/OIUnidirectional.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/OIUnidirectional.java deleted file mode 100644 index 30932765..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/OIUnidirectional.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.unidirectional; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.usfirst.frc.team449.robot.oi.OI; - -/** - * An OI to control a robot with a unidirectional drive that has a left and right side (e.g. not meccanum, swerve, or - * holonomic) - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface OIUnidirectional extends OI { - - /** - * The output to be given to the left side of the drive. - * - * @return Output to left side from [-1, 1] - */ - double getLeftOutput(); - - /** - * The output to be given to the right side of the drive. - * - * @return Output to right side from [-1, 1] - */ - double getRightOutput(); - - /** - * Whether the driver is trying to drive straight. - * - * @return True if the driver is trying to drive straight, false otherwise. - */ - boolean commandingStraight(); - - /** - * The cached output to be given to the left side of the drive. - * - * @return Output to left side from [-1, 1] - */ - double getLeftOutputCached(); - - /** - * The cached output to be given to the right side of the drive. - * - * @return Output to right side from [-1, 1] - */ - double getRightOutputCached(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcade.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcade.java deleted file mode 100644 index 1709b4b8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcade.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.unidirectional.arcade; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional; - -/** - * An arcade-style dual joystick OI. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public abstract class OIArcade implements OIUnidirectional { - - /** - * Cached output values. - */ - private double rotCached, fwdCached, leftCached, rightCached; - - /** - * Get the rotational input. - * - * @return rotational velocity component from [-1, 1], where 1 is right and -1 is left. - */ - public abstract double getRot(); - - /** - * Get the velocity input. - * - * @return forward velocity component from [-1, 1], where 1 is forwards and -1 is backwards - */ - public abstract double getFwd(); - - /** - * Get the cached rotational input. - * - * @return rotational velocity component from [-1, 1], where 1 is right and -1 is left. - */ - public double getRotCached() { - return rotCached; - } - - /** - * Get the cached velocity input. - * - * @return forward velocity component from [-1, 1], where 1 is forwards and -1 is backwards - */ - public double getFwdCached() { - return fwdCached; - } - - /** - * The output to be given to the left side of the drive. - * - * @return Output to left side from [-1, 1] - */ - public double getLeftOutput() { - return getFwd() + getRot(); - } - - /** - * The output to be given to the right side of the drive. - * - * @return Output to right side from [-1, 1] - */ - public double getRightOutput() { - return getFwd() - getRot(); - } - - /** - * Whether the driver is trying to drive straight. - * - * @return True if the driver is trying to drive straight, false otherwise. - */ - @Override - public boolean commandingStraight() { - return getRot() == 0; - } - - /** - * The cached output to be given to the left side of the drive. - * - * @return Output to left side from [-1, 1] - */ - public double getLeftOutputCached() { - return leftCached; - } - - /** - * The cached output to be given to the right side of the drive. - * - * @return Output to right side from [-1, 1] - */ - public double getRightOutputCached() { - return rightCached; - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - rotCached = getRot(); - fwdCached = getFwd(); - leftCached = fwdCached + rotCached; - rightCached = fwdCached - rotCached; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeSimple.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeSimple.java deleted file mode 100644 index 19d658a3..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeSimple.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.unidirectional.arcade; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.oi.throttles.Throttle; - -/** - * A simple, two-stick arcade drive OI. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class OIArcadeSimple extends OIArcade { - - /** - * Left (rotation control) stick's throttle - */ - @NotNull - private final Throttle rotThrottle; - - /** - * Right (fwd/rev control) stick's throttle - */ - @NotNull - private final Throttle velThrottle; - - /** - * Default constructor - * - * @param rotThrottle The throttle for rotating the robot. - * @param velThrottle The throttle for driving straight. - */ - @JsonCreator - public OIArcadeSimple(@NotNull @JsonProperty(required = true) Throttle rotThrottle, - @NotNull @JsonProperty(required = true) Throttle velThrottle) { - this.rotThrottle = rotThrottle; - this.velThrottle = velThrottle; - } - - /** - * @return rotational velocity component - */ - @Override - public double getRot() { - return rotThrottle.getValue(); - } - - /** - * @return forward velocity component - */ - @Override - public double getFwd() { - return velThrottle.getValue(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeWithDPad.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeWithDPad.java deleted file mode 100644 index 70470475..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeWithDPad.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.unidirectional.arcade; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.Joystick; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick; -import org.usfirst.frc.team449.robot.oi.throttles.Throttle; -import org.usfirst.frc.team449.robot.other.Polynomial; - -/** - * An arcade OI with an option to use the D-pad for turning. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class OIArcadeWithDPad extends OIArcade implements Loggable { - - /** - * How much the D-pad moves the robot rotationally on a 0 to 1 scale, equivalent to pushing the turning stick that - * much of the way - */ - private final double dPadShift; - - /** - * The throttle wrapper for the stick controlling turning velocity - */ - @NotNull - private final Throttle rotThrottle; - - /** - * The throttle wrapper for the stick controlling linear velocity - */ - @NotNull - private final Throttle fwdThrottle; - - /** - * The controller with the D-pad. Can be null if not using D-pad. - */ - @Nullable - private final Joystick gamepad; - - /** - * The polynomial to scale the forwards throttle output by before using it to scale the rotational throttle. Can be - * null, and if it is, rotational throttle is not scaled by forwards throttle. - */ - @Nullable - private final Polynomial scaleRotByFwdPoly; - - /** - * The scalar that scales the rotational throttle while turning in place. - */ - private final double turnInPlaceRotScale; - - /** - * Default constructor - * - * @param gamepad The gamepad containing the joysticks and buttons. Can be null if not using the D-pad. - * @param rotThrottle The throttle for rotating the robot. - * @param fwdThrottle The throttle for driving the robot straight. - * @param invertDPad Whether or not to invert the D-pad. Defaults to false. - * @param dPadShift How fast the dPad should turn the robot, on [0, 1]. Defaults to 0. - * @param scaleRotByFwdPoly The polynomial to scale the forwards throttle output by before using it to scale the - * rotational throttle. Can be null, and if it is, rotational throttle is not scaled by - * forwards throttle. - * @param turnInPlaceRotScale The scalar that scales the rotational throttle while turning in place. - */ - @JsonCreator - public OIArcadeWithDPad( - @NotNull @JsonProperty(required = true) Throttle rotThrottle, - @NotNull @JsonProperty(required = true) Throttle fwdThrottle, - double dPadShift, - boolean invertDPad, - @Nullable MappedJoystick gamepad, - @Nullable Polynomial scaleRotByFwdPoly, - @JsonProperty(required = true) double turnInPlaceRotScale) { - this.dPadShift = (invertDPad ? -1 : 1) * dPadShift; - this.rotThrottle = rotThrottle; - this.fwdThrottle = fwdThrottle; - this.gamepad = gamepad; - this.scaleRotByFwdPoly = scaleRotByFwdPoly; - this.turnInPlaceRotScale = turnInPlaceRotScale; - } - - /** - * The output of the throttle controlling linear velocity, smoothed and adjusted according to what type of joystick - * it is. - * - * @return The processed stick output, sign-adjusted so 1 is forward and -1 is backwards. - */ - @Override - public double getFwd() { - return fwdThrottle.getValue(); - } - - /** - * Get the output of the D-pad or turning joystick, whichever is in use. If both are in use, the D-pad takes - * preference. - * - * @return The processed stick or D-pad output, sign-adjusted so 1 is right and -1 is left. - */ - @Override - public double getRot() { - //If the gamepad is being pushed to the left or right - if (gamepad != null && !(gamepad.getPOV() == -1 || gamepad.getPOV() % 180 == 0)) { - //Output the shift value - return gamepad.getPOV() < 180 ? dPadShift : -dPadShift; - } else if (getFwd() == 0) { //Turning in place - return rotThrottle.getValue() * turnInPlaceRotScale; - } else if (scaleRotByFwdPoly != null) { //If we're using Cheezy Drive - return rotThrottle.getValue() * scaleRotByFwdPoly.get(Math.abs(getFwd())); - } else { //Plain and simple - return rotThrottle.getValue(); - } - } - - /** - * Get the headers for the data this subsystem logs every loop. - * - * @return An N-length array of String labels for data, where N is the length of the Object[] returned by getData(). - */ - @NotNull - @Override - public String[] getHeader() { - return new String[]{ - "Fwd", - "Rot" - }; - } - - /** - * Get the data this subsystem logs every loop. - * - * @return An N-length array of Objects, where N is the number of labels given by getHeader. - */ - @NotNull - @Override - public Object[] getData() { - return new Object[]{ - getFwd(), - getRot() - }; - } - - /** - * Get the name of this object. - * - * @return A string that will identify this object in the log file. - */ - @NotNull - @Override - public String getName() { - return "OI"; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITank.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITank.java deleted file mode 100644 index ab4f8189..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITank.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.unidirectional.tank; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional; - -/** - * A tank-style dual joystick OI. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public abstract class OITank implements OIUnidirectional { - - /** - * Cached left and right throttle values. - */ - private double leftThrottleCached, rightThrottleCached; - - /** - * Get the throttle for the left side of the drive. - * - * @return percent of max speed for left motor cluster from [-1.0, 1.0] - */ - public abstract double getLeftThrottle(); - - /** - * Get the throttle for the right side of the drive. - * - * @return percent of max speed for right motor cluster from [-1.0, 1.0] - */ - public abstract double getRightThrottle(); - - /** - * Get the cached throttle for the left side of the drive. - * - * @return percent of max speed for left motor cluster from [-1.0, 1.0] - */ - public double getLeftThrottleCached() { - return leftThrottleCached; - } - - /** - * Get the cached throttle for the right side of the drive. - * - * @return percent of max speed for right motor cluster from [-1.0, 1.0] - */ - public double getRightThrottleCached() { - return rightThrottleCached; - } - - /** - * The output to be given to the left side of the drive. - * - * @return Output to left side from [-1, 1] - */ - public double getLeftOutput() { - return getLeftThrottle(); - } - - /** - * The output to be given to the right side of the drive. - * - * @return Output to right side from [-1, 1] - */ - public double getRightOutput() { - return getRightThrottle(); - } - - /** - * The cached output to be given to the left side of the drive. - * - * @return Output to left side from [-1, 1] - */ - public double getLeftOutputCached() { - return leftThrottleCached; - } - - /** - * The cached output to be given to the right side of the drive. - * - * @return Output to right side from [-1, 1] - */ - public double getRightOutputCached() { - return rightThrottleCached; - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - leftThrottleCached = getLeftThrottle(); - rightThrottleCached = getRightThrottle(); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITankSimple.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITankSimple.java deleted file mode 100644 index d8526fd5..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITankSimple.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.usfirst.frc.team449.robot.oi.unidirectional.tank; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.oi.throttles.Throttle; - -/** - * A simple tank drive, where each joystick controls a side of the robot. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class OITankSimple extends OITank { - - /** - * The left throttle - */ - @NotNull - private final Throttle leftThrottle; - - /** - * The right throttle - */ - @NotNull - private final Throttle rightThrottle; - - /** - * The difference between left and right input within which the driver is considered to be trying to drive - * straight. - */ - private final double commandingStraightTolerance; - - /** - * Default constructor - * - * @param leftThrottle The throttle for controlling the velocity of the left side of the drive. - * @param rightThrottle The throttle for controlling the velocity of the right side of the drive. - * @param commandingStraightTolerance The difference between left and right input within which the driver is - * considered to be trying to drive straight. Defaults to 0. - */ - @JsonCreator - public OITankSimple(@NotNull @JsonProperty(required = true) Throttle leftThrottle, - @NotNull @JsonProperty(required = true) Throttle rightThrottle, - double commandingStraightTolerance) { - this.leftThrottle = leftThrottle; - this.rightThrottle = rightThrottle; - this.commandingStraightTolerance = commandingStraightTolerance; - } - - /** - * Get the throttle for the left side of the drive. - * - * @return percent of max speed for left motor cluster from [-1.0, 1.0] - */ - @Override - public double getLeftThrottle() { - //If the driver is trying to drive straight, use the average of the two sticks. - if (commandingStraight()) { - return (leftThrottle.getValue() + rightThrottle.getValue()) / 2.; - } - return leftThrottle.getValue(); - } - - /** - * Get the throttle for the right side of the drive. - * - * @return percent of max speed for right motor cluster from [-1.0, 1.0] - */ - @Override - public double getRightThrottle() { - //If the driver is trying to drive straight, use the average of the two sticks. - if (commandingStraight()) { - return (leftThrottle.getValue() + rightThrottle.getValue()) / 2.; - } - return rightThrottle.getValue(); - } - - /** - * Whether the driver is trying to drive straight. - * - * @return True if the driver is trying to drive straight, false otherwise. - */ - @Override - public boolean commandingStraight() { - return Math.abs(getLeftOutputCached() - getRightOutputCached()) <= commandingStraightTolerance; - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/BufferTimer.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/BufferTimer.java deleted file mode 100644 index ab07ee2d..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/BufferTimer.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.usfirst.frc.team449.robot.other; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; - -/** - * A timer that checks if condition has been true for the past n seconds/milliseconds. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class BufferTimer { - - /** - * How long the condition has to be true for, in milliseconds. - */ - private final long bufferTime; - - /** - * The time at which the condition most recently switched from false to true. - */ - private long timeConditionBecameTrue; - - /** - * The state of the condition the last time get() was called. - */ - private boolean previousState; - - /** - * Constructor for a time given in seconds. - * - * @param bufferTimeSeconds The amount of time the condition has to be true for, in seconds. Defaults to 0. - */ - @JsonCreator - public BufferTimer(double bufferTimeSeconds) { - bufferTime = (long) (bufferTimeSeconds * 1000.); - } - - /** - * Constructor for a time given in milliseconds. - * - * @param bufferTimeMilliseconds The amount of time the condition has to be true for, in milliseconds. - */ - public BufferTimer(long bufferTimeMilliseconds) { - bufferTime = bufferTimeMilliseconds; - } - - /** - * Get whether the condition has been true for at least the specified amount of time. - * - * @param currentState The current state of the condition. - * @return True if the condition has been true for the specified amount of time, false otherwise. - */ - public boolean get(boolean currentState) { - //If the condition just became true, store the current time. - if (currentState && !previousState) { - timeConditionBecameTrue = Clock.currentTimeMillis(); - } - //Update previous state - previousState = currentState; - //Return true if the condition is currently true and has been true for bufferTime milliseconds. - return currentState && Clock.currentTimeMillis() - timeConditionBecameTrue >= bufferTime; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Clock.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Clock.java deleted file mode 100644 index 53f3310b..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Clock.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.usfirst.frc.team449.robot.other; - -import org.jetbrains.annotations.Contract; - -/** - * A wrapper on {@link System}.currentTimeMillis that caches the time, to avoid calling the currentTimeMillis method. - */ -public class Clock { - - /** - * The starting time for this clock. - */ - private static long startTime; - - /** - * The time since startTime, in milliseconds. - */ - private static long currentTime; - - /** - * Make constructor private so it can't be called - */ - private Clock() { - } - - /** - * Updates the current time. - */ - public synchronized static void updateTime() { - currentTime = System.currentTimeMillis() - startTime; - } - - /** - * Sets the start time to the current time. - */ - public synchronized static void setStartTime() { - startTime = System.currentTimeMillis(); - } - - /** - * @return The time since the start time, in milliseconds. - */ - @Contract(pure = true) - public synchronized static long currentTimeMillis() { - return currentTime; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/LogEvent.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/LogEvent.java deleted file mode 100644 index b54fdb02..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/LogEvent.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.usfirst.frc.team449.robot.other; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; - -/** - * An logged event with a message, timestamp, and calling class. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class LogEvent { - - /** - * The time, in milliseconds, at which this event was created. - */ - private final long timeCalled; - - /** - * The message of this event. - */ - @NotNull - private final String message; - - /** - * The class that called this event. - */ - @NotNull - private final Class caller; - - /** - * Default constructor. - *

- * Note to future people: Don't rewrite this to get the calling class from the stack trace. It's possible, and makes - * the code cleaner than taking the calling class as an argument, but getting the stack trace actually takes Java a - * little while, and considering how often this constructor is called, that would significantly slow us down. - * - * @param message The message of this event. - * @param caller The calling class. Should pretty much always be this.getClass(). - */ - @JsonCreator - public LogEvent(@NotNull @JsonProperty(required = true) String message, - @NotNull @JsonProperty(required = true) Class caller) { - timeCalled = Clock.currentTimeMillis(); - this.message = message; - this.caller = caller; - } - - /** - * Turn this event into a string for logging. - * - * @return The time called, calling class, and message, comma-separated and in that order. - */ - @NotNull - public String toString() { - return timeCalled + "," + caller.toString() + "," + message; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Logger.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Logger.java deleted file mode 100644 index 32e4d9d1..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Logger.java +++ /dev/null @@ -1,243 +0,0 @@ -package org.usfirst.frc.team449.robot.other; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.Sendable; -import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable; - -import java.io.FileWriter; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -/** - * A logger that logs telemetry data and individual events. Should be run as a separate thread from the main robot - * loop. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class Logger implements Runnable { - - /** - * A list of all events that subsystems and commands have logged that haven't yet been written to a file. - */ - @NotNull - private static List events = new ArrayList<>(); - - /** - * The file path for the event log. - */ - @NotNull - private final String eventLogFilename; - - /** - * The file path for the telemetry data log. - */ - @NotNull - private final String telemetryLogFilename; - - /** - * An array of all the subsystems with telemetry data to log. - */ - @NotNull - private final Loggable[] subsystems; - - /** - * A 2d array of the names of the each datum logged by each subsystem. Organized as - * itemNames[subsystem][dataIndex]. - */ - @NotNull - private final String[][] itemNames; - - /** - * The period of the loop running this logger, in seconds. - */ - private final double loopTimeSecs; - - /** - * The time this that logging started. We don't use {@link Clock} because this is a separate thread. - */ - private final long startTime; - - /** - * Default constructor. - * - * @param subsystems The subsystems to log telemetry data from. - * @param loopTimeSecs The period of the loop for collecting telemetry data, in seconds. - * @param eventLogFilename The filepath of the log for events. Will have the timestamp and file extension - * appended onto the end. - * @param telemetryLogFilename The filepath of the log for telemetry data. Will have the timestamp and file - * extension appended onto the end. - * @throws IOException If the file names provided from the log can't be written to. - */ - @JsonCreator - public Logger(@NotNull @JsonProperty(required = true) Loggable[] subsystems, - @JsonProperty(required = true) double loopTimeSecs, - @NotNull @JsonProperty(required = true) String eventLogFilename, - @NotNull @JsonProperty(required = true) String telemetryLogFilename) throws IOException { - //Set up the file names, using a time stamp to avoid overwriting old log files. - String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()); - startTime = System.currentTimeMillis(); - this.eventLogFilename = eventLogFilename + timeStamp + ".csv"; - this.telemetryLogFilename = telemetryLogFilename + timeStamp + ".csv"; - - //Set the loop time variable - this.loopTimeSecs = loopTimeSecs; - - //Set up the list of loggable subsystems. - this.subsystems = subsystems; - - //Construct itemNames. - itemNames = new String[this.subsystems.length][]; - - FileWriter eventLogWriter = new FileWriter(this.eventLogFilename); - FileWriter telemetryLogWriter = new FileWriter(this.telemetryLogFilename); - //Write the file headers - eventLogWriter.write("time,class,message" + "\n"); - //We use a StringBuilder because it's better for building up a string via concatenation. - StringBuilder telemetryHeader = new StringBuilder(); - telemetryHeader.append("time,Clock.time,"); - for (int i = 0; i < this.subsystems.length; i++) { - String[] items = this.subsystems[i].getHeader(); - //Initialize itemNames rows - itemNames[i] = new String[items.length]; - //For each datum - for (int j = 0; j < items.length; j++) { - //Format name as Subsystem.dataName - String itemName = this.subsystems[i].getName() + "." + items[j]; - itemNames[i][j] = itemName; - telemetryHeader.append(itemName); - telemetryHeader.append(","); - } - } - //Delete the trailing comma - telemetryHeader.deleteCharAt(telemetryHeader.length() - 1); - - telemetryHeader.append("\n"); - //Write the telemetry file header - telemetryLogWriter.write(telemetryHeader.toString()); - eventLogWriter.close(); - telemetryLogWriter.close(); - } - - /** - * Log an event to be written to the event log file. - * - * @param message The text of the event to log. - * @param caller The class causing the event. Almost always will be this.getClass(). - */ - public static void addEvent(@NotNull String message, @NotNull Class caller) { - events.add(new LogEvent(message, caller)); - } - - /** - * Print out all logged events to the event log and write all the telemetry data to the telemetry log. - */ - @Override - public void run() { - FileWriter eventLogWriter = null; - try { - eventLogWriter = new FileWriter(eventLogFilename, true); - } catch (IOException e) { - System.out.println("Event log not found!"); - e.printStackTrace(); - } - FileWriter telemetryLogWriter = null; - try { - telemetryLogWriter = new FileWriter(telemetryLogFilename, true); - } catch (IOException e) { - System.out.println("Telemetry log not found!"); - e.printStackTrace(); - } - try { - //Log each event to a file - for (LogEvent event : events) { - eventLogWriter.write(event.toString() + "\n"); - } - } catch (IOException e) { - System.out.println("Logging failed!"); - e.printStackTrace(); - } - //Collect telemetry data and write it to SmartDashboard and a file. - events = new ArrayList<>(); - //We use a StringBuilder because it's better for building up a string via concatenation. - StringBuilder telemetryData = new StringBuilder(); - - //Log the times - telemetryData.append(System.currentTimeMillis() - startTime).append(","); - telemetryData.append(Clock.currentTimeMillis()).append(","); - - //Loop through each datum - for (int i = 0; i < subsystems.length; i++) { - Object[] data = subsystems[i].getData(); - for (int j = 0; j < data.length; j++) { - Object datum = data[j]; - //We do this big thing here so we log it to SmartDashboard as the correct data type, so we make each - //thing into a booleanBox, graph, etc. - if (datum != null) { - if (datum.getClass().equals(boolean.class) || datum.getClass().equals(Boolean.class)) { - SmartDashboard.putBoolean(itemNames[i][j], (boolean) datum); - } else if (datum.getClass().equals(int.class) || datum.getClass().equals(Integer.class)) { - SmartDashboard.putNumber(itemNames[i][j], (int) datum); - } else if (datum.getClass().equals(double.class)) { - System.out.println("Double item name: " + itemNames[i][j]); - System.out.println("Double: " + datum); - System.out.println("Double class: " + datum.getClass()); - SmartDashboard.putNumber(itemNames[i][j], (double) datum); - } else if (datum.getClass().equals(Double.class)) { - SmartDashboard.putNumber(itemNames[i][j], (Double) datum); - } else if (datum.getClass().equals(long.class) || datum.getClass().equals(Long.class)) { - SmartDashboard.putNumber(itemNames[i][j], (long) datum); - } else if (datum.getClass().equals(Sendable.class)) { - SmartDashboard.putData(itemNames[i][j], (Sendable) datum); - } else if (datum.getClass().equals(String.class)) { - SmartDashboard.putString(itemNames[i][j], (String) datum); - } else { - SmartDashboard.putString(itemNames[i][j], datum.toString()); - } - telemetryData.append(datum.toString()); - } else { - SmartDashboard.putString(itemNames[i][j], "null"); - telemetryData.append("null"); - } - - - //Build up the line of data - telemetryData.append(","); - } - } - - String telemetryString = telemetryData.toString(); - telemetryString = telemetryString.substring(0, telemetryString.length() - 1); - telemetryString += "\n"; - //Log the data to a file. - try { - telemetryLogWriter.write(telemetryString); - } catch (IOException e) { - System.out.println("Logging failed!"); - e.printStackTrace(); - } - try { - telemetryLogWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } - try { - eventLogWriter.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * @return The map-specified loop period of this logger, in seconds. - */ - public double getLoopTimeSecs() { - return loopTimeSecs; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/MotionProfileData.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/MotionProfileData.java deleted file mode 100644 index 6e8c1bb8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/MotionProfileData.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.usfirst.frc.team449.robot.other; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.Robot; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; - -/** - * Data structure containing the array of points for the MP and a method to fill the MP from a csv file - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class MotionProfileData { - - /** - * Whether or not the profile is inverted because we're driving it backwards. - */ - private final boolean inverted; - - /** - * Whether or not to reset the talon position when this profile starts. - */ - private final boolean resetPosition; - - /** - * Whether to use position PID or not. - */ - private final boolean velocityOnly; - - /** - * A 2D array containing 4 values for each point- position, velocity, acceleration and delta time respectively, in - * feet, feet per second, feet per (second^2), and milliseconds. - */ - private double data[][]; - - /** - * Default constructor - * - * @param filename The filename of the .csv with the motion profile data. The first line must be the number of - * other lines. - * @param inverted Whether or not the profile is inverted (would be inverted if we're driving it backwards) - * @param velocityOnly Whether or not to only use velocity feed-forward. Used for tuning kV and kA. Defaults to - * false. - * @param resetPosition Whether or not to reset the talon position when this profile starts. - */ - @JsonCreator - public MotionProfileData(@NotNull @JsonProperty(required = true) String filename, - @JsonProperty(required = true) boolean inverted, - boolean velocityOnly, - boolean resetPosition) { - this.inverted = inverted; - this.velocityOnly = velocityOnly; - this.resetPosition = resetPosition; - - try { - readFile(Robot.RESOURCES_PATH + filename); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * Read the profile from the given file and store it in data. - * - * @param filename The name of the .csv file containing the motion profile data. - * @throws IOException if that file doesn't exist. - */ - private void readFile(@NotNull String filename) throws IOException { - //Instantiate the reader - BufferedReader br = new BufferedReader(new FileReader(filename)); - int numLines = Integer.parseInt(br.readLine()); - - //Instantiate data - data = new double[numLines][4]; - - //Declare the arrays outside the loop to avoid garbage collection. - String[] line; - double[] tmp; - - //Iterate through each line of data. - for (int i = 0; i < numLines; i++) { - //split up the line - line = br.readLine().split(",\t"); - //declare as a new double because we already put the old object it referenced in data. - tmp = new double[4]; - - tmp[0] = Double.parseDouble(line[0]); - tmp[1] = Double.parseDouble(line[1]); - tmp[2] = Double.parseDouble(line[2]); - - //Convert to milliseconds - tmp[3] = Double.parseDouble(line[3]) * 1000; - data[i] = tmp; - } - //Close the reader - br.close(); - } - - /** - * @return A 2D array containing 3 values for each point- position, velocity, and delta time respectively. - */ - @NotNull - public double[][] getData() { - return data; - } - - /** - * @return Whether to use position PID or not. - */ - public boolean isVelocityOnly() { - return velocityOnly; - } - - /** - * @return Whether or not the profile is inverted because we're driving it backwards. - */ - public boolean isInverted() { - return inverted; - } - - /** - * @return Whether or not to reset the talon position when this profile starts. - */ - public boolean resetPosition() { - return resetPosition; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Polynomial.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Polynomial.java deleted file mode 100644 index 355463af..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Polynomial.java +++ /dev/null @@ -1,103 +0,0 @@ -package org.usfirst.frc.team449.robot.other; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.HashMap; -import java.util.Map; - -/** - * A polynomial of a single variable. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class Polynomial { - - /** - * A map of the powers and coefficients of each term. - */ - @NotNull - private final Map powerToCoefficientMap; - - /** - * The sign of the most recent input. This is a field to avoid garbage collection. - */ - private double sign; - - /** - * The absolute value of the most recent input. This is a field to avoid garbage collection. - */ - private double abs; - - /** - * The value to return when get() is called. This is a field to avoid garbage collection. - */ - private double toRet; - - /** - * Default constructor. - * - * @param powerToCoefficientMap A map of the powers and coefficients of each term. Defaults to [1:1] if null or - * 0-length. - * @param scaleCoefficientSumTo Scales each coefficient so they all add up to this number. Can be null to avoid - * scaling. - */ - @JsonCreator - public Polynomial(@Nullable Map powerToCoefficientMap, - @Nullable Double scaleCoefficientSumTo) { - //Default powerToCoefficientMap to just be [1:1]. - if (powerToCoefficientMap == null || powerToCoefficientMap.size() == 0) { - this.powerToCoefficientMap = new HashMap<>(1); - this.powerToCoefficientMap.put(1., 1.); - } else { - this.powerToCoefficientMap = powerToCoefficientMap; - } - - //Scale if scaleCoefficientSumTo isn't null. - if (scaleCoefficientSumTo != null) { - scaleCoefficientSum(scaleCoefficientSumTo); - } - } - - /** - * Get the value of the polynomial given x. - * - * @param x The variable to be given to the polynomial. - * @return The value of the polynomial evaluated at |x|, then changed to the sign of x. - */ - public double get(double x) { - sign = Math.signum(x); - abs = Math.abs(x); - toRet = 0; - for (double power : powerToCoefficientMap.keySet()) { - toRet += Math.pow(abs, power) * powerToCoefficientMap.get(power); - } - return toRet * sign; - } - - /** - * Scale each coefficient so they sum to a given number. - * - * @param scaleTo The number to scale the sum of coefficients to. - */ - public void scaleCoefficientSum(double scaleTo) { - double coefficientSum = 0; - for (double power : powerToCoefficientMap.keySet()) { - coefficientSum += powerToCoefficientMap.get(power); - } - double scaleFactor = scaleTo / coefficientSum; - for (double power : powerToCoefficientMap.keySet()) { - powerToCoefficientMap.replace(power, powerToCoefficientMap.get(power) * scaleFactor); - } - } - - /** - * @return A map of the powers and coefficients of each term. - */ - @NotNull - public Map getPowerToCoefficientMap() { - return powerToCoefficientMap; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/UnidirectionalPoseEstimator.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/UnidirectionalPoseEstimator.java deleted file mode 100644 index 7284b2b9..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/UnidirectionalPoseEstimator.java +++ /dev/null @@ -1,381 +0,0 @@ -package org.usfirst.frc.team449.robot.other; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional; -import org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; - -import java.util.ArrayList; -import java.util.List; - -/** - * A Runnable for pose estimation that can take absolute positions. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class UnidirectionalPoseEstimator implements MappedRunnable, Loggable { - - /** - * The subsystem to get gyro and encoder data from. - */ - @NotNull - private final T subsystem; - - /** - * The maximum amount, in degrees, a new absolute position's angle can be off from the gyro reading and still be - * accepted as valid. - */ - private final double absolutePosAngleTolerance; - - /** - * A list of all the gyro angles recorded, in order from oldest to newest and in degrees. - */ - @NotNull - private List angles; - - /** - * A list of all [x,y] transformation vectors calculated, in order from oldest to newest and in feet. - */ - @NotNull - private List vectors; - - /** - * A list of all the times at which the gyro angles and vectors were recorded, in order from oldest to newest and in - * milliseconds. - */ - @NotNull - private List times; - - /** - * The current x,y position of the robot, in feet. - */ - private double[] currentPos; - - /** - * The time, in milliseconds since the robot code started, that the last absolute position was recorded at. - */ - private long absolutePosTime; - - /** - * The encoder reading of the left encoder the last time the loop ran, in feet. - */ - private double lastLeftPos; - - /** - * The encoder reading of the right encoder the last time the loop ran, in feet. - */ - private double lastRightPos; - - /** - * The angle of the gyro the last time the loop ran, in degrees. This is normally the same as the last element of - * angles, but it's possible that a new absolute position could erase all elements of angles. - */ - private double lastTheta; - - /** - * The last time the loop ran, in milliseconds. This is normally the same as the last element of times, but it's - * possible that a new absolute position could erase all elements of times. - */ - private long lastTime; - - /** - * The most recently calculated effective wheelbase diameter, in feet. - */ - private double fudgedWheelbaseDiameter; - - /** - * Angle and magnitude of vector being calculated. Field to avoid garbage collection. - */ - private double vectorAngle, vectorMagnitude; - - /** - * Per-run variables for run(). Fields to avoid garbage collection. - */ - private double left, right, theta, deltaLeft, deltaRight, deltaTheta; - private long time; - - /** - * Output vector from run(). Field to avoid garbage collection. - */ - private double[] vector; - - /** - * Default constructor. - * - * @param subsystem The subsystem to get gyro and encoder data from. - * @param absolutePosAngleTolerance The maximum amount, in degrees, a new absolute position's angle can be off from - * the gyro reading and still be accepted as valid. - * @param startX The starting X of the robot, in feet. Defaults to 0. - * @param startY The starting Y of the robot, in feet. Defaults to 0. - * @param startTheta The starting angle of the robot, in degrees. Defaults to 0. - */ - @JsonCreator - public UnidirectionalPoseEstimator(@JsonProperty(required = true) @NotNull T subsystem, - @JsonProperty(required = true) double absolutePosAngleTolerance, - double startX, - double startY, - double startTheta) { - this.subsystem = subsystem; - this.absolutePosAngleTolerance = absolutePosAngleTolerance; - lastTheta = startTheta; - - //Construct lists - angles = new ArrayList<>(); - vectors = new ArrayList<>(); - times = new ArrayList<>(); - - //Set up start pos - currentPos = new double[2]; - currentPos[0] = startX; - currentPos[1] = startY; - - lastLeftPos = subsystem.getLeftPos(); - lastRightPos = subsystem.getRightPos(); - absolutePosTime = 0; - lastTime = 0; - } - - /** - * Calculate the x and y movement vector for the robot. - * - * @param left The displacement of the left encoder, in feet - * @param right The displacement of the right encoder, in feet - * @param deltaTheta The angular displacement, in radians - * @param lastAngle The previous heading, in radians - * @return An array of length 2 containing the [x, y] displacement of the robot. - */ - @NotNull - private double[] calcVector(double left, double right, double deltaTheta, double lastAngle) { - - //If we're going in a straight line - if (deltaTheta == 0) { - return new double[]{(left + right) / 2. * Math.cos(lastAngle), (left + right) / 2. * Math.sin(lastAngle)}; - } else { - //This next part is too complicated to explain in comments. Read this wiki page instead: - // http://team449.shoutwiki.com/wiki/Pose_Estimation - vectorAngle = lastAngle + deltaTheta / 2.; - vectorMagnitude = 2. * ((left + right) / 2.) / deltaTheta * Math.sin(deltaTheta / 2.); - return new double[]{vectorMagnitude * Math.cos(vectorAngle), vectorMagnitude * Math.sin(vectorAngle)}; - } - } - - /** - * Use the current gyro and encoder data to calculate how the robot has moved since the last time run was called. - */ - @Override - public synchronized void run() { - //Record everything at the start, as it may change between executing lines of code and that would be bad. - left = subsystem.getLeftPos(); - right = subsystem.getRightPos(); - theta = Math.toRadians(subsystem.getAngularDisplacement()); - time = Clock.currentTimeMillis(); - - //Calculate differences versus the last measurement - deltaLeft = left - lastLeftPos; - deltaRight = right - lastRightPos; - deltaTheta = theta - lastTheta; - if (deltaTheta == 0) { - fudgedWheelbaseDiameter = -1; - } else { - fudgedWheelbaseDiameter = (deltaLeft - deltaRight) / deltaTheta; - } - - vector = calcVector(deltaLeft, deltaRight, deltaTheta, lastTheta); - - //The vector for how much the robot moves, element 0 is x and element 1 is y. - - //If we received an absolute position between the last run and this one, scale the vector so it only includes - //the change since the absolute position was given - if (absolutePosTime > lastTime) { - currentPos[0] += vector[0] * (time - absolutePosTime) / (time - lastTime); - currentPos[1] += vector[1] * (time - absolutePosTime) / (time - lastTime); - } else { - currentPos[0] += vector[0]; - currentPos[1] += vector[1]; - } - - //record measurements in lists - vectors.add(vector); - angles.add(theta); - times.add(time); - - //record current stuff as "last" - lastTheta = theta; - lastRightPos = right; - lastLeftPos = left; - lastTime = time; - } - - /** - * Add an absolute position at the given time stamp. - * - * @param x The absolute x, in feet - * @param y The absolute y, in feet - * @param time The time, in milleseconds after the robot code started, that the absolute position was recorded. - * @return true if the absolute position was the most recent received and was used, false otherwise. - */ - public synchronized boolean addAbsolutePos(double x, double y, long time) { - //Ignore it if it's older than the existing absolute position - if (time < absolutePosTime) { - return false; - } - - //Add the given position - addPos(x, y, time, getFirstKeepableIndex(time)); - return true; - } - - /** - * Add an absolute position at the given time stamp, using an angle measured to verify that the absolute position is - * correct. - * - * @param x The absolute x, in feet - * @param y The absolute y, in feet - * @param time The time, in milleseconds after the robot code started, that the absolute position was recorded - * @param angle The absolute angle, in degrees. - * @return true if the absolute position was the most recent received and the angle was correct enough to be used, - * false otherwise. - */ - public synchronized boolean addAbsolutePos(double x, double y, long time, double angle) { - //Ignore it if it's older than the existing absolute position - if (time < absolutePosTime) { - return false; - } - - //Get the first keepable index - int firstKeepableIndex = getFirstKeepableIndex(time); - - //Find the angle of the gyro at the time the absolute position was recorded - double angleAtTime; - if (firstKeepableIndex == 0) { - //If the absolute position is from before the first angle was recorded, just use the first angle. - angleAtTime = angles.get(0); - } else { - //Calculate the angle at the time by assuming constant angular velocity over the interval. - angleAtTime = (angles.get(firstKeepableIndex - 1) * (time - times.get(firstKeepableIndex - 1)) + - angles.get(firstKeepableIndex) * (times.get(firstKeepableIndex) - time)) - / (times.get(firstKeepableIndex) - times.get(firstKeepableIndex - 1)); - } - - //If the angle from the gyro and from the absolute position are too different, don't use the absolute position. - if (Math.abs(angleAtTime - angle) > absolutePosAngleTolerance) { - return false; - } else { - //Otherwise, use it. - addPos(x, y, time, firstKeepableIndex); - return true; - } - } - - /** - * Get the current absolute position of the robot - * - * @return The current x,y position in feet. - */ - @NotNull - public double[] getPos() { - return currentPos; - } - - /** - * An internal helper method that adds an absolute position given a first keepable index. - * - * @param x The absolute x, in feet - * @param y The absolute y, in feet - * @param time The time, in milleseconds after the robot code started, that the absolute position was - * recorded - * @param firstKeepableIndex The first index of the times, vectors, and angles arrays recorded after the given - * time. - */ - private void addPos(double x, double y, long time, int firstKeepableIndex) { - this.absolutePosTime = time; - this.currentPos = new double[2]; - this.currentPos[0] = x; - this.currentPos[1] = y; - - //The "first keepable" vector starts before the absolute position is measured and ends after it, so we have to - //add the part that comes after to the position. - if (firstKeepableIndex > 0) { //This if is just to prevent IndexOutOfBounds on times.get(firstKeepableIndex - 1) - this.currentPos[0] += vectors.get(firstKeepableIndex)[0] * (times.get(firstKeepableIndex) - time) / - (times.get(firstKeepableIndex) - times.get(firstKeepableIndex - 1)); - this.currentPos[1] += vectors.get(firstKeepableIndex)[1] * (times.get(firstKeepableIndex) - time) / - (times.get(firstKeepableIndex) - times.get(firstKeepableIndex - 1)); - } - - //Trim vectors to only be the relevant vectors. - vectors = vectors.subList(firstKeepableIndex, vectors.size()); - - //Add all the vectors that come after the absolutePos to the position. Loop starts at index 1 because index 0, - //the firstKeepableIndex, we already accounted for above. - for (int i = 1; i < vectors.size(); i++) { - currentPos[0] += vectors.get(i)[0]; - currentPos[1] += vectors.get(i)[1]; - } - - //Trim other lists - times = times.subList(firstKeepableIndex, times.size()); - angles = angles.subList(firstKeepableIndex, angles.size()); - } - - /** - * Finds the first index of the times array that was recorded after the given time. - * - * @param time A time in milliseconds since the robot code started - * @return the lowest index of times whose value is greater than time. - */ - private int getFirstKeepableIndex(long time) { - int firstKeepableIndex = times.size(); - for (int i = 0; i < times.size(); i++) { - if (times.get(i) > time) { - firstKeepableIndex = i; - break; - } - } - return firstKeepableIndex; - } - - /** - * Get the headers for the data this subsystem logs every loop. - * - * @return An N-length array of String labels for data, where N is the length of the Object[] returned by getData(). - */ - @NotNull - @Override - public String[] getHeader() { - return new String[]{ - "effective_wheelbase", - "x_displacement", - "y_displacement" - }; - } - - /** - * Get the data this subsystem logs every loop. - * - * @return An N-length array of Objects, where N is the number of labels given by getHeader. - */ - @NotNull - @Override - public Object[] getData() { - return new Object[]{ - fudgedWheelbaseDiameter, - getPos()[0], - getPos()[1] - }; - } - - /** - * Get the name of this object. - * - * @return A string that will identify this object in the log file. - */ - @NotNull - @Override - public String getName() { - return "PoseEstimator"; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Updater.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Updater.java deleted file mode 100644 index fa324cbd..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/other/Updater.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.usfirst.frc.team449.robot.other; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable; - -/** - * A Runnable for updating cached variables. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class Updater implements MappedRunnable { - - /** - * The objects to update. - */ - @NotNull - private final Updatable[] updatables; - - /** - * Default constructor - * - * @param updatables The objects to update. - */ - @JsonCreator - public Updater(@NotNull @JsonProperty(required = true) Updatable[] updatables) { - this.updatables = updatables; - } - - /** - * Update all the updatables. - */ - @Override - public void run() { - for (Updatable updatable : updatables) { - updatable.update(); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/climber/ClimberCurrentLimited.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/climber/ClimberCurrentLimited.java deleted file mode 100644 index f64ea714..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/climber/ClimberCurrentLimited.java +++ /dev/null @@ -1,188 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.complex.climber; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.BufferTimer; -import org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor; -import org.usfirst.frc.team449.robot.subsystem.interfaces.conditional.SubsystemConditional; - -/** - * A climber subsystem that uses power monitoring to stop climbing. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ClimberCurrentLimited extends YamlSubsystem implements Loggable, SubsystemBinaryMotor, SubsystemConditional { - - /** - * The CANTalon controlling one of the climber motors. - */ - @NotNull - private final FPSTalon canTalonSRX; - - /** - * The other climber motor. - */ - @Nullable - private final SimpleMotor simpleMotor; - - /** - * The maximum allowable power before we stop the motor. - */ - private final double maxPower; - - /** - * The bufferTimer controlling how long we can be above the power limit before we stop climbing. - */ - @NotNull - private final BufferTimer powerLimitTimer; - - /** - * Whether or not the motor is currently spinning. - */ - private boolean motorSpinning; - - /** - * Whether the condition was met last time caching was done. - */ - private boolean conditionMetCached; - - - /** - * Default constructor - * - * @param talonSRX The CANTalon controlling one of the climber motors. - * @param maxPower The maximum power at which the motor won't shut off. - * @param simpleMotor The other climber motor. Can be null. - * @param powerLimitTimer The buffer timer for the power-limited shutoff. - */ - @JsonCreator - public ClimberCurrentLimited(@NotNull @JsonProperty(required = true) FPSTalon talonSRX, - @JsonProperty(required = true) double maxPower, - @Nullable SimpleMotor simpleMotor, - @NotNull @JsonProperty(required = true) BufferTimer powerLimitTimer) { - //Instantiate things - this.canTalonSRX = talonSRX; - this.maxPower = maxPower; - this.powerLimitTimer = powerLimitTimer; - this.simpleMotor = simpleMotor; - this.motorSpinning = false; - } - - /** - * Initialize the default command for a subsystem By default subsystems have no default command, but if they do, the - * default command is set with this method. It is called on all Subsystems by CommandBase in the users program after - * all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } - - /** - * Set the percent voltage to be given to the motor. - * - * @param percentVbus The voltage to give the motor, from -1 to 1. - */ - private void setPercentVbus(double percentVbus) { - canTalonSRX.setPercentVoltage(percentVbus); - if (simpleMotor != null) { - simpleMotor.setVelocity(percentVbus); - } - } - - /** - * Get the headers for the data this subsystem logs every loop. - * - * @return An N-length array of String labels for data, where N is the length of the Object[] returned by getData(). - */ - @NotNull - @Override - public String[] getHeader() { - return new String[]{"current", - "voltage", - "power"}; - } - - /** - * Get the data this subsystem logs every loop. - * - * @return An N-length array of Objects, where N is the number of labels given by getHeader. - */ - @NotNull - @Override - public Object[] getData() { - return new Object[]{canTalonSRX.getOutputCurrent(), - canTalonSRX.getOutputVoltage(), - canTalonSRX.getOutputCurrent() * canTalonSRX.getOutputVoltage()}; - } - - /** - * Get the name of this object. - * - * @return A string that will identify this object in the log file. - */ - @NotNull - @Override - public String getName() { - return "climber"; - } - - /** - * Turns the motor on, and sets it to a map-specified speed. - */ - @Override - public void turnMotorOn() { - canTalonSRX.enable(); - setPercentVbus(1); - motorSpinning = true; - } - - /** - * Turns the motor off. - */ - @Override - public void turnMotorOff() { - setPercentVbus(0); - canTalonSRX.disable(); - motorSpinning = false; - } - - /** - * @return true if the motor is on, false otherwise. - */ - @Override - public boolean isMotorOn() { - return motorSpinning; - } - - /** - * @return true if the condition is met, false otherwise - */ - @Override - public boolean isConditionTrue() { - return powerLimitTimer.get(Math.abs(canTalonSRX.getOutputCurrent() * canTalonSRX.getOutputVoltage()) > maxPower); - } - - /** - * @return true if the condition was met when cached, false otherwise - */ - @Override - public boolean isConditionTrueCached() { - return conditionMetCached; - } - - /** - * Updates all cached values with current ones. - */ - @Override - public void update() { - conditionMetCached = isConditionTrue(); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/intake/IntakeFixedAndActuated.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/intake/IntakeFixedAndActuated.java deleted file mode 100644 index 44d51aef..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/intake/IntakeFixedAndActuated.java +++ /dev/null @@ -1,158 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.complex.intake; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedDoubleSolenoid; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedVictor; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid; - -/** - * An intake with a piston that actuates it and a fixed and actuated motor. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class IntakeFixedAndActuated extends YamlSubsystem implements SubsystemSolenoid, SubsystemIntake { - - /** - * Motor for the fixed intake - */ - @NotNull - private final SimpleMotor fixedMotor; - - /** - * Motor for the actuated intake - */ - @NotNull - private final SimpleMotor actuatedMotor; - - /** - * Piston for raising and lowering the intake - */ - @NotNull - private final DoubleSolenoid piston; - - /** - * How fast the fixed victor should go to pick up balls, on [-1, 1] - */ - private final double fixedIntakeSpeed; - - /** - * How fast the fixed victor should go to agitate balls while they're being fed into the multiSubsystem, on [-1, 1] - */ - private final double fixedAgitateSpeed; - - /** - * How fast the actuated victor should go to pick up balls, on [-1, 1] - */ - private final double actuatedSpeed; - - /** - * The intake's position. - */ - private DoubleSolenoid.Value pistonPos; - - /** - * The mode the intake's currently in. - */ - @NotNull - private IntakeMode mode; - - /** - * Default constructor. - * - * @param fixedMotor The SimpleMotor powering the fixed intake. - * @param fixedAgitateSpeed The speed to run the fixed victor at to agitate balls, on [-1, 1] - * @param fixedIntakeSpeed The speed to run the fixed victor to intake balls, on [-1, 1] - * @param actuatedMotor The SimpleMotor powering the actuated intake. - * @param actuatedSpeed The speed to run the actuated victor to intake balls, on [-1, 1]. - * @param piston The piston for raising and lowering the actuated intake. - */ - @JsonCreator - public IntakeFixedAndActuated(@NotNull @JsonProperty(required = true) MappedVictor fixedMotor, - @JsonProperty(required = true) double fixedAgitateSpeed, - @JsonProperty(required = true) double fixedIntakeSpeed, - @NotNull @JsonProperty(required = true) MappedVictor actuatedMotor, - @JsonProperty(required = true) double actuatedSpeed, - @NotNull @JsonProperty(required = true) MappedDoubleSolenoid piston) { - //Instantiate stuff. - this.fixedMotor = fixedMotor; - this.fixedIntakeSpeed = fixedIntakeSpeed; - this.fixedAgitateSpeed = fixedAgitateSpeed; - this.actuatedMotor = actuatedMotor; - this.actuatedSpeed = actuatedSpeed; - this.piston = piston; - mode = IntakeMode.OFF; - } - - /** - * @param value The position to set the solenoid to. - */ - @Override - public void setSolenoid(@NotNull DoubleSolenoid.Value value) { - piston.set(value); - pistonPos = value; - } - - /** - * @return the current position of the solenoid. - */ - @NotNull - public DoubleSolenoid.Value getSolenoidPosition() { - return pistonPos; - } - - /** - * Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - * the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - * after all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } - - /** - * @return the current mode of the intake. - */ - @NotNull - @Override - public IntakeMode getMode() { - return mode; - } - - /** - * @param mode The mode to switch the intake to. - */ - @Override - public void setMode(@NotNull IntakeMode mode) { - this.mode = mode; - switch (mode) { - case OFF: - actuatedMotor.disable(); - fixedMotor.disable(); - break; - case IN_FAST: - //In fast is used for picking up balls. - actuatedMotor.enable(); - fixedMotor.enable(); - fixedMotor.setVelocity(fixedIntakeSpeed); - actuatedMotor.setVelocity(actuatedSpeed); - break; - case IN_SLOW: - //In slow is used for agitation. - actuatedMotor.disable(); - fixedMotor.enable(); - fixedMotor.setVelocity(fixedAgitateSpeed); - break; - default: - Logger.addEvent("Unsupported mode!", this.getClass()); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/shooter/LoggingFlywheel.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/shooter/LoggingFlywheel.java deleted file mode 100644 index 980598df..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/complex/shooter/LoggingFlywheel.java +++ /dev/null @@ -1,184 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.complex.shooter; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; - -/** - * A flywheel multiSubsystem with a single flywheel and a single-motor feeder system. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class LoggingFlywheel extends YamlSubsystem implements Loggable, SubsystemFlywheel { - - /** - * The flywheel's Talon - */ - @NotNull - private final FPSTalon shooterTalon; - - /** - * The feeder's motor - */ - @NotNull - private final SimpleMotor feederMotor; - - /** - * How fast to run the feeder, from [-1, 1] - */ - private final double feederThrottle; - - /** - * Throttle at which to run the multiSubsystem, from [-1, 1] - */ - private final double shooterThrottle; - - /** - * Time from giving the multiSubsystem voltage to being ready to fire, in milliseconds. - */ - private final long spinUpTime; - - /** - * Whether the flywheel is currently commanded to spin - */ - @NotNull - private FlywheelState state; - - /** - * Default constructor - * - * @param shooterTalon The TalonSRX controlling the flywheel. - * @param shooterThrottle The throttle, from [-1, 1], at which to run the multiSubsystem. - * @param feederMotor The motor controlling the feeder. - * @param feederThrottle The throttle, from [-1, 1], at which to run the feeder. - * @param spinUpTimeSecs The amount of time, in seconds, it takes for the multiSubsystem to get up to speed. - * Defaults to 0. - */ - @JsonCreator - public LoggingFlywheel(@NotNull @JsonProperty(required = true) FPSTalon shooterTalon, - @JsonProperty(required = true) double shooterThrottle, - @NotNull @JsonProperty(required = true) SimpleMotor feederMotor, - @JsonProperty(required = true) double feederThrottle, - double spinUpTimeSecs) { - this.shooterTalon = shooterTalon; - this.shooterThrottle = shooterThrottle; - this.feederMotor = feederMotor; - this.feederThrottle = feederThrottle; - state = FlywheelState.OFF; - spinUpTime = (long) (spinUpTimeSecs * 1000.); - } - - /** - * Do nothing - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } - - /** - * Get the headers for the data this subsystem logs every loop. - * - * @return An N-length array of String labels for data, where N is the length of the Object[] returned by getData(). - */ - @NotNull - @Override - public String[] getHeader() { - return new String[]{"speed", - "setpoint", - "error", - "voltage", - "current"}; - } - - /** - * Get the data this subsystem logs every loop. - * - * @return An N-length array of Objects, where N is the number of labels given by getHeader. - */ - @NotNull - @Override - public Object[] getData() { - return new Object[]{shooterTalon.getVelocity(), - shooterTalon.getSetpoint(), - shooterTalon.getError(), - shooterTalon.getOutputVoltage(), - shooterTalon.getOutputCurrent()}; - } - - /** - * Get the name of this object. - * - * @return A string that will identify this object in the log file. - */ - @NotNull - @Override - public String getName() { - return "loggingShooter"; - } - - /** - * Turn the multiSubsystem on to a map-specified speed. - */ - @Override - public void turnFlywheelOn() { - shooterTalon.enable(); - shooterTalon.setVelocity(shooterThrottle); - } - - /** - * Turn the multiSubsystem off. - */ - @Override - public void turnFlywheelOff() { - shooterTalon.disable(); - } - - /** - * Start feeding balls into the multiSubsystem. - */ - @Override - public void turnFeederOn() { - feederMotor.enable(); - feederMotor.setVelocity(feederThrottle); - } - - /** - * Stop feeding balls into the multiSubsystem. - */ - @Override - public void turnFeederOff() { - feederMotor.disable(); - } - - /** - * @return The current state of the multiSubsystem. - */ - @NotNull - @Override - public FlywheelState getFlywheelState() { - return state; - } - - /** - * @param state The state to switch the multiSubsystem to. - */ - @Override - public void setFlywheelState(@NotNull FlywheelState state) { - this.state = state; - } - - /** - * @return Time from giving the multiSubsystem voltage to being ready to fire, in milliseconds. - */ - @Override - public long getSpinUpTimeMillis() { - return spinUpTime; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/SubsystemAHRS.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/SubsystemAHRS.java deleted file mode 100644 index d498c4a4..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/SubsystemAHRS.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS; - - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * A subsystem that has a AHRS on it. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT) -public interface SubsystemAHRS { - - /** - * Get the robot's heading. - * - * @return robot heading, in degrees, on [-180, 180]. - */ - double getHeading(); - - /** - * Set the robot's heading. - * - * @param heading The heading to set to, in degrees on [-180, 180]. - */ - void setHeading(double heading); - - /** - * Get the robot's cached heading. - * - * @return robot heading, in degrees, on [-180, 180]. - */ - double getHeadingCached(); - - /** - * Get the robot's angular velocity. - * - * @return Angular velocity in degrees/sec - */ - double getAngularVel(); - - /** - * Get the robot's cached angular velocity. - * - * @return Angular velocity in degrees/sec - */ - double getAngularVelCached(); - - /** - * Get the robot's angular displacement since being turned on. - * - * @return Angular displacement in degrees. - */ - double getAngularDisplacement(); - - /** - * Get the robot's cached angular displacement since being turned on. - * - * @return Angular displacement in degrees. - */ - double getAngularDisplacementCached(); - - /** - * @return true if the gyroscope is currently overriden, false otherwise. - */ - boolean getOverrideGyro(); - - /** - * @param override true to override the gyro, false to un-override it. - */ - void setOverrideGyro(boolean override); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/OverrideNavX.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/OverrideNavX.java deleted file mode 100644 index 8b8ae514..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/OverrideNavX.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; - -/** - * Set whether or not to override the AHRS. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class OverrideNavX extends YamlCommandWrapper { - - /** - * Whether or not to override the AHRS. - */ - private final boolean override; - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemAHRS subsystem; - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on - * @param override Whether or not to override the AHRS. - */ - @JsonCreator - public OverrideNavX(@NotNull @JsonProperty(required = true) SubsystemAHRS subsystem, - @JsonProperty(required = true) boolean override) { - this.override = override; - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("OverrideNavX init", this.getClass()); - } - - /** - * Set whether or not we're overriding the AHRS - */ - @Override - protected void execute() { - subsystem.setOverrideGyro(override); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("OverrideNavX end", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("OverrideNavX Interrupted!", this.getClass()); - } -} - diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/PIDAngleCommand.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/PIDAngleCommand.java deleted file mode 100644 index 2e4f861b..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/PIDAngleCommand.java +++ /dev/null @@ -1,155 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import edu.wpi.first.wpilibj.command.Command; -import edu.wpi.first.wpilibj.command.PIDCommand; -import edu.wpi.first.wpilibj.command.Scheduler; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; - -/** - * A command that uses a AHRS to turn to a certain angle. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public abstract class PIDAngleCommand extends PIDCommand implements YamlCommand { - - /** - * The subsystem to execute this command on. - */ - @NotNull - protected final SubsystemAHRS subsystem; - - /** - * The minimum the robot should be able to output, to overcome friction. - */ - private final double minimumOutput; - - /** - * The range in which output is turned off to prevent "dancing" around the setpoint. - */ - private final double deadband; - - /** - * Whether or not the loop is inverted. - */ - private final boolean inverted; - - /** - * Default constructor. - * - * @param absoluteTolerance The maximum number of degrees off from the target at which we can be considered within - * tolerance. - * @param toleranceBuffer How many consecutive loops have to be run while within tolerance to be considered on - * target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0. - * @param minimumOutput The minimum output of the loop. Defaults to zero. - * @param maximumOutput The maximum output of the loop. Can be null, and if it is, no maximum output is used. - * @param deadband The deadband around the setpoint, in degrees, within which no output is given to the - * motors. Defaults to zero. - * @param inverted Whether the loop is inverted. Defaults to false. - * @param kP Proportional gain. Defaults to zero. - * @param kI Integral gain. Defaults to zero. - * @param kD Derivative gain. Defaults to zero. - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public PIDAngleCommand(@JsonProperty(required = true) double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, @Nullable Double maximumOutput, - double deadband, - boolean inverted, - @NotNull @JsonProperty(required = true) SubsystemAHRS subsystem, - double kP, - double kI, - double kD) { - //Set P, I and D. I and D will normally be 0 if you're using cascading control, like you should be. - super(kP, kI, kD); - this.subsystem = subsystem; - - //Navx reads from -180 to 180. - setInputRange(-180, 180); - - //It's a circle, so it's continuous - this.getPIDController().setContinuous(true); - - //Set the absolute tolerance to be considered on target within. - this.getPIDController().setAbsoluteTolerance(absoluteTolerance); - - //This is how long we have to be within the tolerance band. Multiply by loop period for time in ms. - this.getPIDController().setToleranceBuffer(toleranceBuffer); - - //Minimum output, the smallest output it's possible to give. One-tenth of your drive's top speed is about - // right. - this.minimumOutput = minimumOutput; - - //This caps the output we can give. One way to set up closed-loop is to make P large and then use this to - // prevent overshoot. - if (maximumOutput != null) { - this.getPIDController().setOutputRange(-maximumOutput, maximumOutput); - } - - //Set a deadband around the setpoint, in degrees, within which don't move, to avoid "dancing" - this.deadband = deadband; - - //Set whether or not to invert the loop. - this.inverted = inverted; - } - - /** - * Process the output of the PID loop to account for minimum output and inversion. - * - * @param output The output from the WPILib angular PID loop. - * @return The processed output, ready to be subtracted from the left side of the drive output and added to the - * right side. - */ - protected double processPIDOutput(double output) { - //Set the output to the minimum if it's too small. - if (output > 0 && output < minimumOutput) { - output = minimumOutput; - } else if (output < 0 && output > -minimumOutput) { - output = -minimumOutput; - } - if (inverted) { - output *= -1; - } - - return output; - } - - /** - * Deadband the output of the PID loop. - * - * @param output The output from the WPILib angular PID loop. - * @return That output after being deadbanded with the map-given deadband. - */ - protected double deadbandOutput(double output) { - return this.getPIDController().getError() > deadband ? output : 0; - } - - /** - * Returns the input for the pid loop.

It returns the input for the pid loop, so if this command was based off - * of a gyro, then it should return the angle of the gyro

All subclasses of {@link PIDCommand} must - * override this method.

This method will be called in a different thread then the {@link Scheduler} - * thread.

- * - * @return the value the pid loop should use as input - */ - @Override - protected double returnPIDInput() { - return subsystem.getHeadingCached(); - } - - /** - * Get the command object this object is. - * - * @return this. - */ - @Override - @NotNull - public Command getCommand() { - return this; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/ToggleOverrideNavX.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/ToggleOverrideNavX.java deleted file mode 100644 index 5ecf1a12..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/ToggleOverrideNavX.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS; - -/** - * Toggle whether or not to override the AHRS. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ToggleOverrideNavX extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemAHRS subsystem; - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on - */ - @JsonCreator - public ToggleOverrideNavX(@NotNull @JsonProperty(required = true) SubsystemAHRS subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("OverrideNavX init", this.getClass()); - } - - /** - * Toggle whether or not we're overriding the AHRS - */ - @Override - protected void execute() { - subsystem.setOverrideGyro(!subsystem.getOverrideGyro()); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("OverrideNavX end", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("OverrideNavX Interrupted!", this.getClass()); - } -} - diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/BinaryMotorSimple.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/BinaryMotorSimple.java deleted file mode 100644 index 6996687a..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/BinaryMotorSimple.java +++ /dev/null @@ -1,83 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * A simple example of a binary motor subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class BinaryMotorSimple extends YamlSubsystem implements SubsystemBinaryMotor { - - /** - * The motor that this subsystem controls. - */ - @NotNull - private final SimpleMotor motor; - - /** - * The velocity to run the motor at, on [-1, 1]. - */ - private final double velocity; - - /** - * Whether or not the motor is currently on. - */ - private boolean motorOn; - - /** - * Default constructor. - * - * @param motor The motor that this subsystem controls. - * @param velocity The velocity to run the motor at, on [-1, 1]. Defaults to 1. - */ - @JsonCreator - public BinaryMotorSimple(@NotNull @JsonProperty(required = true) SimpleMotor motor, - @Nullable Double velocity) { - this.motor = motor; - this.velocity = velocity != null ? velocity : 1; - motorOn = false; - } - - /** - * Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - * the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - * after all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } - - /** - * Turns the motor on, and sets it to a map-specified speed. - */ - @Override - public void turnMotorOn() { - motor.setVelocity(velocity); - motorOn = true; - } - - /** - * Turns the motor off. - */ - @Override - public void turnMotorOff() { - motor.setVelocity(0); - motorOn = false; - } - - /** - * @return true if the motor is on, false otherwise. - */ - @Override - public boolean isMotorOn() { - return motorOn; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/SubsystemBinaryMotor.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/SubsystemBinaryMotor.java deleted file mode 100644 index abeae8e3..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/SubsystemBinaryMotor.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * A subsystem with a motor that only needs to be run at one speed, e.g. a flywheel multiSubsystem or simple intake. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface SubsystemBinaryMotor { - - /** - * Turns the motor on, and sets it to a map-specified speed. - */ - void turnMotorOn(); - - /** - * Turns the motor off. - */ - void turnMotorOff(); - - /** - * @return true if the motor is on, false otherwise. - */ - boolean isMotorOn(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/ToggleMotor.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/ToggleMotor.java deleted file mode 100644 index 6cfec9d3..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/ToggleMotor.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor; - -/** - * A command that toggles the state of the motor between off and on. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ToggleMotor extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemBinaryMotor subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public ToggleMotor(@NotNull @JsonProperty(required = true) SubsystemBinaryMotor subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("ToggleMotor init.", this.getClass()); - } - - /** - * Toggle the motor state. - */ - @Override - protected void execute() { - if (subsystem.isMotorOn()) { - subsystem.turnMotorOff(); - } else { - subsystem.turnMotorOn(); - } - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("ToggleMotor end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("ToggleMotor Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOff.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOff.java deleted file mode 100644 index 36c4daa9..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOff.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor; - -/** - * Turns off the motor of the specified subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class TurnMotorOff extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - protected final SubsystemBinaryMotor subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public TurnMotorOff(@NotNull @JsonProperty(required = true) SubsystemBinaryMotor subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("TurnMotorOff init.", this.getClass()); - } - - /** - * Turn the motor off. - */ - @Override - protected void execute() { - subsystem.turnMotorOff(); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("TurnMotorOff end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("TurnMotorOff Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOffWithRequires.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOffWithRequires.java deleted file mode 100644 index f05ae9ec..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOffWithRequires.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor; - -/** - * Turns off the motor of the subsystem, but does so while using requires() to interrupt any other commands currently - * controlling the subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class TurnMotorOffWithRequires extends TurnMotorOff { - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public TurnMotorOffWithRequires(@NotNull @JsonProperty(required = true) T subsystem) { - super(subsystem); - requires(subsystem); - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("TurnMotorOffWithRequires init.", this.getClass()); - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("TurnMotorOffWithRequires end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("TurnMotorOffWithRequires Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOn.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOn.java deleted file mode 100644 index 951a83ff..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOn.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor; - -/** - * Turns on the motor of the specified subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class TurnMotorOn extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemBinaryMotor subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public TurnMotorOn(@NotNull @JsonProperty(required = true) SubsystemBinaryMotor subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("TurnMotorOn init.", this.getClass()); - } - - /** - * Turn the motor on. - */ - @Override - protected void execute() { - subsystem.turnMotorOn(); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("TurnMotorOn end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("TurnMotorOn Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/SubsystemConditional.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/SubsystemConditional.java deleted file mode 100644 index c2734d11..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/SubsystemConditional.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.conditional; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable; - -/** - * A subsystem with a condition that's sometimes met, e.g. a limit switch, a current/power limit, an IR sensor. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface SubsystemConditional extends Updatable { - - /** - * @return true if the condition is met, false otherwise - */ - boolean isConditionTrue(); - - /** - * @return true if the condition was met when cached, false otherwise - */ - boolean isConditionTrueCached(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/FlywheelSimple.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/FlywheelSimple.java deleted file mode 100644 index 01c93fe4..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/FlywheelSimple.java +++ /dev/null @@ -1,145 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * A simple flywheel subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class FlywheelSimple extends YamlSubsystem implements SubsystemFlywheel { - - /** - * The motor that controls the flywheel. - */ - @NotNull - private final SimpleMotor shooterMotor; - - /** - * The motor that controls the feeder. - */ - @NotNull - private final SimpleMotor feederMotor; - - /** - * The velocity for the flywheel to run at, on [-1, 1]. - */ - private final double shooterVelocity; - - /** - * The velocity for the feeder to run at, on [-1, 1]. - */ - private final double feederVelocity; - - /** - * Time from giving the flywheel voltage to being ready to fire, in milliseconds. - */ - private final long spinUpTimeMillis; - - /** - * The current state of the flywheel. - */ - @NotNull - private FlywheelState state; - - /** - * Default constructor - * - * @param shooterMotor The motor that controls the flywheel. - * @param feederMotor The motor that controls the feeder. - * @param shooterVelocity The velocity for the flywheel to run at, on [-1, 1]. - * @param feederVelocity The velocity for the feeder to run at, on [-1, 1]. Defaults to 1. - * @param spinUpTimeMillis Time from giving the flywheel voltage to being ready to fire, in milliseconds. Defaults to - * 0. - */ - @JsonCreator - public FlywheelSimple(@NotNull @JsonProperty(required = true) SimpleMotor shooterMotor, - @NotNull @JsonProperty(required = true) SimpleMotor feederMotor, - @JsonProperty(required = true) double shooterVelocity, - @Nullable Double feederVelocity, - long spinUpTimeMillis) { - this.shooterMotor = shooterMotor; - this.feederMotor = feederMotor; - this.shooterVelocity = shooterVelocity; - this.feederVelocity = feederVelocity != null ? feederVelocity : 1; - this.spinUpTimeMillis = spinUpTimeMillis; - this.state = FlywheelState.OFF; - } - - /** - * Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - * the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - * after all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } - - /** - * Turn the flywheel on to a map-specified speed. - */ - @Override - public void turnFlywheelOn() { - shooterMotor.enable(); - shooterMotor.setVelocity(shooterVelocity); - } - - /** - * Turn the flywheel off. - */ - @Override - public void turnFlywheelOff() { - shooterMotor.setVelocity(0); - shooterMotor.disable(); - } - - /** - * Start feeding balls into the flywheel. - */ - @Override - public void turnFeederOn() { - feederMotor.enable(); - feederMotor.setVelocity(feederVelocity); - } - - /** - * Stop feeding balls into the flywheel. - */ - @Override - public void turnFeederOff() { - feederMotor.setVelocity(0); - feederMotor.disable(); - } - - /** - * @return The current state of the flywheel. - */ - @NotNull - @Override - public FlywheelState getFlywheelState() { - return state; - } - - /** - * @param state The state to switch the flywheel to. - */ - @Override - public void setFlywheelState(@NotNull FlywheelState state) { - this.state = state; - } - - /** - * @return Time from giving the flywheel voltage to being ready to fire, in milliseconds. - */ - @Override - public long getSpinUpTimeMillis() { - return spinUpTimeMillis; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.java deleted file mode 100644 index d1162e9b..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.jetbrains.annotations.NotNull; - -/** - * A subsystem with a flywheel and feeder. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface SubsystemFlywheel { - - /** - * Turn the flywheel on to a map-specified speed. - */ - void turnFlywheelOn(); - - /** - * Turn the flywheel off. - */ - void turnFlywheelOff(); - - /** - * Start feeding balls into the flywheel. - */ - void turnFeederOn(); - - /** - * Stop feeding balls into the flywheel. - */ - void turnFeederOff(); - - /** - * @return The current state of the flywheel. - */ - @NotNull - FlywheelState getFlywheelState(); - - /** - * @param state The state to switch the flywheel to. - */ - void setFlywheelState(@NotNull FlywheelState state); - - /** - * @return Time from giving the flywheel voltage to being ready to fire, in milliseconds. - */ - long getSpinUpTimeMillis(); - - /** - * An enum for the possible states of the flywheel. - */ - enum FlywheelState { - //Both flywheel and feeder off - OFF, - //Feeder off, flywheel on - SPINNING_UP, - //Both flywheel and feeder on - SHOOTING - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpFlywheel.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpFlywheel.java deleted file mode 100644 index 23968896..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpFlywheel.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; - -/** - * Turn on the flywheel but not the feeder in order to give the flywheel time to get up to speed. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SpinUpFlywheel extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemFlywheel subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public SpinUpFlywheel(@NotNull @JsonProperty(required = true) SubsystemFlywheel subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SpinUpFlywheel init.", this.getClass()); - } - - /** - * Turn the feeder off and the flywheel on. - */ - @Override - protected void execute() { - subsystem.turnFeederOff(); - subsystem.turnFlywheelOn(); - subsystem.setFlywheelState(SubsystemFlywheel.FlywheelState.SPINNING_UP); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SpinUpFlywheel end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SpinUpFlywheel Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpThenShoot.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpThenShoot.java deleted file mode 100644 index 795321a6..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpThenShoot.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.commands.general.WaitForMillis; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; - -/** - * Spin up the flywheel until it's at the target speed, then start feeding in balls. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SpinUpThenShoot extends YamlCommandGroupWrapper { - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public SpinUpThenShoot(@NotNull @JsonProperty(required = true) SubsystemFlywheel subsystem) { - addSequential(new SpinUpFlywheel(subsystem)); - //Use a wait command here because SpinUpFlywheel is instantaneous. - addSequential(new WaitForMillis(subsystem.getSpinUpTimeMillis())); - addSequential(new TurnAllOn(subsystem)); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/ToggleShooting.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/ToggleShooting.java deleted file mode 100644 index 1ee67ef4..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/ToggleShooting.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; - -/** - * Toggle whether or not the subsystem is firing. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ToggleShooting extends YamlCommandGroupWrapper { - - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public ToggleShooting(@NotNull @JsonProperty(required = true) SubsystemFlywheel subsystem) { - switch (subsystem.getFlywheelState()) { - case OFF: - addSequential(new SpinUpThenShoot(subsystem)); - break; - case SHOOTING: - addSequential(new TurnAllOff(subsystem)); - break; - case SPINNING_UP: - addSequential(new TurnAllOn(subsystem)); - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOff.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOff.java deleted file mode 100644 index dcefc84a..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOff.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; - -/** - * Turn off the flywheel and feeder. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class TurnAllOff extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemFlywheel subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public TurnAllOff(@NotNull @JsonProperty(required = true) SubsystemFlywheel subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("TurnAllOff init.", this.getClass()); - } - - /** - * Turn off the flywheel and feeder. - */ - @Override - protected void execute() { - subsystem.turnFeederOff(); - subsystem.turnFlywheelOff(); - subsystem.setFlywheelState(SubsystemFlywheel.FlywheelState.OFF); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("TurnAllOff end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("TurnAllOff Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOffWithRequires.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOffWithRequires.java deleted file mode 100644 index 774b66f6..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOffWithRequires.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; - -/** - * Turn off the flywheel and feeder, using requires() to interrupt any other commands that may be telling them to - * continue running. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class TurnAllOffWithRequires extends TurnAllOff { - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public TurnAllOffWithRequires(@NotNull @JsonProperty(required = true) T subsystem) { - super(subsystem); - requires(subsystem); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOn.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOn.java deleted file mode 100644 index e8462b92..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOn.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel; - -/** - * Turn on the flywheel and the feeder. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class TurnAllOn extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemFlywheel subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public TurnAllOn(@NotNull @JsonProperty(required = true) SubsystemFlywheel subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("TurnAllOn init.", this.getClass()); - } - - /** - * Turn on the flywheel and feeder. - */ - @Override - protected void execute() { - subsystem.turnFeederOn(); - subsystem.turnFlywheelOn(); - subsystem.setFlywheelState(SubsystemFlywheel.FlywheelState.SHOOTING); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("TurnAllOn end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("TurnAllOn Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/IntakeSimple.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/IntakeSimple.java deleted file mode 100644 index defbc7ad..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/IntakeSimple.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.intake; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * A simple intake subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class IntakeSimple extends YamlSubsystem implements SubsystemIntake { - - /** - * The motor this subsystem controls. - */ - @NotNull - private final SimpleMotor motor; - - /** - * The velocities for the motor to go at for each of the modes, on [-1, 1]. Can be null to indicate that this intake - * doesn't have/use that mode. - */ - @Nullable - private final Double inSlowVel; - @Nullable - private final Double inFastVel; - @Nullable - private final Double outSlowVel; - @Nullable - private final Double outFastVel; - - /** - * The current mode. - */ - @NotNull - private IntakeMode mode; - - /** - * Default constructor - * - * @param motor The motor this subsystem controls. - * @param inSlowVel The velocity for the motor to go at for the IN_SLOW {@link SubsystemIntake.IntakeMode}, on [-1, - * 1]. Can be null to indicate that this intake doesn't have/use IN_SLOW. - * @param inFastVel The velocity for the motor to go at for the IN_FAST {@link SubsystemIntake.IntakeMode}, on [-1, - * 1]. Can be null to indicate that this intake doesn't have/use IN_FAST. - * @param outSlowVel The velocity for the motor to go at for the OUT_SLOW {@link SubsystemIntake.IntakeMode}, on - * [-1, 1]. Can be null to indicate that this intake doesn't have/use OUT_SLOW. - * @param outFastVel The velocity for the motor to go at for the OUT_FAST {@link SubsystemIntake.IntakeMode}, on - * [-1, 1]. Can be null to indicate that this intake doesn't have/use OUT_FAST. - */ - @JsonCreator - public IntakeSimple(@JsonProperty(required = true) @NotNull SimpleMotor motor, - @Nullable Double inSlowVel, - @Nullable Double inFastVel, - @Nullable Double outSlowVel, - @Nullable Double outFastVel) { - this.motor = motor; - this.inSlowVel = inSlowVel; - this.inFastVel = inFastVel; - this.outSlowVel = outSlowVel; - this.outFastVel = outFastVel; - this.mode = IntakeMode.OFF; - } - - /** - * Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - * the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - * after all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } - - /** - * @return the current mode of the intake. - */ - @NotNull - @Override - public IntakeMode getMode() { - return mode; - } - - /** - * @param mode The mode to switch the intake to. - */ - @Override - public void setMode(@NotNull IntakeMode mode) { - switch (mode) { - case OFF: - motor.setVelocity(0); - motor.disable(); - this.mode = IntakeMode.OFF; - break; - case IN_FAST: - if (inFastVel != null) { - motor.enable(); - motor.setVelocity(inFastVel); - this.mode = IntakeMode.IN_FAST; - } - break; - case IN_SLOW: - if (inSlowVel != null) { - motor.enable(); - motor.setVelocity(inSlowVel); - this.mode = IntakeMode.IN_SLOW; - } - break; - case OUT_FAST: - if (outFastVel != null) { - motor.enable(); - motor.setVelocity(outFastVel); - this.mode = IntakeMode.OUT_FAST; - } - break; - case OUT_SLOW: - if (outSlowVel != null) { - motor.enable(); - motor.setVelocity(outSlowVel); - this.mode = IntakeMode.OUT_SLOW; - } - break; - } - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.java deleted file mode 100644 index 1b9f5af8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.intake; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.jetbrains.annotations.NotNull; - -/** - * A subsystem used for intaking and possibly ejecting game pieces. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface SubsystemIntake { - - /** - * @return the current mode of the intake. - */ - @NotNull - IntakeMode getMode(); - - /** - * @param mode The mode to switch the intake to. - */ - void setMode(@NotNull IntakeMode mode); - - /** - * An enum for the possible states of the intake. - */ - enum IntakeMode { - OFF, IN_SLOW, IN_FAST, OUT_SLOW, OUT_FAST - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/SetIntakeMode.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/SetIntakeMode.java deleted file mode 100644 index 64473e8c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/SetIntakeMode.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake; - -/** - * Sets the mode of the intake. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SetIntakeMode extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemIntake subsystem; - - /** - * The mode to set this subsystem to. - */ - @NotNull - private final SubsystemIntake.IntakeMode mode; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - * @param mode The mode to set the intake to. - */ - @JsonCreator - public SetIntakeMode(@NotNull @JsonProperty(required = true) SubsystemIntake subsystem, - @NotNull @JsonProperty(required = true) SubsystemIntake.IntakeMode mode) { - this.subsystem = subsystem; - this.mode = mode; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SetIntakeMode init.", this.getClass()); - } - - /** - * Set the intake to the given mode. - */ - @Override - protected void execute() { - subsystem.setMode(mode); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SetIntakeMode end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SetIntakeMode Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/ToggleIntaking.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/ToggleIntaking.java deleted file mode 100644 index 0e6018a2..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/ToggleIntaking.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake; - -/** - * Toggles whether the subsystem is off or set to a given mode. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ToggleIntaking extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemIntake subsystem; - - /** - * The mode to set this subsystem to if it's currently off. - */ - @NotNull - private final SubsystemIntake.IntakeMode mode; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - * @param mode The mode to set this subsystem to if it's currently off. - */ - @JsonCreator - public ToggleIntaking(@NotNull @JsonProperty(required = true) SubsystemIntake subsystem, - @NotNull @JsonProperty(required = true) SubsystemIntake.IntakeMode mode) { - this.subsystem = subsystem; - this.mode = mode; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SetIntakeMode init.", this.getClass()); - } - - /** - * Set the subsystem to the specified mode if it's off, and set it to off otherwise. - */ - @Override - protected void execute() { - if (subsystem.getMode() == SubsystemIntake.IntakeMode.OFF) { - subsystem.setMode(mode); - } else { - subsystem.setMode(SubsystemIntake.IntakeMode.OFF); - } - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SetIntakeMode end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SetIntakeMode Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/SubsystemMP.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/SubsystemMP.java deleted file mode 100644 index 3488b408..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/SubsystemMP.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.other.MotionProfileData; - -/** - * A subsystem that can have motion profiles run on it. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface SubsystemMP { - - /** - * Loads a profile into the MP buffer. - * - * @param profile The profile to be loaded. - */ - void loadMotionProfile(@NotNull MotionProfileData profile); - - /** - * Start running the profile that's currently loaded into the MP buffer. - */ - void startRunningLoadedProfile(); - - /** - * Get whether this subsystem has finished running the profile loaded in it. - * - * @return true if there's no profile loaded and no profile running, false otherwise. - */ - boolean profileFinished(); - - /** - * Disable the motors. - */ - void disable(); - - /** - * Hold the current position. - */ - void holdPosition(); - - /** - * Get whether the subsystem is ready to run the loaded profile. - * - * @return true if a profile is loaded and ready to run, false otherwise. - */ - boolean readyToRunProfile(); - - /** - * Stops any MP-related threads currently running. Normally called at the start of teleop. - */ - void stopMPProcesses(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/SubsystemMPTwoSides.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/SubsystemMPTwoSides.java deleted file mode 100644 index 57af3360..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/SubsystemMPTwoSides.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.other.MotionProfileData; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP; - -/** - * An MP subsystem with two sides that therefore needs two profiles at a time. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface SubsystemMPTwoSides extends SubsystemMP { - - /** - * Loads given profiles into the left and right sides of the drive. - * - * @param left The profile to load into the left side. - * @param right The profile to load into the right side. - */ - void loadMotionProfile(@NotNull MotionProfileData left, @NotNull MotionProfileData right); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/LoadProfileTwoSides.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/LoadProfileTwoSides.java deleted file mode 100644 index 8a4e8db6..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/LoadProfileTwoSides.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.other.MotionProfileData; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.SubsystemMPTwoSides; - -/** - * Loads the given profiles into the subsystem, but doesn't run it. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class LoadProfileTwoSides extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemMPTwoSides subsystem; - - /** - * The motion profiles for the left and right sides to execute, respectively. - */ - @NotNull - private final MotionProfileData left, right; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - * @param left The profile for the left side to run. - * @param right The profile for the right side to run. - */ - @JsonCreator - public LoadProfileTwoSides(@NotNull @JsonProperty(required = true) SubsystemMPTwoSides subsystem, - @NotNull @JsonProperty(required = true) MotionProfileData left, - @NotNull @JsonProperty(required = true) MotionProfileData right) { - this.subsystem = subsystem; - this.left = left; - this.right = right; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("LoadProfileTwoSides init.", this.getClass()); - } - - /** - * Load the profiles. - */ - @Override - protected void execute() { - subsystem.loadMotionProfile(left, right); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("LoadProfileTwoSides end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("LoadProfileTwoSides Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/RunProfileTwoSides.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/RunProfileTwoSides.java deleted file mode 100644 index caf467f5..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/RunProfileTwoSides.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.MotionProfileData; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.SubsystemMPTwoSides; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile; - -/** - * Loads and runs the given profiles into the given subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class RunProfileTwoSides extends YamlCommandGroupWrapper { - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on. - * @param left The motion profile for the left side to load and execute. - * @param right The motion profile for the right side to load and execute. - * @param timeout The maximum amount of time this command is allowed to take, in seconds. - */ - @JsonCreator - public RunProfileTwoSides(@NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) MotionProfileData left, - @NotNull @JsonProperty(required = true) MotionProfileData right, - @JsonProperty(required = true) double timeout) { - addParallel(new LoadProfileTwoSides(subsystem, left, right)); - addParallel(new RunLoadedProfile<>(subsystem, timeout, true)); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/LoadProfile.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/LoadProfile.java deleted file mode 100644 index b36325b0..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/LoadProfile.java +++ /dev/null @@ -1,85 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.other.MotionProfileData; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP; - -/** - * Loads the given profile into the subsystem, but doesn't run it. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class LoadProfile extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemMP subsystem; - - /** - * The profile to execute. - */ - @NotNull - private final MotionProfileData profile; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - * @param profile The profile to run. - */ - @JsonCreator - public LoadProfile(@NotNull @JsonProperty(required = true) SubsystemMP subsystem, - @NotNull @JsonProperty(required = true) MotionProfileData profile) { - this.subsystem = subsystem; - this.profile = profile; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("LoadProfile init.", this.getClass()); - } - - /** - * Load the profile. - */ - @Override - protected void execute() { - subsystem.loadMotionProfile(profile); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("LoadProfile end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("LoadProfile Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunLoadedProfile.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunLoadedProfile.java deleted file mode 100644 index 78da9e65..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunLoadedProfile.java +++ /dev/null @@ -1,118 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Clock; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP; - -/** - * Runs the command that is currently loaded in the given subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class RunLoadedProfile extends YamlCommandWrapper { - - /** - * The amount of time this command is allowed to run for, in milliseconds. - */ - private final long timeout; - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemMP subsystem; - - /** - * The time this command started running at. - */ - private long startTime; - - /** - * Whether we're running a profile or waiting for the bottom-level buffer to fill. - */ - private boolean runningProfile; - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on. - * @param timeout The max amount of time this subsystem is allowed to run for, in seconds. - * @param require Whether or not to require the subsystem this command is running on. - */ - @JsonCreator - public RunLoadedProfile(@NotNull @JsonProperty(required = true) T subsystem, - @JsonProperty(required = true) double timeout, - @JsonProperty(required = true) boolean require) { - this.subsystem = subsystem; - //Require if specified. - if (require) { - requires(subsystem); - } - - //Convert to milliseconds. - this.timeout = (long) (timeout * 1000.); - - runningProfile = false; - } - - /** - * Record the start time. - */ - @Override - protected void initialize() { - //Record the start time. - startTime = Clock.currentTimeMillis(); - Logger.addEvent("RunLoadedProfile init", this.getClass()); - runningProfile = false; - } - - /** - * If the subsystem is ready to start running the profile and it's not running yet, start running it. - */ - @Override - protected void execute() { - if (subsystem.readyToRunProfile() && !runningProfile) { - subsystem.startRunningLoadedProfile(); - runningProfile = true; - } - } - - /** - * Finish when the profile finishes or the timeout is reached. - * - * @return true if the profile is finished or the timeout has been exceeded, false otherwise. - */ - @Override - protected boolean isFinished() { - if (Clock.currentTimeMillis() - startTime > timeout) { - Logger.addEvent("Command timed out", this.getClass()); - System.out.println("RunLoadedProfile timed out!"); - return true; - } - return runningProfile && subsystem.profileFinished(); - } - - /** - * Hold position and log on exit. - */ - @Override - protected void end() { - subsystem.holdPosition(); - Logger.addEvent("RunLoadedProfile end.", this.getClass()); - } - - /** - * Disable and log if interrupted. - */ - @Override - protected void interrupted() { - subsystem.disable(); - Logger.addEvent("RunLoadedProfile interrupted!", this.getClass()); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunProfile.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunProfile.java deleted file mode 100644 index aab22d5d..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunProfile.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.MotionProfileData; -import org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.SubsystemMPTwoSides; - -/** - * Loads and runs the given profile into the given subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class RunProfile extends YamlCommandGroupWrapper { - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on. - * @param profile The motion profile to load and execute. - * @param timeout The maximum amount of time this command is allowed to take, in seconds. - */ - @JsonCreator - public RunProfile(@NotNull @JsonProperty(required = true) T subsystem, - @NotNull @JsonProperty(required = true) MotionProfileData profile, - @JsonProperty(required = true) double timeout) { - addSequential(new LoadProfile(subsystem, profile)); - addSequential(new RunLoadedProfile<>(subsystem, timeout, true)); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SolenoidSimple.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SolenoidSimple.java deleted file mode 100644 index 9aa9c8c4..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SolenoidSimple.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedDoubleSolenoid; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * A simple SubsystemSolenoid. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SolenoidSimple extends YamlSubsystem implements SubsystemSolenoid { - - /** - * Piston for pushing gears - */ - @NotNull - private final DoubleSolenoid piston; - - /** - * The piston's current position - */ - private DoubleSolenoid.Value pistonPos; - - /** - * Default constructor - * - * @param piston The piston that comprises this subsystem. - */ - @JsonCreator - public SolenoidSimple(@NotNull @JsonProperty(required = true) MappedDoubleSolenoid piston) { - this.piston = piston; - } - - /** - * @param value The position to set the solenoid to. - */ - public void setSolenoid(@NotNull DoubleSolenoid.Value value) { - piston.set(value); - pistonPos = value; - } - - /** - * @return the current position of the solenoid. - */ - @NotNull - @Override - public DoubleSolenoid.Value getSolenoidPosition() { - return pistonPos; - } - - /** - * Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - * the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - * after all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SubsystemSolenoid.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SubsystemSolenoid.java deleted file mode 100644 index 3e858292..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SubsystemSolenoid.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import org.jetbrains.annotations.NotNull; - -/** - * A subsystem with a single DoubleSolenoid piston. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface SubsystemSolenoid { - - /** - * @param value The position to set the solenoid to. - */ - void setSolenoid(@NotNull DoubleSolenoid.Value value); - - /** - * @return the current position of the solenoid. - */ - @NotNull - DoubleSolenoid.Value getSolenoidPosition(); -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidForward.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidForward.java deleted file mode 100644 index d011f11c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidForward.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid; - -/** - * A command that extends a piston. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SolenoidForward extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemSolenoid subsystem; - - /** - * Default constructor - * - * @param subsystem The solenoid subsystem to execute this command on. - */ - @JsonCreator - public SolenoidForward(@NotNull @JsonProperty(required = true) SubsystemSolenoid subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SolenoidForward init.", this.getClass()); - } - - /** - * Extend the piston. - */ - @Override - protected void execute() { - subsystem.setSolenoid(DoubleSolenoid.Value.kForward); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SolenoidForward end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SolenoidForward Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidOff.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidOff.java deleted file mode 100644 index ab216ac5..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidOff.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid; - -/** - * A command that extends a piston. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SolenoidOff extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemSolenoid subsystem; - - /** - * Default constructor - * - * @param subsystem The solenoid subsystem to execute this command on. - */ - @JsonCreator - public SolenoidOff(@NotNull @JsonProperty(required = true) SubsystemSolenoid subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SolenoidOff init.", this.getClass()); - } - - /** - * Extend the piston. - */ - @Override - protected void execute() { - subsystem.setSolenoid(DoubleSolenoid.Value.kOff); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SolenoidOff end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SolenoidOff Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidReverse.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidReverse.java deleted file mode 100644 index 054c9364..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidReverse.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid; - -/** - * A command that contracts a piston. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class SolenoidReverse extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemSolenoid subsystem; - - /** - * Default constructor - * - * @param subsystem The solenoid subsystem to execute this command on. - */ - @JsonCreator - public SolenoidReverse(@NotNull @JsonProperty(required = true) SubsystemSolenoid subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("SolenoidForward init.", this.getClass()); - } - - /** - * Retract the piston. - */ - @Override - protected void execute() { - subsystem.setSolenoid(DoubleSolenoid.Value.kReverse); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("SolenoidForward end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("SolenoidForward Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/ToggleSolenoid.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/ToggleSolenoid.java deleted file mode 100644 index 2ddc00fa..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/ToggleSolenoid.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.DoubleSolenoid; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid; - -/** - * A command that toggles the position of a piston. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ToggleSolenoid extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final SubsystemSolenoid subsystem; - - /** - * Default constructor - * - * @param subsystem The solenoid subsystem to execute this command on. - */ - @JsonCreator - public ToggleSolenoid(@NotNull @JsonProperty(required = true) SubsystemSolenoid subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("ToggleSolenoid init.", this.getClass()); - } - - /** - * Toggle the state of the piston. - */ - @Override - protected void execute() { - if (subsystem.getSolenoidPosition().equals(DoubleSolenoid.Value.kForward)) { - subsystem.setSolenoid(DoubleSolenoid.Value.kReverse); - } else { - subsystem.setSolenoid(DoubleSolenoid.Value.kForward); - } - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("ToggleSolenoid end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("ToggleSolenoid Interrupted!", this.getClass()); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/CameraNetwork.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/CameraNetwork.java deleted file mode 100644 index 45b80c2c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/CameraNetwork.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.cscore.MjpegServer; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.MappedUsbCamera; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; -import org.usfirst.frc.team449.robot.other.Logger; - -import java.util.List; - -/** - * Subsystem to initialize cameras and put video on SmartDashboard. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class CameraNetwork extends YamlSubsystem { - - /** - * Video server to view on SmartDashboard. - */ - @NotNull - private final MjpegServer server; - - /** - * List of cameras used on the robot. - */ - @NotNull - private final List cameras; - - /** - * Camera currently being streamed from. - */ - private int camNum; - - /** - * Default constructor - * - * @param serverPort The port of the {@link MjpegServer} this subsystem uses. - * @param serverName The human-friendly name of the {@link MjpegServer} this subsystem uses. - * @param cameras The cameras this subsystem controls. - */ - @JsonCreator - public CameraNetwork(@JsonProperty(required = true) int serverPort, - @NotNull @JsonProperty(required = true) String serverName, - @NotNull @JsonProperty(required = true) List cameras) { - //Logging - Logger.addEvent("CameraSubsystem construct start", this.getClass()); - Logger.addEvent("Set URL of MJPGServer to \"http://roboRIO-449-frc.local:" + serverPort + - "/stream.mjpg\"", this.getClass()); - - //Instantiates server - server = new MjpegServer(serverName, serverPort); - - //Instantiates cameras - this.cameras = cameras; - - //Starts streaming video from first camera, marks that via camNum - server.setSource(cameras.get(0)); - camNum = 0; - - //Logging - Logger.addEvent("CameraSubsystem construct end", this.getClass()); - } - - /** - * Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - * the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - * after all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } - - /** - * @return Video server to view on SmartDashboard. - */ - @NotNull - public MjpegServer getServer() { - return server; - } - - /** - * @return List of cameras used on the robot. - */ - @NotNull - public List getCameras() { - return cameras; - } - - /** - * @return The index of the active camera in the list of cameras. - */ - public int getCamNum() { - return camNum; - } - - /** - * @param camNum The index of the camera to make active in the list of cameras. - */ - public void setCamNum(int camNum) { - this.camNum = camNum; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/ChangeCam.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/ChangeCam.java deleted file mode 100644 index 3badaf6c..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/ChangeCam.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork; - -/** - * Toggles camera on button press. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class ChangeCam extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on - */ - @NotNull - private final CameraNetwork subsystem; - - /** - * Default constructor. - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public ChangeCam(@NotNull @JsonProperty(required = true) CameraNetwork subsystem) { - this.subsystem = subsystem; - requires(subsystem); - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("ChangeCam init", this.getClass()); - } - - /** - * Switch the MjpegServer to use the next camera in the list - */ - @Override - protected void execute() { - //Switches camNum to next camera, if applicable - if (subsystem.getCameras().size() == 1) { - Logger.addEvent("You're trying to switch cameras, but your robot only has one camera!", this.getClass()); - } else { - subsystem.setCamNum((subsystem.getCamNum() + 1) % subsystem.getCameras().size()); - } - - //Switches to set camera - subsystem.getServer().setSource(subsystem.getCameras().get(subsystem.getCamNum())); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("ChangeCam end", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("ChangeCam interrupted!", this.getClass()); - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/Pneumatics.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/Pneumatics.java deleted file mode 100644 index 2bbe0a71..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/Pneumatics.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import edu.wpi.first.wpilibj.Compressor; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable; -import org.usfirst.frc.team449.robot.jacksonWrappers.PressureSensor; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * A subsystem representing the pneumatics control system (e.g. the compressor and maybe a pressure sensor) - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class Pneumatics extends YamlSubsystem implements Loggable { - - /** - * The compressor that provides pressure to the robot's pneumatics. - */ - @NotNull - private final Compressor compressor; - - /** - * The pressure sensor that reads the pneumatic pressure. - */ - @Nullable - private final PressureSensor pressureSensor; - - /** - * Default constructor - * - * @param nodeID The node ID of the compressor. - * @param pressureSensor The pressure sensor attached to this pneumatics system. Can be null. - */ - @JsonCreator - public Pneumatics(@JsonProperty(required = true) int nodeID, - @Nullable PressureSensor pressureSensor) { - compressor = new Compressor(nodeID); - this.pressureSensor = pressureSensor; - } - - /** - * Do nothing. - */ - @Override - public void initDefaultCommand() { - //Do Nothing - } - - /** - * Start up the compressor in closed loop control mode. - */ - public void startCompressor() { - compressor.setClosedLoopControl(true); - compressor.start(); - } - - /** - * Get the headers for the data this subsystem logs every loop. - * - * @return An N-length array of String labels for data, where N is the length of the Object[] returned by getData(). - */ - @NotNull - @Override - public String[] getHeader() { - return new String[]{"pressure"}; - } - - /** - * Get the data this subsystem logs every loop. - * - * @return An N-length array of Objects, where N is the number of labels given by getHeader. - */ - @NotNull - @Override - public Object[] getData() { - if (pressureSensor == null) { - return new Object[]{"N/A"}; - } else { - return new Object[]{pressureSensor.getPressure()}; - } - } - - /** - * Get the name of this object. - * - * @return A string that will identify this object in the log file. - */ - @NotNull - @Override - public String getName() { - return "pneumatics"; - } -} diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/StartCompressor.java b/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/StartCompressor.java deleted file mode 100644 index b495dee8..00000000 --- a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/StartCompressor.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; -import org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics; - -/** - * Start up the pneumatic compressor. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class StartCompressor extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final Pneumatics subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public StartCompressor(@NotNull @JsonProperty(required = true) Pneumatics subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("StartCompressor init.", this.getClass()); - } - - /** - * Start the compressor. - */ - @Override - protected void execute() { - subsystem.startCompressor(); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("StartCompressor end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("StartCompressor Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/RoboRIO/src/main/resources/calciferLeftBlueBackupProfile.csv b/RoboRIO/src/main/resources/calciferLeftBlueBackupProfile.csv deleted file mode 100644 index 9e49c7f5..00000000 --- a/RoboRIO/src/main/resources/calciferLeftBlueBackupProfile.csv +++ /dev/null @@ -1,49 +0,0 @@ -48 -5.227250022608844E-4, 0.020909000090435375, 0.41818000180870746, 0.05 -0.0023454064609125854, 0.03645362917303402, 0.31089258165197287, 0.05 -0.006451335591911353, 0.08211858261997534, 0.9132990689388265, 0.05 -0.013767472257941222, 0.14632273332059736, 1.2840830140124404, 0.05 -0.025241613574952037, 0.2294828263402163, 1.6632018603923786, 0.05 -0.0418553796467967, 0.33227532143689326, 2.055849901933539, 0.05 -0.06464003174297048, 0.45569304192347565, 2.468354409731648, 0.05 -0.09469480172644233, 0.601095399669437, 2.9080471549192275, 0.05 -0.1332074081600263, 0.7702521286716791, 3.383134580044842, 0.05 -0.18147657729001396, 0.965383382599753, 3.902625078561477, 0.05 -0.2404406855302663, 1.1792821648050467, 4.277975644105873, 0.05 -0.31065069171082, 1.4042001236110742, 4.49835917612055, 0.05 -0.3927437715777452, 1.6418615973385038, 4.753229474548593, 0.05 -0.4874499975425362, 1.8941245192958196, 5.045258439146316, 0.05 -0.5950581139051417, 2.1521623272521113, 5.160756159125834, 0.05 -0.7153540535348383, 2.40591879259393, 5.07512930683637, 0.05 -0.8481273667100422, 2.655466263504078, 4.990949418202968, 0.05 -0.9931735331474119, 2.900923328747392, 4.909141304866278, 0.05 -1.1502924337050309, 3.1423780111523802, 4.829093648099763, 0.05 -1.3192736926504234, 3.379625178907851, 4.744943355109417, 0.05 -1.4998565316137857, 3.6116567792672476, 4.64063200718793, 0.05 -1.6916494090923582, 3.835857549571447, 4.484015406083985, 0.05 -1.8939964852865554, 4.0469415238839455, 4.221679486249972, 0.05 -2.1050265019648475, 4.220600333565846, 3.4731761936380146, 0.05 -2.3220908512364353, 4.341286985431754, 2.41373303731816, 0.05 -2.542464445259929, 4.407471880469876, 1.3236979007624328, 0.05 -2.762688113645886, 4.404473367719135, -0.05997025501482511, 0.05 -2.9788317905830777, 4.322873538743837, -1.6319965795059588, 0.05 -3.1869227096726442, 4.161818381791327, -3.2211031390501965, 0.05 -3.3833823557902156, 3.929192922351427, -4.652509188798, 0.05 -3.565309805743528, 3.638548999066251, -5.812878465703513, 0.05 -3.7305454088039185, 3.304712061207814, -6.6767387571687475, 0.05 -3.8775596078692334, 2.9402839813062984, -7.288561598030308, 0.05 -4.0060475444395145, 2.569758731405628, -7.410504998013412, 0.05 -4.116681535994646, 2.212679831102628, -7.141578006059994, 0.05 -4.2101534706927835, 1.8694386939627594, -6.864822742797374, 0.05 -4.287094483589678, 1.538820257937898, -6.612368720497228, 0.05 -4.348789153451391, 1.2338933972342632, -6.098537214072697, 0.05 -4.397143368340726, 0.9670842977866958, -5.336181988951347, 0.05 -4.433938830184443, 0.7359092368743492, -4.623501218246933, 0.05 -4.46085518758187, 0.5383271479485249, -3.951641778516486, 0.05 -4.479496530208541, 0.3728268525334408, -3.3100059083016817, 0.05 -4.491413605561772, 0.23834150706461005, -2.6897069093766146, 0.05 -4.4981217735861785, 0.13416336048813954, -2.08356293152941, 0.05 -4.501114983083293, 0.05986418994229283, -1.4859834109169339, 0.05 -4.501876056532617, 0.015221468986477088, -0.8928544191163148, 0.05 -4.501883477123802, 1.4841182369525153E-4, -0.3014611432556367, 0.05 -4.501883477123802, 0.0, -0.0029682364739050306, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftBlueBoilerToLoadingProfile.csv b/RoboRIO/src/main/resources/calciferLeftBlueBoilerToLoadingProfile.csv deleted file mode 100644 index 6763d63a..00000000 --- a/RoboRIO/src/main/resources/calciferLeftBlueBoilerToLoadingProfile.csv +++ /dev/null @@ -1,152 +0,0 @@ -151 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002717391304347822, 0.04347826086956514, 0.4347826086956506, 0.05 -0.007608695652173897, 0.09782608695652148, 1.0869565217391268, 0.05 -0.016304347826086918, 0.17391304347826042, 1.5217391304347787, 0.05 -0.029891304347826463, 0.27173913043479087, 1.956521739130609, 0.05 -0.04945652173913161, 0.391304347826103, 2.391304347826243, 0.05 -0.07608695652174138, 0.5326086956521955, 2.8260869565218494, 0.05 -0.11086956521739495, 0.6956521739130713, 3.260869565217517, 0.05 -0.15489130434783155, 0.8804347826087319, 3.695652173913211, 0.05 -0.20923913043477188, 1.0869565217388066, 4.130434782601495, 0.05 -0.27445652173909973, 1.304347826086557, 4.347826086955009, 0.05 -0.350543478260842, 1.5217391304348449, 4.347826086965756, 0.05 -0.4375000000000061, 1.7391304347832826, 4.3478260869687535, 0.05 -0.5353260869565658, 1.956521739131194, 4.347826086958229, 0.05 -0.6440217391304945, 2.1739130434785747, 4.347826086947615, 0.05 -0.7635869565216794, 2.3913043478236973, 4.347826086902451, 0.05 -0.8940217391302444, 2.6086956521713, 4.347826086952056, 0.05 -1.0353260869561902, 2.826086956518914, 4.347826086952278, 0.05 -1.1874999999995164, 3.0434782608665234, 4.347826086952189, 0.05 -1.350543478260223, 3.260869565214133, 4.347826086952189, 0.05 -1.5244565217383097, 3.4782608695617334, 4.347826086952011, 0.05 -1.709239130433777, 3.6956521739093473, 4.347826086952278, 0.05 -1.904891304346625, 3.9130434782569568, 4.347826086952189, 0.05 -2.1108695652159843, 4.119565217387184, 4.130434782604553, 0.05 -2.3260869565201174, 4.304347826082662, 3.695652173909547, 0.05 -2.5494565217375595, 4.467391304348842, 3.2608695653236097, 0.05 -2.779891304347304, 4.608695652194887, 2.8260869569209035, 0.05 -3.016304347826641, 4.7282608695867445, 2.391304347837142, 0.05 -3.257608695653826, 4.826086956543696, 1.9565217391390277, 0.05 -3.5027173913071152, 4.902173913065786, 1.5217391304418015, 0.05 -3.7505434782647646, 4.956521739152988, 1.0869565217440424, 0.05 -4.000000000005031, 4.989130434805329, 0.6521739130468163, 0.05 -4.2500000000061675, 5.000000000022737, 0.217391304348169, 0.05 -4.500000000007306, 5.000000000022773, 7.105427357601002E-13, 0.05 -4.750000000008443, 5.000000000022737, -7.105427357601002E-13, 0.05 -5.000000000009582, 5.000000000022773, 7.105427357601002E-13, 0.05 -5.276969549562218, 5.539390991052737, 10.787819820599278, 0.05 -5.555614393286303, 5.572896874481703, 0.6701176685793264, 0.05 -5.835626077238715, 5.600233679048246, 0.5467360913308639, 0.05 -6.117024137326496, 5.627961201755602, 0.5545504541471225, 0.05 -6.399813044312992, 5.655778139729935, 0.5563387594866498, 0.05 -6.683978844427567, 5.683316002291488, 0.5507572512310688, 0.05 -6.9694858004734055, 5.710139120916782, 0.536462372505877, 0.05 -7.256273251727427, 5.735749025080415, 0.5121980832726614, 0.05 -7.544253008105114, 5.759595127553745, 0.47692204946660155, 0.05 -7.8333076334011125, 5.7810925059199665, 0.4299475673244224, 0.05 -8.123289964884789, 5.799646629673514, 0.37108247507095626, 0.05 -8.414024189225538, 5.8146844868149925, 0.3007571428295641, 0.05 -8.705308664811087, 5.825689511710981, 0.22010049791976627, 0.05 -8.996920527222738, 5.832237248233031, 0.13095473044099748, 0.05 -9.288621898830993, 5.834027432165106, 0.03580367864151057, 0.05 -9.580167303239445, 5.830908088169064, -0.062386879920843796, 0.05 -9.871311721621291, 5.82288836763693, -0.160394410642688, 0.05 -10.161818617714868, 5.810137921871554, -0.25500891530750636, 0.05 -10.451467267598884, 5.792972997680319, -0.3432984838247144, 0.05 -10.74005883215077, 5.771831291037734, -0.42283413285169047, 0.05 -11.027420791285063, 5.747239182685841, -0.4918421670378592, 0.05 -11.313409574984245, 5.719775673983648, -0.5492701740438655, 0.05 -11.597911435945631, 5.6900372192277375, -0.5947690951182061, 0.05 -11.880841775782086, 5.658606796729072, -0.6286084499733136, 0.05 -12.162143244301902, 5.6260293703963, -0.6515485266554322, 0.05 -12.441782973496798, 5.592794583897911, -0.6646957299677858, 0.05 -12.719749301343775, 5.559326556939552, -0.6693605391671831, 0.05 -12.99604829071052, 5.525979787334925, -0.6669353920925403, 0.05 -13.270700286518585, 5.4930399161612815, -0.6587974234728655, 0.05 -13.543736682863043, 5.4607279268891835, -0.6462397854419599, 0.05 -13.815197009397552, 5.4292065306901645, -0.6304279239803812, 0.05 -14.085126388030284, 5.3985875726546295, -0.6123791607106988, 0.05 -14.353573378091209, 5.368939801218498, -0.5929554287226324, 0.05 -14.620588193909573, 5.340296316367255, -0.5728696970248492, 0.05 -14.88622126363381, 5.312661394484762, -0.5526984376498767, 0.05 -15.150522089775654, 5.286016522836865, -0.5328974329579239, 0.05 -15.41353836722997, 5.260325549086332, -0.5138194750106706, 0.05 -15.675315315415618, 5.2355389637129806, -0.49573170746702644, 0.05 -15.935895186657792, 5.211597424843459, -0.47883077739042434, 0.05 -16.19531691231783, 5.188434513200733, -0.4632582328545354, 0.05 -16.45361585876103, 5.165978928863997, -0.4491116867347067, 0.05 -16.71082366545245, 5.144156133828349, -0.43645590071296425, 0.05 -16.96696814505646, 5.122889592080235, -0.4253308349622742, 0.05 -17.22207322708511, 5.102101640573051, -0.41575903014368976, 0.05 -17.476158932030717, 5.081714098912083, -0.40775083321936023, 0.05 -17.729241364503117, 5.061648649448025, -0.401308989281155, 0.05 -17.98133271674417, 5.041827044821057, -0.3964320925393672, 0.05 -18.23244127694146, 5.022171203945865, -0.393116817503838, 0.05 -18.482571437265072, 5.00260320647221, -0.3913599494731024, 0.05 -18.731723698727812, 4.983045229254783, -0.39115954434853606, 0.05 -18.979894671616364, 4.963419457771025, -0.3925154296751643, 0.05 -19.227077071097682, 4.94364798962637, -0.3954293628931005, 0.05 -19.47325970925166, 4.92365276307954, -0.39990453093659895, 0.05 -19.718427486067895, 4.903355536324668, -0.40594453509744, 0.05 -19.962561383353886, 4.88267794571982, -0.413551812096955, 0.05 -20.20563846734464, 4.8615416798151125, -0.42272531809414815, 0.05 -20.447631908341734, 4.839868819941815, -0.4334571974659518, 0.05 -20.688511026834124, 4.817582369847813, -0.4457290018800464, 0.05 -20.928241379354144, 4.7946070504003835, -0.45950638894858287, 0.05 -21.166784901708922, 4.770870447095585, -0.47473206609597085, 0.05 -21.40410012798889, 4.74630452559934, -0.49131842992489183, 0.05 -21.64014251152143, 4.720847670650741, -0.5091370989719834, 0.05 -21.874864876215497, 4.694447293881386, -0.5280075353871005, 0.05 -22.10821803382322, 4.667063152154493, -0.5476828345378593, 0.05 -22.340151603832872, 4.638671400193, -0.5678350392298626, 0.05 -22.570615080914905, 4.60926954164066, -0.5880371710468069, 0.05 -22.799559192308042, 4.57888222786276, -0.6077462755579965, 0.05 -23.02693758649129, 4.547567883664967, -0.62628688395586, 0.05 -23.252708889805, 4.5154260662741725, -0.6428363478158872, 0.05 -23.47683914889965, 4.482605181893016, -0.6564176876231365, 0.05 -23.699304652954755, 4.449310081102087, -0.6659020158185669, 0.05 -23.920095096584227, 4.415808872589413, -0.6700241702534804, 0.05 -24.139216986596235, 4.3824378002401625, -0.667421446985017, 0.05 -24.35669714198429, 4.349603107761105, -0.6566938495811492, 0.05 -24.572586061177986, 4.317778383873894, -0.6364944777442183, 0.05 -24.78696086557763, 4.28749608799287, -0.6056459176204854, 0.05 -24.999927474906865, 4.2593321865847065, -0.5632780281632677, 0.05 -25.211621647885902, 4.23388345958075, -0.5089745400791301, 0.05 -25.422208550904536, 4.211738060372636, -0.44290798416227517, 0.05 -25.63188060644297, 4.1934411107686556, -0.365938992079613, 0.05 -25.840853526029967, 4.179458391739967, -0.27965438057377057, 0.05 -26.04902771912142, 4.163483861829018, -0.31949059821897663, 0.05 -26.25586210609647, 4.1366877395009665, -0.5359224465610346, 0.05 -26.460693748963507, 4.096632857340768, -0.801097643203974, 0.05 -26.662840454053086, 4.042934101791582, -1.0739751109837137, 0.05 -26.86158536744313, 3.9748982678009046, -1.3607166798135495, 0.05 -27.056165588098246, 3.89160441310228, -1.665877093972492, 0.05 -27.245765548734365, 3.791999212722393, -1.992104007597737, 0.05 -27.429515147552184, 3.6749919763563685, -2.3401447273204923, 0.05 -27.606491977696376, 3.5395366028838557, -2.709107469450256, 0.05 -27.775726648042628, 3.384693406925039, -3.096863919176336, 0.05 -27.93655322556685, 3.2165315504844516, -3.363237128811747, 0.05 -28.088749298251194, 3.043921453686873, -3.452201935951571, 0.05 -28.23220733211291, 2.869160677234339, -3.495215529050677, 0.05 -28.366817470861587, 2.6922027749735715, -3.5391580452153537, 0.05 -28.492471452656943, 2.5130796359071526, -3.5824627813283794, 0.05 -28.60906537670173, 2.331878480895714, -3.6240231002287704, 0.05 -28.716501574243, 2.1487239508254294, -3.663090601405692, 0.05 -28.814689797811837, 1.9637644713767632, -3.699189588973324, 0.05 -28.90354790571162, 1.7771621579956445, -3.7320462676223753, 0.05 -28.983002203179804, 1.5890859493637224, -3.761524172638442, 0.05 -29.052987538562114, 1.3997067076461704, -3.7875848343510388, 0.05 -29.11344724230408, 1.2091940748393113, -3.810252656137183, 0.05 -29.16433298625096, 1.017714878937644, -3.8295839180333457, 0.05 -29.205960454207485, 0.8325493591304731, -3.7033103961434177, 0.05 -29.23913903826959, 0.6635716812421192, -3.3795535577670788, 0.05 -29.264815943026786, 0.5135380951438641, -3.0006717219651025, 0.05 -29.28394605316524, 0.3826022027691113, -2.6187178474950557, 0.05 -29.297490032114414, 0.27087957898344417, -2.234452475713342, 0.05 -29.306412721933494, 0.17845379638163178, -1.8485156520362478, 0.05 -29.31168181809099, 0.1053819231498698, -1.4614374646352395, 0.05 -29.314266806985547, 0.05169977789118507, -1.0736429051736944, 0.05 -29.315138159895625, 0.017427058201585358, -0.6854543937919944, 0.05 -29.315266777758186, 0.002572357251218391, -0.29709401900733934, 0.05 -29.315266777758186, 0.0, -0.05144714502436782, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftBlueLeftProfile.csv b/RoboRIO/src/main/resources/calciferLeftBlueLeftProfile.csv deleted file mode 100644 index 2787cda6..00000000 --- a/RoboRIO/src/main/resources/calciferLeftBlueLeftProfile.csv +++ /dev/null @@ -1,78 +0,0 @@ -77 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002879763320123809, 0.04672570118508487, 0.4997314150060453, 0.05 -0.008136571694489194, 0.1051361674873077, 1.1682093260444564, 0.05 -0.017482579183684517, 0.18692014978390648, 1.6356796459319756, 0.05 -0.032087179169735816, 0.292091999721026, 2.1034369987423904, 0.05 -0.053120942354197176, 0.4206752636892271, 2.5716652793640216, 0.05 -0.08175619666960292, 0.5727050863081148, 3.0405964523777538, 0.05 -0.1191677313710831, 0.7482306940296035, 3.5105121544297746, 0.05 -0.16653363045241873, 0.9473179816267127, 3.981745751942183, 0.05 -0.22503624445150686, 1.1700522799817623, 4.454685967100993, 0.05 -0.2952777876984303, 1.404830864938469, 4.695571699134136, 0.05 -0.3772795311119139, 1.640034868269672, 4.704080066624057, 0.05 -0.471066546394621, 1.8757403056541404, 4.7141087476893695, 0.05 -0.5766678080400616, 2.1120252329088114, 4.72569854509342, 0.05 -0.6941162962168161, 2.3489697635350915, 4.738890612525601, 0.05 -0.8234490940685816, 2.586655957035309, 4.753723870004354, 0.05 -0.9647074680538872, 2.825167479706112, 4.77023045341606, 0.05 -1.1179369188374673, 3.0645890156716025, 4.788430719309806, 0.05 -1.283187185593966, 3.305005335129976, 4.808326389167474, 0.05 -1.460512182088941, 3.546499929899501, 4.829891895390492, 0.05 -1.649969836461184, 3.789153087444855, 4.8530631509070865, 0.05 -1.8516218010473748, 4.033039291723817, 4.87772408557924, 0.05 -2.0655329891562615, 4.278223762177733, 4.903689409078318, 0.05 -2.2911749473656875, 4.512839164188518, 4.692308040215707, 0.05 -2.527418691338955, 4.724874879465344, 4.24071430553651, 0.05 -2.773125095898926, 4.914128091199423, 3.785064234681581, 0.05 -3.027142832119376, 5.080354724409004, 3.324532664191615, 0.05 -3.2883064993733244, 5.2232733450789635, 2.858372413399195, 0.05 -3.5554350740118967, 5.342571492771449, 2.3859629538497096, 0.05 -3.8273308069399836, 5.437914658561734, 1.9068633158057047, 0.05 -4.10277870263442, 5.508957913888725, 1.4208651065398215, 0.05 -4.38054669601642, 5.5553598676400116, 0.9280390750257261, 0.05 -4.659386606362977, 5.57679820693113, 0.42876678582237204, 0.05 -4.938643351154318, 5.585134895826821, 0.16673377791381228, 0.05 -5.21826105266993, 5.592354030312241, 0.1443826897084044, 0.05 -5.498178967497802, 5.598358296557452, 0.12008532490421331, 0.05 -5.778332155928365, 5.603063768611266, 0.09410944107628438, 0.05 -6.058652293836246, 5.606402758157618, 0.06677979092703623, 0.05 -6.339068604819993, 5.608326219674941, 0.03846923034647176, 0.05 -6.619508882138948, 5.608805546379091, 0.009586534082988152, 0.05 -6.8999005641244775, 5.607833639710583, -0.019438133370162092, 0.05 -7.1801718229383305, 5.605425176277064, -0.04816926867036386, 0.05 -7.460252625700508, 5.601616055243548, -0.076182420670321, 0.05 -7.7397113893514415, 5.589175273018667, -0.24881564449762195, 0.05 -8.017514851729342, 5.55606924755801, -0.6621205092131532, 0.05 -8.29239729373325, 5.497648840078162, -1.16840814959696, 0.05 -8.56310723238516, 5.414198773038188, -1.669001340799472, 0.05 -8.828409242256509, 5.30604019742695, -2.163171512224764, 0.05 -9.0870849177965, 5.173513510799792, -2.6505337325431633, 0.05 -9.337933005590022, 5.016961755870458, -3.131035098586672, 0.05 -9.579768794049462, 4.836715769188793, -3.6049197336332917, 0.05 -9.81142288364969, 4.633081792004551, -4.072679543684856, 0.05 -10.031739479286287, 4.406331912731927, -4.534997585452469, 0.05 -10.239932533406417, 4.163861082402603, -4.849416606586487, 0.05 -10.435819550241012, 3.9177403366919155, -4.922414914213746, 0.05 -10.619457814071266, 3.67276527660509, -4.899501201736509, 0.05 -10.79090299185517, 3.428903555678054, -4.8772344185407235, 0.05 -10.950208356695741, 3.186107296811436, -4.855925177332354, 0.05 -11.097424222944827, 2.944317324981727, -4.835799436594179, 0.05 -11.23259754999735, 2.7034665410504366, -4.817015678625811, 0.05 -11.35577167783736, 2.463482556800222, -4.799679685004294, 0.05 -11.466986162637035, 2.224289695993481, -4.783857216134821, 0.05 -11.566276687436632, 1.985810495991942, -4.769584000030775, 0.05 -11.653675026366702, 1.7479667786013888, -4.756874347811064, 0.05 -11.729209045494542, 1.5106803825568131, -4.745727920891514, 0.05 -11.792902727803845, 1.273873646186077, -4.736134727414725, 0.05 -11.845129339363467, 1.044532231192431, -4.586828299872918, 0.05 -11.886846859373858, 0.834350400207799, -4.203636619692639, 0.05 -11.919244657983475, 0.6479559721923539, -3.727888560308903, 0.05 -11.943508210864188, 0.48527105761427003, -3.2536982915616774, 0.05 -11.9608200311474, 0.34623640566423725, -2.7806930390006555, 0.05 -11.972360466870374, 0.23080871445947235, -2.3085538240952976, 0.05 -11.97930836965918, 0.1389580557761241, -1.8370131736669648, 0.05 -11.982841635614298, 0.07066531910238105, -1.365854733474861, 0.05 -11.984137622579368, 0.025919739301410113, -0.8949115960194187, 0.05 -11.984373443480766, 0.004716418027978793, -0.4240664254686264, 0.05 -11.984373443480766, 0.0, -0.09432836055957586, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftBlueLoadingToLoadingProfile.csv b/RoboRIO/src/main/resources/calciferLeftBlueLoadingToLoadingProfile.csv deleted file mode 100644 index 0ddd9933..00000000 --- a/RoboRIO/src/main/resources/calciferLeftBlueLoadingToLoadingProfile.csv +++ /dev/null @@ -1,125 +0,0 @@ -124 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.0028493706468430188, 0.04611784771946907, 0.48757434569372926, 0.05 -0.008037577836269037, 0.10376414378852038, 1.1529259213810261, 0.05 -0.01726088378516051, 0.1844661189778294, 1.6140395037861806, 0.05 -0.03167185279941795, 0.28821938028514876, 2.075065226146387, 0.05 -0.05242268676320885, 0.4150166792758181, 2.5359459798133863, 0.05 -0.08066504040467459, 0.5648470728293149, 2.996607871069936, 0.05 -0.11754979141016536, 0.7376950201098151, 3.4569589456100047, 0.05 -0.16422675670519582, 0.933539305900609, 3.9168857158158765, 0.05 -0.22184434819753246, 1.1523518298467328, 4.3762504789224765, 0.05 -0.29097313766192046, 1.3825757892877595, 4.604479188820534, 0.05 -0.3716060364847306, 1.6126579764562035, 4.6016437433688795, 0.05 -0.4637344739925855, 1.842568750157098, 4.59821547401789, 0.05 -0.567348266924623, 2.0722758586407504, 4.594142169673048, 0.05 -0.6824354746868561, 2.301744155244661, 4.589365932078211, 0.05 -0.8089822456649084, 2.530935419561046, 4.5838252863276985, 0.05 -0.9469726554218749, 2.759808195139329, 4.577455511565667, 0.05 -1.0963885415118302, 2.9883177217991035, 4.570190533195486, 0.05 -1.2572093385823653, 3.216415941410703, 4.561964392231994, 0.05 -1.4294119187129724, 3.4440516026121406, 4.552713224028748, 0.05 -1.6129704408006373, 3.6711704417532984, 4.5423767828231565, 0.05 -1.8078562149561013, 3.897715483109277, 4.530900827119568, 0.05 -2.0140375872188447, 4.123627445254871, 4.518239242911886, 0.05 -2.230907902565874, 4.337406306940584, 4.275577233714252, 0.05 -2.457288306751917, 4.527608083720862, 3.8040355356055677, 0.05 -2.692001962408193, 4.694273113125521, 3.3333005880931843, 0.05 -2.9338748601587747, 4.837457955011633, 2.863696837722234, 0.05 -3.1817366102555393, 4.957235001935287, 2.3955409384730864, 0.05 -3.4344211892515, 5.053691579919218, 1.9291315596786163, 0.05 -3.690767618023382, 5.126928575437632, 1.46473991036828, 0.05 -3.949620550876374, 5.177058657059842, 1.0026016324441933, 0.05 -4.209830758875731, 5.204204159987147, 0.5429100585461022, 0.05 -4.470255496482681, 5.208494752138988, 0.08581184303682932, 0.05 -4.730323717255528, 5.201364415456947, -0.14260673364082876, 0.05 -4.990032286206045, 5.194171379010333, -0.14386072893227464, 0.05 -5.249378650537058, 5.186927286620256, -0.144881847801539, 0.05 -5.5083607921462505, 5.17964283218385, -0.14568908872812258, 0.05 -5.766977180029176, 5.1723277576585165, -0.14630149050667285, 0.05 -6.0252267230909915, 5.164990861236302, -0.1467379284442849, 0.05 -6.283108723772294, 5.157640013626046, -0.1470169522051279, 0.05 -6.540622832950623, 5.150282183566573, -0.14715660118945095, 0.05 -6.797769006248701, 5.142923465961549, -0.14717435210048535, 0.05 -7.0545474621881, 5.13556911878797, -0.14708694347158158, 0.05 -7.310958642219394, 5.1282236006259, -0.14691036324139262, 0.05 -7.567003172893255, 5.1208906134772025, -0.1466597429739558, 0.05 -7.822681830226438, 5.113573146663659, -0.14634933627087676, 0.05 -8.077995506220201, 5.106273519875273, -0.1459925357677072, 0.05 -8.332945177820804, 5.098993432012069, -0.14560175726408886, 0.05 -8.587531878021187, 5.091734004007643, -0.14518856008852055, 0.05 -8.841756669348431, 5.084495826544891, -0.14476354925504253, 0.05 -9.095620619550738, 5.077279004046146, -0.1443364499748867, 0.05 -9.349124779448276, 5.070083197950761, -0.14391612190770786, 0.05 -9.602270163028715, 5.062907671608766, -0.14351052683990062, 0.05 -9.855057729539675, 5.055751330219218, -0.1431268277909581, 0.05 -10.10748836764843, 5.048612762175094, -0.142771360882481, 0.05 -10.359562881575018, 5.041490278531751, -0.14244967286686006, 0.05 -10.611281979117477, 5.034381950849191, -0.14216655365119735, 0.05 -10.862646261549308, 5.027285648636638, -0.14192604425106836, 0.05 -11.11365621529755, 5.020199074964836, -0.14173147343603532, 0.05 -11.36431220541472, 5.013119802343409, -0.14158545242853648, 0.05 -11.614614470744426, 5.006045306594122, -0.14148991498574404, 0.05 -11.864563120810006, 4.998973001311609, -0.14144610565026028, 0.05 -12.114158134378458, 4.991900271369041, -0.1414545988513538, 0.05 -12.363399359700152, 4.984824506433882, -0.14151529870318313, 0.05 -12.612286516424195, 4.977743134480872, -0.14162743906020125, 0.05 -12.860819199205157, 4.970653655619246, -0.14178957723251173, 0.05 -13.108996883013052, 4.963553676157913, -0.14199958922667122, 0.05 -13.356818930176278, 4.956440943264528, -0.14225465786768865, 0.05 -13.604284599210233, 4.949313380679099, -0.14255125170858918, 0.05 -13.851393055455544, 4.942169124906211, -0.1428851154577515, 0.05 -14.098143383601975, 4.935006562928639, -0.14325123955144292, 0.05 -14.34453460209919, 4.927824369944291, -0.14364385968695714, 0.05 -14.59056567960882, 4.9206215501926165, -0.14405639503349832, 0.05 -14.836235553472966, 4.913397477282911, -0.1444814581941145, 0.05 -15.081543150276792, 4.906151936076519, -0.1449108241278374, 0.05 -15.326487408614131, 4.89888516674677, -0.1453353865949758, 0.05 -15.571067304054294, 4.891597908803269, -0.14574515887002093, 0.05 -15.815281876350902, 4.884291445932158, -0.1461292574222206, 0.05 -16.05913025892891, 4.876967651560193, -0.1464758874393013, 0.05 -16.302611710736183, 4.8696290361454535, -0.14677230829478916, 0.05 -16.545725650266633, 4.862278790608983, -0.14700491072941801, 0.05 -16.78847169194298, 4.854920833526926, -0.14715914164113997, 0.05 -17.030849684542257, 4.847559851985509, -0.147219630828328, 0.05 -17.272859751783898, 4.840201344832798, -0.14717014305421827, 0.05 -17.51450233475133, 4.832851659348634, -0.14699370968328296, 0.05 -17.75577823603801, 4.825518025733638, -0.1466726722999212, 0.05 -17.996688665306472, 4.818208585369219, -0.1461888072883788, 0.05 -18.237235285961855, 4.810932413107669, -0.14552344523099947, 0.05 -18.477420262549376, 4.803699531750428, -0.14465762714483077, 0.05 -18.71724630841778, 4.7965209173680785, -0.1435722876469825, 0.05 -18.9565651656544, 4.786377144732395, -0.20287545271367335, 0.05 -19.194710661159903, 4.762909910110074, -0.4693446924464162, 0.05 -19.430653564427708, 4.718858065356121, -0.8810368950790526, 0.05 -19.663371035276985, 4.654349416985543, -1.2901729674115714, 0.05 -19.891846221580007, 4.569503726060415, -1.6969138185025479, 0.05 -20.11506774244814, 4.464430417362685, -2.101466173954609, 0.05 -20.33202907015459, 4.339226554129018, -2.5040772646733345, 0.05 -20.541727828396578, 4.193975164839733, -2.9050277857857054, 0.05 -20.7431650284857, 4.028744001782411, -3.3046232611464355, 0.05 -20.935344268215665, 3.8435847945993573, -3.703184143661078, 0.05 -21.117420635445555, 3.641527344597785, -4.041149000031448, 0.05 -21.289063101409933, 3.432849319287599, -4.173560506203717, 0.05 -21.4503024391353, 3.2247867545073485, -4.161251295605011, 0.05 -21.60116648682368, 3.01728095376761, -4.150116014794767, 0.05 -21.7416802702936, 2.810275669398384, -4.140105687384521, 0.05 -21.871866144012273, 2.6037174743734486, -4.131163900498711, 0.05 -21.991743944734086, 2.3975560144362578, -4.123229198743816, 0.05 -22.101331153941658, 2.1917441841514056, -4.116236605697043, 0.05 -22.20064306347531, 1.9862381906730944, -4.110119869566224, 0.05 -22.289692940355064, 1.780997537595066, -4.104813061560568, 0.05 -22.368492186657697, 1.575984926052685, -4.100252230847619, 0.05 -22.43705049168686, 1.371166100583249, -4.096376509388722, 0.05 -22.495375972290663, 1.166509612076043, -4.093129770144119, 0.05 -22.543624103164117, 0.9649626174690856, -4.030939892139147, 0.05 -22.5824595914292, 0.7767097653016639, -3.7650570433484343, 0.05 -22.61290749786116, 0.6089581286392204, -3.3550327332488705, 0.05 -22.635991585737152, 0.4616817575198848, -2.945527422386712, 0.05 -22.65273464603491, 0.3348612059552092, -2.5364110312935115, 0.05 -22.664158764001243, 0.2284823593266118, -2.1275769325719476, 0.05 -22.67128553526082, 0.14253542519154502, -1.7189386827013353, 0.05 -22.675136237216417, 0.07701403911192585, -1.3104277215923834, 0.05 -22.676731960959806, 0.031914474867778625, -0.9019912848829444, 0.05 -22.67709370674013, 0.007234915606483806, -0.49359118522589635, 0.05 -22.67709370674013, 0.0, -0.1446983121296761, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftBlueMidProfile.csv b/RoboRIO/src/main/resources/calciferLeftBlueMidProfile.csv deleted file mode 100644 index 21a0f714..00000000 --- a/RoboRIO/src/main/resources/calciferLeftBlueMidProfile.csv +++ /dev/null @@ -1,63 +0,0 @@ -62 -5.518719377827497E-4, 0.022074877511309987, 0.44149755022619974, 0.05 -0.0027593596889137462, 0.044149755022619926, 0.44149755022619874, 0.05 -0.007726207128958482, 0.09933694880089469, 1.1037438755654954, 0.05 -0.016556158133482456, 0.17659902009047948, 1.5452414257916958, 0.05 -0.030352956578051277, 0.2759359688913764, 1.9867389760179381, 0.05 -0.050220346338231074, 0.3973477952035959, 2.4282365262443903, 0.05 -0.07726207128958693, 0.5408344990271169, 2.869734076470419, 0.05 -0.11258187530768432, 0.7063960803619479, 3.31123162669662, 0.05 -0.15728350226808885, 0.8940325392080908, 3.7527291769228577, 0.05 -0.2124706960463661, 1.1037438755655449, 4.194226727149082, 0.05 -0.278695328580279, 1.3244926506782577, 4.414975502254257, 0.05 -0.3559573998698403, 1.5452414257912261, 4.414975502259368, 0.05 -0.4442569099150539, 1.7659902009042716, 4.414975502260909, 0.05 -0.5435938587159874, 1.9867389760186693, 4.414975502287954, 0.05 -0.6539682462725801, 2.2074877511318536, 4.414975502263685, 0.05 -0.7753800725848322, 2.4282365262450423, 4.414975502263774, 0.05 -0.9078293376527141, 2.648985301357638, 4.414975502251917, 0.05 -1.0513160414760856, 2.8697340764674273, 4.414975502195784, 0.05 -1.205840184055101, 3.0904828515803073, 4.414975502257601, 0.05 -1.3714017653897603, 3.3112316266931874, 4.414975502257601, 0.05 -1.5480007854800637, 3.5319804018060674, 4.414975502257601, 0.05 -1.735085372388229, 3.741691738163304, 4.194226727144734, 0.05 -1.931551782238691, 3.929328197009241, 3.7527291769187343, 0.05 -2.136296271155887, 4.094889778343913, 3.311231626693445, 0.05 -2.348215095264251, 4.238376482167281, 2.8697340764673562, 0.05 -2.566204510688219, 4.3597883084793665, 2.4282365262417116, 0.05 -2.789160773552227, 4.4591252572801565, 1.9867389760158005, 0.05 -3.01598013998071, 4.53638732856966, 1.545241425790067, 0.05 -3.2455588660981047, 4.591574522347894, 1.103743875564689, 0.05 -3.4767932080288455, 4.624686838614815, 0.6622463253384225, 0.05 -3.708360449604746, 4.631344831518014, 0.13315985806396924, 0.05 -3.938937874656209, 4.6115485010292545, -0.3959266097751879, 0.05 -4.167421739307274, 4.569677293021295, -0.8374241601591947, 0.05 -4.39270829968237, 4.505731207501924, -1.278921710387415, 0.05 -4.613693811905928, 4.419710244471151, -1.7204192606154578, 0.05 -4.829274532102377, 4.311614403928985, -2.161916810843323, 0.05 -5.038346716396147, 4.18144368587539, -2.6034143610718985, 0.05 -5.239806620911666, 4.029198090310384, -3.044911911300119, 0.05 -5.432550501773365, 3.854877617233985, -3.486409461527984, 0.05 -5.615474615105673, 3.658482266646157, -3.9279070117565595, 0.05 -5.787694189326541, 3.444391484417366, -4.281815644575815, 0.05 -5.948876324791702, 3.2236427093032205, -4.414975502282914, 0.05 -6.099021021501159, 3.002893934189128, -4.414975502281848, 0.05 -6.238128279454911, 2.7821451590750534, -4.414975502281493, 0.05 -6.366198098652958, 2.5613963839609255, -4.414975502282559, 0.05 -6.4832304790952975, 2.3406476088467976, -4.414975502282559, 0.05 -6.5892254207819345, 2.1198988337327407, -4.414975502281138, 0.05 -6.684182923712864, 1.899150058618595, -4.414975502282914, 0.05 -6.768102987888089, 1.6784012835045026, -4.414975502281848, 0.05 -6.84098561330761, 1.4576525083904102, -4.414975502281848, 0.05 -6.902830799971425, 1.2369037332763, -4.4149755022822035, 0.05 -6.953857520173056, 1.0205344040326203, -4.327386584873594, 0.05 -6.9948366181438075, 0.8195819594150322, -4.019048892351762, 0.05 -7.026871837759252, 0.6407043923088906, -3.577551342122831, 0.05 -7.05106692289496, 0.4839017027141601, -3.1360537918946108, 0.05 -7.068525617426501, 0.3491738906308228, -2.6945562416667457, 0.05 -7.080351665229444, 0.23652095605886103, -2.253058691439236, 0.05 -7.087648810179363, 0.1459428989983813, -1.8115611412095944, 0.05 -7.091520796151826, 0.07743971944925931, -1.37006359098244, 0.05 -7.093071367022404, 0.031011417411548337, -0.9285660407542196, 0.05 -7.093404266666668, 0.006657992885283903, -0.48706849052528867, 0.05 -7.093404266666668, 0.0, -0.13315985770567806, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftBlueRightProfile.csv b/RoboRIO/src/main/resources/calciferLeftBlueRightProfile.csv deleted file mode 100644 index 202f8f28..00000000 --- a/RoboRIO/src/main/resources/calciferLeftBlueRightProfile.csv +++ /dev/null @@ -1,78 +0,0 @@ -77 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002547922338573533, 0.04008888155407936, 0.366995022385935, 0.05 -0.007057750126825648, 0.09019655576504229, 1.0021534842192585, 0.05 -0.015074634755412781, 0.16033769257174263, 1.4028227361340067, 0.05 -0.02759951191324668, 0.250497543156678, 1.8031970116987073, 0.05 -0.045632106247810486, 0.3606518866912761, 2.2030868706919624, 0.05 -0.07017033579254328, 0.4907645908946558, 2.602254084067593, 0.05 -0.10220959018186551, 0.6407850877864446, 3.000409937835776, 0.05 -0.14274187669920899, 0.8106457303468695, 3.3972128512084976, 0.05 -0.19275482839742641, 1.0002590339643485, 3.7922660723495794, 0.05 -0.2527309468282781, 1.1995223686170342, 3.985266693053715, 0.05 -0.3226484478963113, 1.398350021360664, 3.976553054872598, 0.05 -0.4024817005466407, 1.5966650530065873, 3.9663006329184647, 0.05 -0.4922011468105695, 1.7943889252785756, 3.9544774454397658, 0.05 -0.5917732280809598, 1.991441625407806, 3.9410540025846075, 0.05 -0.7011603254155562, 2.187741946691928, 3.926006425682438, 0.05 -0.8203207268880163, 2.383208029449202, 3.9093216551454812, 0.05 -0.949208636825964, 2.5777581987589557, 3.8910033861950755, 0.05 -1.0877742466501221, 2.771312196483163, 3.8710799544841468, 0.05 -1.2359638920671863, 2.963792908341281, 3.84961423716236, 0.05 -1.3937203271800964, 3.155128702258203, 3.8267158783384403, 0.05 -1.5609831527126452, 3.3452565106509766, 3.802556167855471, 0.05 -1.7376894431877534, 3.5341258095021644, 3.777385977023755, 0.05 -1.9232855267844553, 3.7119216719340375, 3.5559172486374635, 0.05 -2.1167342542962513, 3.868974550235916, 3.1410575660375706, 0.05 -2.317009657382493, 4.00550806172483, 2.730670229778287, 0.05 -2.5230989770541816, 4.121786393433771, 2.325566634178813, 0.05 -2.7340044184447576, 4.218108827811515, 1.9264486875548847, 0.05 -2.9487445000579706, 4.29480163226426, 1.533856089054897, 0.05 -3.166354859065542, 4.352207180151429, 1.1481109577433735, 0.05 -3.3858883852105803, 4.39067052290077, 0.7692668549868209, 0.05 -3.6064145828935934, 4.410523953660261, 0.3970686151898306, 0.05 -3.8270181098526592, 4.412070539181317, 0.030931710421118197, 0.05 -4.047274962316693, 4.405137049280669, -0.13866979801296253, 0.05 -4.267246740094348, 4.399435555553101, -0.11402987455136682, 0.05 -4.486999049585689, 4.3950461898268385, -0.08778731452524724, 0.05 -4.706600666997822, 4.392032348242658, -0.060276831683605536, 0.05 -4.926122588390229, 4.390438427848138, -0.031878407890406635, 0.05 -5.14563699818124, 4.390288195820223, -0.0030046405582950797, 0.05 -5.365216193176365, 4.391583899902489, 0.02591408164532183, 0.05 -5.584931502407609, 4.394306184624881, 0.054445694447835535, 0.05 -5.804852243168238, 4.398414815212578, 0.08217261175394341, 0.05 -6.025044751452367, 4.403850165682595, 0.10870700940033728, 0.05 -6.245198333898607, 4.403071648924784, -0.01557033515622308, 0.05 -6.4645142044679185, 4.38631741138623, -0.33508475077107747, 0.05 -6.682073725568025, 4.351190422002128, -0.702539787682035, 0.05 -6.896942619376865, 4.297377876176792, -1.0762509165067335, 0.05 -7.108169743702181, 4.22454248650632, -1.4567077934094286, 0.05 -7.314786697226674, 4.132339070489871, -1.8440683203289865, 0.05 -7.515808185804885, 4.020429771564221, -2.2381859785129876, 0.05 -7.710233035993695, 3.8884970037761937, -2.638655355760555, 0.05 -7.897045722284494, 3.7362537258159825, -3.044865559204224, 0.05 -8.075218266397918, 3.5634508822685067, -3.4560568709495154, 0.05 -8.244094143940764, 3.3775175508569246, -3.7186666282316416, 0.05 -8.403503777439798, 3.1881926699807033, -3.786497617524427, 0.05 -8.553387786400394, 2.9976801792119177, -3.8102498153757125, 0.05 -8.693689252998295, 2.8060293319580074, -3.833016945078205, 0.05 -8.824354315768986, 2.6133012554138184, -3.85456153088378, 0.05 -8.94533258016446, 2.4195652879094784, -3.8747193500867994, 0.05 -9.05657738727957, 2.224896142302183, -3.8933829121459063, 0.05 -9.158045973195842, 2.0293717183254465, -3.9104884795347328, 0.05 -9.24969954879504, 1.8330715119839447, -3.926004126830036, 0.05 -9.331503321870176, 1.6360754615027286, -3.939921009624321, 0.05 -9.403426479659453, 1.4384631557855494, -3.952246114343585, 0.05 -9.465442147068162, 1.2403133481741662, -3.9629961522276647, 0.05 -9.517527330149933, 1.04170366163543, -3.9721937307747224, 0.05 -9.560051072228802, 0.850474841577378, -3.8245764011610417, 0.05 -9.59388610464899, 0.6767006484037414, -3.4754838634727303, 0.05 -9.62002061763165, 0.522690259653181, -3.080207775011208, 0.05 -9.639446461056858, 0.3885168685041588, -2.6834678229804454, 0.05 -9.653158247802333, 0.27423573490951025, -2.2856226718929706, 0.05 -9.662152589415125, 0.1798868322558513, -1.8869780530731788, 0.05 -9.667427461601264, 0.10549744372278529, -1.4877877706613203, 0.05 -9.669981693568813, 0.051084639350972884, -1.088256087436248, 0.05 -9.670814581254183, 0.016657753707390224, -0.6885377128716532, 0.05 -9.670925619978238, 0.002220774481126446, -0.28873958452527554, 0.05 -9.670925619978238, 0.0, -0.04441548962252892, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftBlueShootProfile.csv b/RoboRIO/src/main/resources/calciferLeftBlueShootProfile.csv deleted file mode 100644 index e56bd7af..00000000 --- a/RoboRIO/src/main/resources/calciferLeftBlueShootProfile.csv +++ /dev/null @@ -1,61 +0,0 @@ -60 -5.424561587941971E-4, 0.02169824635176788, 0.43396492703535755, 0.05 -0.0021888850948781425, 0.03292857872167891, 0.22460664739822062, 0.05 -0.005893299137387343, 0.07408828085018401, 0.823194042570102, 0.05 -0.012478767918867418, 0.1317093756296015, 1.1524218955883496, 0.05 -0.022768244494680095, 0.20578953151625354, 1.4816031177330407, 0.05 -0.03758467961571249, 0.2963287024206478, 1.810783418087885, 0.05 -0.057751453472872236, 0.4033354771431949, 2.140135494450942, 0.05 -0.08409340983123376, 0.5268391271672305, 2.470073000480711, 0.05 -0.11743890839102192, 0.6669099711957632, 2.801416880570655, 0.05 -0.15862346518099904, 0.8236911357995425, 3.1356232920755844, 0.05 -0.20808334168612633, 0.9891975301025459, 3.310127886060068, 0.05 -0.2658613708775095, 1.1555605838276635, 3.3272610745023523, 0.05 -0.3320257219594639, 1.3232870216390882, 3.3545287562284942, 0.05 -0.4066778839208991, 1.493043239228704, 3.395124351792318, 0.05 -0.4899610333061964, 1.665662987705946, 3.4523949695448364, 0.05 -0.582068111914318, 1.8421415721624306, 3.5295716891296935, 0.05 -0.6832487293166017, 2.0236123480456767, 3.6294155176649223, 0.05 -0.7938138704795739, 2.211302823259443, 3.7538095042753294, 0.05 -0.9141374094094133, 2.4064707785967903, 3.903359106746942, 0.05 -1.0446536770037482, 2.6103253518866962, 4.077091465798119, 0.05 -1.185406290062441, 2.815052261173852, 4.094538185743115, 0.05 -1.3360008696200454, 3.01189159115209, 3.9367865995647566, 0.05 -1.496004893421524, 3.2000804760295707, 3.7637776975496173, 0.05 -1.6649236860753076, 3.3783758530756747, 3.5659075409220797, 0.05 -1.8421826644264108, 3.545179567022064, 3.3360742789277875, 0.05 -2.0271171547755777, 3.6986898069833387, 3.0702047992254933, 0.05 -2.218969524512552, 3.8370473947394865, 2.7671517551229563, 0.05 -2.416892161800195, 3.9584527457528598, 2.428107020267465, 0.05 -2.6199542093590815, 4.0612409511777345, 2.0557641084974954, 0.05 -2.826777538068315, 4.13646657418467, 1.5045124601387094, 0.05 -3.035891843849192, 4.182286115617538, 0.916390828657363, 0.05 -3.2461271357893846, 4.204705838803848, 0.44839446372620273, 0.05 -3.4562588587062537, 4.202634458337381, -0.041427609329343085, 0.05 -3.6650101469046383, 4.175025763967689, -0.5521738873938453, 0.05 -3.871052254147473, 4.120842144856695, -1.0836723822198735, 0.05 -4.073003965914981, 4.039034235350159, -1.6361581901307254, 0.05 -4.2694310092335055, 3.9285408663704904, -2.209867379593371, 0.05 -4.45884655343119, 3.788310883953699, -2.8045996483358238, 0.05 -4.639713817839465, 3.6173452881654997, -3.4193119157639895, 0.05 -4.810880825234881, 3.4233401479083327, -3.8801028051433395, 0.05 -4.971786066582661, 3.218104826955586, -4.104706419054933, 0.05 -5.122057192020458, 3.0054225087559505, -4.253646363992711, 0.05 -5.261344621882754, 2.7857485972459233, -4.393478230200545, 0.05 -5.389324433641917, 2.5595962351832533, -4.5230472412533995, 0.05 -5.505700968445728, 2.3275306960762157, -4.641310782140753, 0.05 -5.610208829410698, 2.0901572192994067, -4.74746953553618, 0.05 -5.702614086896854, 1.8481051497231007, -4.84104139152612, 0.05 -5.782714648923811, 1.6020112405391531, -4.921878183678952, 0.05 -5.850339877713504, 1.3525045757938536, -4.99013329490599, 0.05 -5.9058074731040495, 1.1093519078109142, -4.863053359658789, 0.05 -5.950112127744982, 0.8860930928186567, -4.46517629984515, 0.05 -5.984466868506349, 0.6870948152273376, -3.979965551826381, 0.05 -6.010111391825502, 0.5128904663830581, -3.4840869768855898, 0.05 -6.028305166233803, 0.3638754881660226, -2.98029956434071, 0.05 -6.040321764089738, 0.24033195711869992, -2.4708706209464535, 0.05 -6.047444293513956, 0.14245058848435588, -1.957627372686881, 0.05 -6.050961815865454, 0.0703504470299766, -1.4420028290875855, 0.05 -6.052166662277885, 0.024096928248610403, -0.925070375627324, 0.05 -6.052352592411357, 0.0037186026694434374, -0.40756651158333934, 0.05 -6.052352592411357, 0.0, -0.07437205338886875, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftRedBackupProfile.csv b/RoboRIO/src/main/resources/calciferLeftRedBackupProfile.csv deleted file mode 100644 index 7a60748f..00000000 --- a/RoboRIO/src/main/resources/calciferLeftRedBackupProfile.csv +++ /dev/null @@ -1,49 +0,0 @@ -48 -5.227250022608844E-4, 0.020909000090435375, 0.41818000180870746, 0.05 -0.0028818435500357776, 0.047182370955497856, 0.5254674173012496, 0.05 -0.008184964339813118, 0.10606241579554682, 1.1776008968009792, 0.05 -0.01759602709640654, 0.1882212551318684, 1.6431767867264317, 0.05 -0.032258133543436436, 0.2932421289405979, 2.10041747617459, 0.05 -0.05328056113476895, 0.4204485518266502, 2.5441284577210452, 0.05 -0.08172294470399893, 0.5688476713845996, 2.9679823911589875, 0.05 -0.1185769475571522, 0.7370800570630655, 3.3646477135693176, 0.05 -0.16474574741960402, 0.9233759972490363, 3.725918803719417, 0.05 -0.22102151922874264, 1.125515436182772, 4.042788778674713, 0.05 -0.28751134838178116, 1.3297965830607705, 4.085622937559972, 0.05 -0.36366429676493633, 1.5230589676631034, 3.8652476920466583, 0.05 -0.4488432031073467, 1.7035781268482075, 3.6103831837020817, 0.05 -0.5423179747376323, 1.8694954326057123, 3.318346115150095, 0.05 -0.6427543131874438, 2.0087267689962305, 2.7846267278103642, 0.05 -0.7482751353943503, 2.1104164441381292, 2.033793502837975, 0.05 -0.8569995315771873, 2.1744879236567396, 1.2814295903722073, 0.05 -0.9670403896487758, 2.2008171614317695, 0.5265847555005987, 0.05 -1.0765058649566093, 2.189309506156668, -0.23015310550203338, 0.05 -1.1835139972391422, 2.140162645650656, -0.9829372101202338, 0.05 -1.2862328628313047, 2.0543773118432496, -1.715706676148132, 0.05 -1.3829610405771071, 1.9345635549160471, -2.3962751385440484, 0.05 -1.4722614265507679, 1.7860077194732165, -2.9711167088566137, 0.05 -1.5528784166550167, 1.6123398020849757, -3.4733583477648144, 0.05 -1.624335437853053, 1.4291404239607248, -3.6639875624850182, 0.05 -1.6872689048481855, 1.2586693399026485, -3.4094216811615263, 0.05 -1.7430512130462532, 1.1156461639613535, -2.8604635188258998, 0.05 -1.7935267525704701, 1.00951079048434, -2.1227074695402726, 0.05 -1.8405823369898338, 0.9411116883872741, -1.3679820419413158, 0.05 -1.885708990259548, 0.9025330653942857, -0.7715724598597684, 0.05 -1.9297180778979723, 0.8801817527684859, -0.44702625251599626, 0.05 -1.972677897640306, 0.8591963948466741, -0.4197071584362355, 0.05 -2.014025544506878, 0.826952937331435, -0.644869150304781, 0.05 -2.0530077181272937, 0.7796434724083129, -0.9461892984624432, 0.05 -2.0889394871871336, 0.7186353811968019, -1.2201618242302192, 0.05 -2.1211273842572815, 0.6437579414029551, -1.4975487958769373, 0.05 -2.148939148140159, 0.5562352776575521, -1.7504532749080592, 0.05 -2.1721243307138, 0.46370365147281806, -1.8506325236946808, 0.05 -2.1908569110700133, 0.37465160712426876, -1.781040886970986, 0.05 -2.2054457898840814, 0.291777576281356, -1.6574806168582557, 0.05 -2.21630205955139, 0.21712539334616485, -1.4930436587038225, 0.05 -2.223912449903052, 0.15220780703324222, -1.2983517262584525, 0.05 -2.228817076424482, 0.09809253042859939, -1.0823055320928565, 0.05 -2.231591464430492, 0.055487760120202116, -0.8520954061679454, 0.05 -2.2328325598910452, 0.02482190921106446, -0.6133170181827531, 0.05 -2.2331484395186623, 0.006317592552342437, -0.37008633317444045, 0.05 -2.233151520016541, 6.160995756805054E-5, -0.1251196518954877, 0.05 -2.233151520016541, 0.0, -0.0012321991513610108, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftRedBoilerToLoadingProfile.csv b/RoboRIO/src/main/resources/calciferLeftRedBoilerToLoadingProfile.csv deleted file mode 100644 index ba547719..00000000 --- a/RoboRIO/src/main/resources/calciferLeftRedBoilerToLoadingProfile.csv +++ /dev/null @@ -1,152 +0,0 @@ -151 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002717391304347822, 0.04347826086956514, 0.4347826086956506, 0.05 -0.007608695652173897, 0.09782608695652148, 1.0869565217391268, 0.05 -0.016304347826086918, 0.17391304347826042, 1.5217391304347787, 0.05 -0.029891304347826463, 0.27173913043479087, 1.956521739130609, 0.05 -0.04945652173913161, 0.391304347826103, 2.391304347826243, 0.05 -0.07608695652174138, 0.5326086956521955, 2.8260869565218494, 0.05 -0.11086956521739495, 0.6956521739130713, 3.260869565217517, 0.05 -0.15489130434783155, 0.8804347826087319, 3.695652173913211, 0.05 -0.20923913043477188, 1.0869565217388066, 4.130434782601495, 0.05 -0.27445652173909973, 1.304347826086557, 4.347826086955009, 0.05 -0.350543478260842, 1.5217391304348449, 4.347826086965756, 0.05 -0.4375000000000061, 1.7391304347832826, 4.3478260869687535, 0.05 -0.5353260869565658, 1.956521739131194, 4.347826086958229, 0.05 -0.6440217391304945, 2.1739130434785747, 4.347826086947615, 0.05 -0.7635869565216794, 2.3913043478236973, 4.347826086902451, 0.05 -0.8940217391302444, 2.6086956521713, 4.347826086952056, 0.05 -1.0353260869561902, 2.826086956518914, 4.347826086952278, 0.05 -1.1874999999995164, 3.0434782608665234, 4.347826086952189, 0.05 -1.350543478260223, 3.260869565214133, 4.347826086952189, 0.05 -1.5244565217383097, 3.4782608695617334, 4.347826086952011, 0.05 -1.709239130433777, 3.6956521739093473, 4.347826086952278, 0.05 -1.904891304346625, 3.9130434782569568, 4.347826086952189, 0.05 -2.1108695652159843, 4.119565217387184, 4.130434782604553, 0.05 -2.3260869565201174, 4.304347826082662, 3.695652173909547, 0.05 -2.5494565217375595, 4.467391304348842, 3.2608695653236097, 0.05 -2.779891304347304, 4.608695652194887, 2.8260869569209035, 0.05 -3.016304347826641, 4.7282608695867445, 2.391304347837142, 0.05 -3.257608695653826, 4.826086956543696, 1.9565217391390277, 0.05 -3.5027173913071152, 4.902173913065786, 1.5217391304418015, 0.05 -3.7505434782647646, 4.956521739152988, 1.0869565217440424, 0.05 -4.000000000005031, 4.989130434805329, 0.6521739130468163, 0.05 -4.2500000000061675, 5.000000000022737, 0.217391304348169, 0.05 -4.500000000007306, 5.000000000022773, 7.105427357601002E-13, 0.05 -4.750000000008443, 5.000000000022737, -7.105427357601002E-13, 0.05 -5.000000000009582, 5.000000000022773, 7.105427357601002E-13, 0.05 -5.22241254735571, 4.448250946922575, -11.034981062003961, 0.05 -5.443753129219028, 4.426811637266355, -0.42878619312439525, 0.05 -5.663725447614075, 4.399446367900928, -0.5473053873085476, 0.05 -5.882309874689655, 4.371688541511594, -0.5551565277866821, 0.05 -6.099501870787017, 4.343839921947236, -0.5569723912871538, 0.05 -6.315315334044061, 4.316269265140888, -0.551413136126957, 0.05 -6.52978597961773, 4.289412911473391, -0.5371270733499323, 0.05 -6.742974484871041, 4.263770105066225, -0.5128561281433264, 0.05 -6.954969099717575, 4.239892296930671, -0.4775561627110747, 0.05 -7.165887374072373, 4.21836548709596, -0.43053619669422005, 0.05 -7.375876637709666, 4.199785272745872, -0.37160428700175885, 0.05 -7.585112929391574, 4.184725833638156, -0.3011887821543269, 0.05 -7.793798167375192, 4.17370475967236, -0.22042147931591316, 0.05 -8.002155535096175, 4.167147354419662, -0.1311481050539598, 0.05 -8.210423261341813, 4.16535452491273, -0.035856590138649835, 0.05 -8.418847185607161, 4.1684784853069745, 0.06247920788489125, 0.05 -8.627672685458872, 4.176509997034224, 0.16063023454499614, 0.05 -8.837136633162205, 4.189278954066635, 0.25537914064821976, 0.05 -9.047460050328478, 4.206468343325463, 0.34378778517655917, 0.05 -9.258842023412754, 4.227639461685502, 0.42342236720077864, 0.05 -9.471455262436761, 4.252264780480146, 0.4925063758928694, 0.05 -9.685443467599201, 4.2797641032488105, 0.5499864553732969, 0.05 -9.900920458788285, 4.309539823781661, 0.5955144106570032, 0.05 -10.117970854678534, 4.341007917804991, 0.6293618804666146, 0.05 -10.336651981586565, 4.373622538160616, 0.6522924071124869, 0.05 -10.556996647366157, 4.40689331559186, 0.6654155486248925, 0.05 -10.779016427492675, 4.440395602530334, 0.6700457387694669, 0.05 -11.002705153882573, 4.4737745277979775, 0.6675785053528749, 0.05 -11.228042364881778, 4.506744219984101, 0.6593938437224622, 0.05 -11.45499654364968, 4.539083575358035, 0.6467871074786835, 0.05 -11.683528038295536, 4.5706298929171245, 0.6309263511817953, 0.05 -11.913591606433679, 4.601271362762828, 0.6128293969140763, 0.05 -12.145138573479587, 4.630939340918178, 0.5933595631069899, 0.05 -12.378118616845203, 4.659600867312321, 0.5732305278828598, 0.05 -12.612481207447185, 4.687251812039642, 0.5530188945464154, 0.05 -12.848176749848232, 4.713910848020942, 0.533180719626003, 0.05 -13.085157464295106, 4.73961428893747, 0.5140688183305642, 0.05 -13.323378053307867, 4.764411780255199, 0.4959498263545825, 0.05 -13.56279619451105, 4.788362824063669, 0.47902087616940037, 0.05 -13.803372892529385, 4.81153396036672, 0.4634227260610224, 0.05 -14.045072723139896, 4.833996612210224, 0.449253036870072, 0.05 -14.287863993905724, 4.855825415316557, 0.4365760621266723, 0.05 -14.531718843903205, 4.8770969999496145, 0.42543169266114234, 0.05 -14.776613298992643, 4.897889101788768, 0.4158420367830651, 0.05 -15.02252729739147, 4.918279967976513, 0.40781732375490876, 0.05 -15.269444696026413, 4.938347972698884, 0.4013600944474227, 0.05 -15.517353265919398, 4.958171397859699, 0.396468503216294, 0.05 -15.766244683638487, 4.977828354381755, 0.3931391304411136, 0.05 -16.016114522760976, 4.99739678244975, 0.39136856135989717, 0.05 -16.266962248289513, 5.016954510570769, 0.39115456242038604, 0.05 -16.518791215781498, 5.036579349839717, 0.3924967853789596, 0.05 -16.771608675148144, 5.056349187332916, 0.39539674986398765, 0.05 -17.02542577807913, 5.076342058619709, 0.39985742573586336, 0.05 -17.280257586564314, 5.096636169703728, 0.4058822216803648, 0.05 -17.53612307833448, 5.117309835403299, 0.41347331399142817, 0.05 -17.79304514339749, 5.138441301260178, 0.42262931713757723, 0.05 -18.051050564343644, 5.160108418923109, 0.4333423532586167, 0.05 -18.31016996933644, 5.1823880998559035, 0.4455936186558951, 0.05 -18.57043774483601, 5.205355509991417, 0.4593482027102702, 0.05 -18.83189189291808, 5.229082961641375, 0.4745490329991675, 0.05 -19.094573810840547, 5.253638358449361, 0.49110793615971815, 0.05 -19.35852796982766, 5.2790831797422015, 0.5088964258568041, 0.05 -19.6238014626555, 5.305469856556824, 0.5277335362924518, 0.05 -19.890443387221403, 5.332838491318039, 0.5473726952243041, 0.05 -20.158504024942225, 5.361212754416443, 0.567485261968077, 0.05 -20.42803377454513, 5.390594992058144, 0.5876447528340201, 0.05 -20.699081795796157, 5.420960425020534, 0.6073086592478028, 0.05 -20.971694320710103, 5.452250498278919, 0.6258014651676902, 0.05 -21.245912600366825, 5.484365593134447, 0.6423018971105598, 0.05 -21.521770465979483, 5.51715731225312, 0.6558343823734702, 0.05 -21.79929150887404, 5.550420857891194, 0.665270912761482, 0.05 -22.078485925953267, 5.583888341584486, 0.6693496738658311, 0.05 -22.35934711765034, 5.61722383394151, 0.6667098471404742, 0.05 -22.641848197201803, 5.6500215910292155, 0.6559551417541165, 0.05 -22.92593863181582, 5.681808692280385, 0.6357420250233936, 0.05 -23.211541307692073, 5.7120535175250335, 0.6048965048929666, 0.05 -23.498550363159403, 5.740181109346614, 0.5625518364316129, 0.05 -23.786830153936226, 5.765595815536485, 0.5082941237974126, 0.05 -24.076215687731256, 5.787710675900639, 0.44229720728308664, 0.05 -24.366514774768383, 5.805981740742547, 0.36542129683816427, 0.05 -24.657511988446444, 5.819944273561249, 0.27925065637402824, 0.05 -24.94850838116481, 5.8199278543673065, -3.283838788448179E-4, 0.05 -25.238159767697198, 5.793027730647766, -0.5380024743908152, 0.05 -25.524955914374626, 5.7359229335485935, -1.1420959419834453, 0.05 -25.807405772947067, 5.648997171448816, -1.7385152419955574, 0.05 -26.084052834478186, 5.532941230622348, -2.321118816529353, 0.05 -26.353486489667166, 5.388673103779627, -2.8853625368544122, 0.05 -26.61434863254228, 5.217242857502306, -3.4286049255464235, 0.05 -26.865335540055245, 5.019738150259246, -3.9500941448612004, 0.05 -27.105195660248643, 4.797202403867982, -4.450714927825281, 0.05 -27.33272432053182, 4.5505732056635395, -4.9325839640888525, 0.05 -27.547212262440077, 4.289758838165154, -5.216287349967708, 0.05 -27.748593579090972, 4.027626333017925, -5.242650102944584, 0.05 -27.93697545258282, 3.7676374698370085, -5.199777263618328, 0.05 -28.11246743530202, 3.5098396543839216, -5.155956309061738, 0.05 -28.275177531297164, 3.2542019199028998, -5.112754689620438, 0.05 -28.425209421930628, 3.0006378126692956, -5.071282144672082, 0.05 -28.56266059497569, 2.7490234609012036, -5.03228703536184, 0.05 -28.687621152660924, 2.4992111537046755, -4.996246143930563, 0.05 -28.80017311091686, 2.2510391651187147, -4.963439771719216, 0.05 -28.9003900645688, 2.004339073038801, -4.934001841598272, 0.05 -28.988337086483295, 1.758940438289869, -4.907972694978642, 0.05 -29.064070777391283, 1.5146738181597952, -4.885332402601477, 0.05 -29.127639419401362, 1.2713728402015874, -4.866019559164156, 0.05 -29.179526291601064, 1.0377374439940599, -4.67270792415055, 0.05 -29.22080794361706, 0.8256330403199577, -4.242088073482044, 0.05 -29.252711059644145, 0.6380623205416919, -3.7514143955653156, 0.05 -29.2764546590091, 0.47487198729912405, -3.2638066648513564, 0.05 -29.293251983234583, 0.33594648450962666, -2.7785100557899476, 0.05 -29.30431209951612, 0.22120232563073958, -2.2948831775777414, 0.05 -29.31084122506183, 0.1305825109141231, -1.8123962943323295, 0.05 -29.31404378607191, 0.06405122020161136, -1.3306258142502347, 0.05 -29.315123223710188, 0.02158875276553844, -0.8492493487214583, 0.05 -29.31528255261117, 0.003186578019631716, -0.3680434949181345, 0.05 -29.31528255261117, 0.0, -0.06373156039263432, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftRedLeftProfile.csv b/RoboRIO/src/main/resources/calciferLeftRedLeftProfile.csv deleted file mode 100644 index fe5c5db2..00000000 --- a/RoboRIO/src/main/resources/calciferLeftRedLeftProfile.csv +++ /dev/null @@ -1,80 +0,0 @@ -79 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.00291596288285762, 0.0474496924397611, 0.5142112400995698, 0.05 -0.00825425010866553, 0.10676574451615817, 1.1863210415279413, 0.05 -0.017745211917152334, 0.1898192361697361, 1.6610698330715583, 0.05 -0.03257656533484402, 0.29662706835383373, 2.136156643681953, 0.05 -0.05393741165350835, 0.4272169263732865, 2.6117971603890555, 0.05 -0.08301891154149342, 0.5816299977597014, 3.088261427728297, 0.05 -0.12101509511586694, 0.7599236714874704, 3.565873474555381, 0.05 -0.1691238080600815, 0.9621742588842913, 4.045011747936417, 0.05 -0.22854779177836093, 1.1884796743655885, 4.526108309625944, 0.05 -0.299901078594333, 1.4270657363194417, 4.7717212390770625, 0.05 -0.38320793121868235, 1.6661370524869863, 4.7814263233508925, 0.05 -0.47849660076434997, 1.9057733909133527, 4.792726768527329, 0.05 -0.5857992505749184, 2.1460529962113695, 4.805592105960335, 0.05 -0.7051518301014943, 2.3870515905315157, 4.819971886402925, 0.05 -0.836593878865853, 2.628840975287175, 4.835787695113183, 0.05 -0.9801682369932929, 2.871487162548799, 4.8529237452324825, 0.05 -1.1359206348070403, 3.1150479562749487, 4.871215874522994, 0.05 -1.3038991270635854, 3.359569845130902, 4.89043777711907, 0.05 -1.484153334314015, 3.6050841450085924, 4.910285997553805, 0.05 -1.6767334484602374, 3.851602282924449, 4.930362758317131, 0.05 -1.8816889572762387, 4.099110176320028, 4.950157867911589, 0.05 -2.09906704333622, 4.347561721199629, 4.969030897592006, 0.05 -2.3283052845462575, 4.584764824200742, 4.744062060022269, 0.05 -2.5682243298999037, 4.79838090707292, 4.272321657443552, 0.05 -2.8176281669534387, 4.988076741070698, 3.793916679955558, 0.05 -3.0753027108279056, 5.153490877489338, 3.3082827283728022, 0.05 -3.3400151780551695, 5.2942493445452765, 2.815169341118775, 0.05 -3.6105143973756313, 5.4099843864092385, 2.31470083727924, 0.05 -3.885532157753496, 5.500355207557293, 1.80741642296109, 0.05 -4.163785614393372, 5.565069132797512, 1.2942785048043781, 0.05 -4.443980676793223, 5.603901247997032, 0.7766423039904069, 0.05 -4.724816198360218, 5.616710431339893, 0.25618366685721483, 0.05 -5.00559893358301, 5.615654704455838, -0.02111453768110394, 0.05 -5.286246550119672, 5.612952330733243, -0.05404747445188818, 0.05 -5.566678656094347, 5.608642119493505, -0.0862042247947592, 0.05 -5.84681806189792, 5.602788116071465, -0.11708006844081353, 0.05 -6.126591915009786, 5.5954770622373005, -0.1462210766832861, 0.05 -6.405932668457178, 5.586815068947844, -0.17323986578912098, 0.05 -6.684778855057613, 5.576923732008698, -0.1978267387829291, 0.05 -6.9630756524676825, 5.565935948201393, -0.21975567614610725, 0.05 -7.240775236455232, 5.55399167975098, -0.23888536900825486, 0.05 -7.517836930918899, 5.541233889273356, -0.25515580955246975, 0.05 -7.794227172843426, 5.527804838490532, -0.2685810156564905, 0.05 -8.069919315858593, 5.513842860303349, -0.27923956374365844, 0.05 -8.34430566211701, 5.487726925168351, -0.5223187026999554, 0.05 -8.61619558765286, 5.437798510716994, -0.9985682890271441, 0.05 -8.884407556175628, 5.364239370455353, -1.471182805232818, 0.05 -9.147777589061988, 5.267400657727223, -1.9367742545625966, 0.05 -9.405157886491736, 5.1476059485949595, -2.395894182645275, 0.05 -9.655415099931112, 5.005144268787531, -2.8492335961485615, 0.05 -9.897428385593935, 4.840265713256458, -3.297571110621469, 0.05 -10.130087350480578, 4.653179297732865, -3.7417283104718635, 0.05 -10.352289981595124, 4.444052622290918, -4.182533508838944, 0.05 -10.562940621802328, 4.213012804144083, -4.620796362936694, 0.05 -10.761521918325272, 3.971625930458872, -4.8277374737042145, 0.05 -10.948097163580906, 3.7315049051126925, -4.802420506923593, 0.05 -11.122732895324031, 3.4927146348625153, -4.775805405003544, 0.05 -11.285489911925492, 3.2551403320292303, -4.751486056665701, 0.05 -11.43642348014069, 3.018671364303949, -4.729379354505623, 0.05 -11.575583579368272, 2.7832019845516607, -4.709387595045769, 0.05 -11.703015161513653, 2.548631642907623, -4.691406832880753, 0.05 -11.818758412852894, 2.314865026784839, -4.675332322455681, 0.05 -11.922849008778519, 2.081811918512486, -4.661062165447056, 0.05 -12.015318353079357, 1.8493868860167446, -4.648500649914831, 0.05 -12.096193799097728, 1.617508920367416, -4.637559312986572, 0.05 -12.165498848421812, 1.3861009864816833, -4.628158677714653, 0.05 -12.223253325849692, 1.1550895485575865, -4.620228758481937, 0.05 -12.27003995293007, 0.9357325416075638, -4.387140139000453, 0.05 -12.307012639622451, 0.7394537338476299, -3.925576155198678, 0.05 -12.335330311489729, 0.5663534373455534, -3.4620059300415296, 0.05 -12.356148841547148, 0.4163706011483716, -2.9996567239436365, 0.05 -12.370621829530792, 0.28945975967289544, -2.538216829509523, 0.05 -12.37990125449414, 0.18558849926694038, -2.0774252081191014, 0.05 -12.38513801038801, 0.10473511787739999, -1.6170676277908076, 0.05 -12.387482329381566, 0.04688637987112253, -1.1569747601255491, 0.05 -12.38808409790887, 0.012035370546083533, -0.6970201865007799, 0.05 -12.388093066790098, 1.7937762458166762E-4, -0.2371198584300373, 0.05 -12.388093066790098, 0.0, -0.0035875524916333524, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftRedLoadingToLoadingProfile.csv b/RoboRIO/src/main/resources/calciferLeftRedLoadingToLoadingProfile.csv deleted file mode 100644 index ee893167..00000000 --- a/RoboRIO/src/main/resources/calciferLeftRedLoadingToLoadingProfile.csv +++ /dev/null @@ -1,125 +0,0 @@ -124 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.0025854119335149465, 0.04083867345290763, 0.38199086036250035, 0.05 -0.007179813347359452, 0.0918880282768901, 1.0209870964796495, 0.05 -0.015347811675516694, 0.16335996656314483, 1.4294387657250944, 0.05 -0.028110754995930565, 0.2552588664082774, 1.837977996902651, 0.05 -0.046490353840977064, 0.36759197690092993, 2.2466622098530507, 0.05 -0.07150886476798897, 0.5003702185402381, 2.6555648327861636, 0.05 -0.10418932038878234, 0.6536091124158674, 3.0647778775125856, 0.05 -0.14555581121985223, 0.8273298166213974, 3.4744140841105997, 0.05 -0.1966338307295617, 1.0215603901941894, 3.884611471455841, 0.05 -0.2579397529882633, 1.226118445174033, 4.091161099596872, 0.05 -0.3294806555745737, 1.430818051726207, 4.09399213104348, 0.05 -0.41126509623558866, 1.6356888132202991, 4.097415229881842, 0.05 -0.5033032446275962, 1.840762967840151, 4.101483092397036, 0.05 -0.6056070258964534, 2.046075625377145, 4.106253150739878, 0.05 -0.7181902758353826, 2.2516649987785833, 4.111787468028769, 0.05 -0.8410689025186091, 2.4575725336645298, 4.11815069771893, 0.05 -0.974261051868657, 2.663842987000956, 4.125409066728523, 0.05 -1.1177872727934455, 2.8705244184957692, 4.133628629896267, 0.05 -1.271670677856719, 3.07766810126547, 4.142873655394013, 0.05 -1.4359370937656248, 3.285328318178114, 4.1532043382528805, 0.05 -1.610615197425694, 3.49356207320138, 4.16467510046532, 0.05 -1.7957366325723652, 3.702428702933423, 4.177332594640859, 0.05 -1.9908211034895862, 3.9016894183444184, 3.985214308219911, 0.05 -2.194873577223827, 4.081049474684815, 3.587201126807935, 0.05 -2.4068970104945158, 4.2404686654137755, 3.1883838145792076, 0.05 -2.625891536778161, 4.379890525672905, 2.7884372051825856, 0.05 -2.8508536728215144, 4.499242720867072, 2.3870439038833524, 0.05 -3.0807755699548864, 4.598437942667445, 1.9839044360074531, 0.05 -3.314644334035373, 4.677375281609731, 1.5787467788457121, 0.05 -3.551441434949181, 4.735942018276164, 1.1713347333286706, 0.05 -3.7901422216008442, 4.774015733033264, 0.7614742951419906, 0.05 -4.029715554408041, 4.791466656143938, 0.3490184622134862, 0.05 -4.269645533788407, 4.798599587607317, 0.14265862926757578, 0.05 -4.509935291292673, 4.805795150085321, 0.14391124956008028, 0.05 -4.750587375968236, 4.813041693511264, 0.1449308685188555, 0.05 -4.991603801901597, 4.820328518667221, 0.14573650311914932, 0.05 -5.232986095854485, 4.8276458790577506, 0.14634720781058874, 0.05 -5.474735344496594, 4.834984972842182, 0.1467818756886352, 0.05 -5.716852240774151, 4.842337925551144, 0.1470590541792305, 0.05 -5.959337129135625, 4.849697767229477, 0.14719683356666735, 0.05 -6.202190049148683, 4.857058400261148, 0.14721266063341787, 0.05 -6.445410777445142, 4.864414565929178, 0.14712331336060203, 0.05 -6.688998867652001, 4.871761804137171, 0.14694476415986202, 0.05 -6.932953688280094, 4.879096412561862, 0.14669216849380717, 0.05 -7.177274458426441, 4.886415402926946, 0.1463798073016953, 0.05 -7.421960281125061, 4.893716453972406, 0.14602102090918834, 0.05 -7.667010174559921, 4.900997868697183, 0.14562829449554116, 0.05 -7.912423100840634, 4.908258525614267, 0.1452131383416777, 0.05 -8.158197992604462, 4.915497835276548, 0.14478619324561848, 0.05 -8.404333777328343, 4.922715694477614, 0.1443571840213309, 0.05 -8.650829399402578, 4.929912441484713, 0.14393494014196762, 0.05 -8.897683840148979, 4.9370888149279875, 0.1435274688654964, 0.05 -9.144896135658277, 4.944245910185956, 0.14314190515937852, 0.05 -9.392465392634909, 4.951385139532642, 0.1427845869337041, 0.05 -9.640390802278555, 4.958508192872918, 0.14246106680552373, 0.05 -9.88867165223924, 4.965616999213733, 0.14217612681630243, 0.05 -10.137307336735388, 4.972713689922952, 0.14193381418438733, 0.05 -10.386297364842692, 4.979800562146073, 0.14173744446241088, 0.05 -10.635641367051939, 4.9868800441849475, 0.14158964077749303, 0.05 -10.885339100066307, 4.993954660287369, 0.14149232204843543, 0.05 -11.135390449920079, 5.0010269970754315, 0.1414467357612459, 0.05 -11.385795433406392, 5.008099669726264, 0.14145345301665557, 0.05 -11.63655419783077, 5.015175288487589, 0.14151237522648685, 0.05 -11.887667019087447, 5.022256425133508, 0.14162273291837835, 0.05 -12.139134298052507, 5.029345579301202, 0.14178308335388579, 0.05 -12.390956555265285, 5.036445144255573, 0.14199129908742947, 0.05 -12.64313442386942, 5.043557372082664, 0.14224455654181511, 0.05 -12.895668640791834, 5.050684338448288, 0.14253932731246977, 0.05 -13.1485600360937, 5.057827906037332, 0.1428713517808866, 0.05 -13.401809520467497, 5.064989687475912, 0.14323562877160967, 0.05 -13.655418070767508, 5.072171006000239, 0.14362637048654037, 0.05 -13.909386713611193, 5.079372856873681, 0.14403701746882547, 0.05 -14.163716506902047, 5.0865958658170785, 0.1444601788679556, 0.05 -14.418408519230777, 5.093840246574619, 0.14488761515080384, 0.05 -14.673463807151276, 5.101105758409969, 0.14531023670700804, 0.05 -14.928883390226524, 5.108391661504983, 0.14571806190028624, 0.05 -15.184668223803028, 5.115696671530081, 0.14610020050195516, 0.05 -15.440819169495413, 5.123018913847687, 0.14644484635212507, 0.05 -15.697336963452843, 5.130355879148594, 0.14673930601812657, 0.05 -15.954222182231625, 5.137704375575645, 0.14696992854101865, 0.05 -16.211475206555146, 5.145060486470401, 0.1471222178951237, 0.05 -16.46909618277868, 5.152419524470699, 0.1471807600059627, 0.05 -16.72708498241623, 5.159775992750936, 0.14712936560474787, 0.05 -16.985441159703406, 5.167123545743542, 0.14695105985211399, 0.05 -17.244163907505676, 5.174454956045379, 0.1466282060367341, 0.05 -17.503252011780507, 5.181762085496591, 0.14614258902424737, 0.05 -17.762703804940127, 5.1890358631923705, 0.1454755539155883, 0.05 -18.022517118496634, 5.196266271130111, 0.14460815875480648, 0.05 -18.28268923543892, 5.203442338845694, 0.14352135431165536, 0.05 -18.543051714423086, 5.2072495796833, 0.07614481675211948, 0.05 -18.80286708774597, 5.196307466457677, -0.21884226451245326, 0.05 -19.060990702354978, 5.162472292180205, -0.6767034855494458, 0.05 -19.316271519667527, 5.105616346250972, -1.1371189185846475, 0.05 -19.56755251688817, 5.025619944412896, -1.599928036761522, 0.05 -19.81367120214763, 4.922373705189226, -2.064924784473412, 0.05 -20.05346023088707, 4.795780574788721, -2.531862608010087, 0.05 -20.28574810573366, 4.645757496931797, -3.0004615571384896, 0.05 -20.509359938172135, 4.472236648769485, -3.4704169632462367, 0.05 -20.723118248029223, 4.275166197141793, -3.9414090325538353, 0.05 -20.926010753963112, 4.057850118677807, -4.346321569279716, 0.05 -21.117598228832478, 3.8317494973873356, -4.522012425809434, 0.05 -21.297849888440567, 3.605033192161813, -4.5343261045104555, 0.05 -21.46673788128731, 3.3777598569349303, -4.545466704537651, 0.05 -21.624237166622155, 3.1499857066968744, -4.555483004761118, 0.05 -21.7703253744084, 2.921764155724909, -4.564431019439308, 0.05 -21.90498265137853, 2.6931455394025807, -4.572372326446565, 0.05 -22.02819149952206, 2.464176962870631, -4.579371530638996, 0.05 -22.13993661073317, 2.234902224222215, -4.585494772968319, 0.05 -22.240204702358994, 2.0053618325165017, -4.5908078341142655, 0.05 -22.328984357292867, 1.7755930986774537, -4.595374676780959, 0.05 -22.406265872798834, 1.545630310119356, -4.599255771161954, 0.05 -22.472041119676415, 1.3155049375516363, -4.602507451354394, 0.05 -22.526471311697666, 1.0886038404250196, -4.538021942532335, 0.05 -22.57029538852542, 0.8764815365550438, -4.242446077399515, 0.05 -22.60466219510887, 0.6873361316690135, -3.7829080977206053, 0.05 -22.630721876886902, 0.521193635560638, -3.32284992216751, 0.05 -22.649625553213593, 0.37807352653383347, -2.862402180536091, 0.05 -22.662525050402614, 0.2579899437804288, -2.401671655068094, 0.05 -22.670572685501746, 0.160952701982661, -1.9407448359553552, 0.05 -22.67492109384697, 0.08696816690443929, -1.4796907015644345, 0.05 -22.676723096938474, 0.036040061830107675, -1.0185621014866322, 0.05 -22.67713160813054, 0.00817022384131122, -0.5573967597759291, 0.05 -22.67713160813054, 0.0, -0.1634044768262244, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftRedMidProfile.csv b/RoboRIO/src/main/resources/calciferLeftRedMidProfile.csv deleted file mode 100644 index 947268d2..00000000 --- a/RoboRIO/src/main/resources/calciferLeftRedMidProfile.csv +++ /dev/null @@ -1,63 +0,0 @@ -62 -5.49931793657908E-4, 0.02199727174631632, 0.4399454349263264, 0.05 -0.0027496589682895374, 0.043994543492632585, 0.43994543492632526, 0.05 -0.007699045111210697, 0.09898772285842318, 1.0998635873158118, 0.05 -0.016497953809737204, 0.1759781739705301, 1.5398090222421381, 0.05 -0.030246248651184988, 0.27496589682895567, 1.9797544571685115, 0.05 -0.05004379322287049, 0.39595089143370993, 2.419699892095085, 0.05 -0.07699045111210907, 0.5389331577847717, 2.859645327021235, 0.05 -0.11218608590621662, 0.7039126958821509, 3.299590761947584, 0.05 -0.156730561192509, 0.8908895057258472, 3.739536196873927, 0.05 -0.2117237405583021, 1.0998635873158618, 4.17948163180029, 0.05 -0.27771555579723384, 1.3198363047786348, 4.3994543492554605, 0.05 -0.3547060069093173, 1.5398090222416694, 4.399454349260692, 0.05 -0.4426950938945572, 1.7597817397047977, 4.399454349262566, 0.05 -0.5416828167530191, 1.9797544571692383, 4.399454349288812, 0.05 -0.6516691754846433, 2.1997271746324842, 4.39945434926492, 0.05 -0.7726541700894299, 2.4196998920957324, 4.399454349264964, 0.05 -0.9046378005673469, 2.639672609558339, 4.39945434925213, 0.05 -1.0476200669182596, 2.8596453270182565, 4.399454349198351, 0.05 -1.20160096914232, 3.079618044481207, 4.399454349259013, 0.05 -1.3665805072395272, 3.2995907619441445, 4.399454349258747, 0.05 -1.5425586812098822, 3.5195634794070996, 4.399454349259102, 0.05 -1.7289855592597265, 3.7285375609968874, 4.179481631795756, 0.05 -1.924761277801746, 3.9155143708403894, 3.7395361968700414, 0.05 -2.1287859732486254, 4.0804939089375925, 3.29959076194406, 0.05 -2.339959782013051, 4.223476175288514, 2.859645327018434, 0.05 -2.5571828405077075, 4.344461169893128, 2.419699892092275, 0.05 -2.77935528514528, 4.4434488927514515, 1.9797544571664716, 0.05 -3.0053772523384548, 4.520439343863494, 1.5398090222408456, 0.05 -3.2341488784999153, 4.57543252322921, 1.0998635873143314, 0.05 -3.4645703000423484, 4.608428430848663, 0.6599181523890607, 0.05 -3.6952836182124607, 4.614266363402244, 0.11675865107161343, 0.05 -3.9249309342554115, 4.592946320859017, -0.42640085086453894, 0.05 -4.152412384583538, 4.5496290065625455, -0.8663462859294313, 0.05 -4.376628105609524, 4.484314420519713, -1.306291720856656, 0.05 -4.596478233746043, 4.3970025627303855, -1.7462371557865453, 0.05 -4.81086290540578, 4.2876934331947325, -2.1861825907130594, 0.05 -5.0186822570014105, 4.156387031912612, -2.6261280256424158, 0.05 -5.218836424945615, 4.003083358884094, -3.066073460570351, 0.05 -5.410225545651072, 3.8277824141091443, -3.506018895498997, 0.05 -5.5917497555304605, 3.630484197587762, -3.9459643304276426, 0.05 -5.76256722616338, 3.416349412658395, -4.2826956985873466, 0.05 -5.922386060923093, 3.1963766951942496, -4.399454349282905, 0.05 -6.071206259809596, 2.976403977730069, -4.399454349283616, 0.05 -6.209027822822892, 2.7564312602659236, -4.399454349282905, 0.05 -6.335850749962979, 2.536458542801725, -4.399454349283971, 0.05 -6.4516750412298585, 2.3164858253375975, -4.39945434928255, 0.05 -6.55650069662353, 2.0965131078734345, -4.3994543492832605, 0.05 -6.650327716143992, 1.876540390409236, -4.399454349283971, 0.05 -6.7331560997912465, 1.6565676729450907, -4.399454349282905, 0.05 -6.804985847565294, 1.4365949554809454, -4.399454349282905, 0.05 -6.86581695946613, 1.216622238016729, -4.399454349284326, 0.05 -6.915907470660681, 1.0018102238910132, -4.296240282514319, 0.05 -6.956065348109526, 0.8031575489768983, -3.9730534982822974, 0.05 -6.987390455399983, 0.6265021458091447, -3.5331080633550727, 0.05 -7.010982656119375, 0.47184401438784107, -3.0931626284260716, 0.05 -7.0279418138550245, 0.33918315471298754, -2.6532171934970705, 0.05 -7.039367792194249, 0.22851956678449525, -2.213271758569846, 0.05 -7.046360454724372, 0.13985325060245302, -1.7733263236408447, 0.05 -7.050019665032712, 0.07318420616680754, -1.3333808887129095, 0.05 -7.051445286706593, 0.02851243347761212, -0.8934354537839084, 0.05 -7.051737183333333, 0.005837932534795698, -0.45349001885632845, 0.05 -7.051737183333333, 0.0, -0.11675865069591396, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftRedRightProfile.csv b/RoboRIO/src/main/resources/calciferLeftRedRightProfile.csv deleted file mode 100644 index e2064808..00000000 --- a/RoboRIO/src/main/resources/calciferLeftRedRightProfile.csv +++ /dev/null @@ -1,79 +0,0 @@ -78 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002507879065196211, 0.039288016086532915, 0.35097771303500613, 0.05 -0.0069275633156599, 0.08839368500927379, 0.9821133784548175, 0.05 -0.014784036600622876, 0.1571294656992595, 1.3747156137997143, 0.05 -0.027057870634535727, 0.24547668067825698, 1.7669442995799494, 0.05 -0.04472810924914524, 0.35340477229219025, 2.1585618322786653, 0.05 -0.06877152268837053, 0.4808682687845058, 2.5492699298463104, 0.05 -0.10016171507013927, 0.6278038476353746, 2.9387115770173753, 0.05 -0.13986808301558157, 0.7941273589088458, 3.3264702254694245, 0.05 -0.1888546303890839, 0.9797309474700463, 3.7120717712240103, 0.05 -0.24758941546309102, 1.1746957014801422, 3.899295080201919, 0.05 -0.3160457440330161, 1.3691265713985012, 3.88861739836718, 0.05 -0.3941925905500562, 1.5629369303408014, 3.876207178846003, 0.05 -0.4819947185358387, 1.7560425597156504, 3.8621125874969797, 0.05 -0.5794128707632953, 1.9483630445491318, 3.846409696669628, 0.05 -0.6864040523611583, 2.1398236319572606, 3.8292117481625754, 0.05 -0.8029219398678854, 2.330357750134542, 3.8106823635456255, 0.05 -0.9289174504853913, 2.5199102123501174, 3.7910492443115107, 0.05 -1.064339515870335, 2.7084413076988745, 3.7706219069751423, 0.05 -1.2091361065938702, 2.8959318144707025, 3.74981013543656, 0.05 -1.3632555609938495, 3.0823890879995868, 3.729145470577686, 0.05 -1.5266482698138109, 3.2678541763992266, 3.7093017679927964, 0.05 -1.699268765526361, 3.4524099142510045, 3.6911147570355585, 0.05 -1.8806003404203586, 3.6266314978799543, 3.484431672578996, 0.05 -2.0696630117245403, 3.7812534260836332, 3.0924385640735785, 0.05 -2.265496754561558, 3.916674856740351, 2.708428613134357, 0.05 -2.467162809049132, 4.033321089751491, 2.3329246602227904, 0.05 -2.6737439222665613, 4.1316222643485805, 1.9660234919417974, 0.05 -2.8843433519588366, 4.2119885938455015, 1.6073265899384204, 0.05 -3.098082544645826, 4.274783853739785, 1.2559051978856672, 0.05 -3.314097522079869, 4.320299548680862, 0.910313898821542, 0.05 -3.5315341475730757, 4.348732509864138, 0.568659223665513, 0.05 -3.749542579323742, 4.360168635013317, 0.22872250298359376, 0.05 -3.9677459237594244, 4.3640668887136504, 0.07796507400666286, 0.05 -4.186237970001418, 4.369840924839875, 0.11548072252448804, 0.05 -4.405107935179111, 4.377399303553857, 0.151167574279647, 0.05 -4.624439057076714, 4.38662243795205, 0.18446268796385112, 0.05 -4.844307437669154, 4.3973676118487965, 0.2149034779349357, 0.05 -5.064781169497488, 4.409474636566687, 0.24214049435780538, 0.05 -5.285919757203556, 4.422771754121344, 0.2659423510931447, 0.05 -5.507773828085872, 4.43708141764633, 0.28619327049971943, 0.05 -5.7303851099654155, 4.452225637590872, 0.3028843988908392, 0.05 -5.953786643038549, 4.468030661462666, 0.31610047743587444, 0.05 -6.178003185057729, 4.484330840383591, 0.3260035784185078, 0.05 -6.402910253358908, 4.498141366023587, 0.27621051279991704, 0.05 -6.627882219192085, 4.499439316663545, 0.025959012799159353, 0.05 -6.8519264776864395, 4.4808851698870775, -0.3710829355293477, 0.05 -7.074030589347931, 4.442082233229836, -0.7760587331448221, 0.05 -7.293163911953531, 4.382666452111999, -1.1883156223567504, 0.05 -7.5082796016046585, 4.30231379302254, -1.6070531817891798, 0.05 -7.718316829891096, 4.200744565728742, -2.0313845458759516, 0.05 -7.922203088725012, 4.077725176678312, -2.460387781008606, 0.05 -8.118856482478455, 3.9330678750688697, -2.893146032188847, 0.05 -8.30718793708578, 3.7666290921465304, -3.3287756584467854, 0.05 -8.486249410428545, 3.5812294668553015, -3.7079925058245777, 0.05 -8.655598265512637, 3.386977101681845, -3.885047303469129, 0.05 -8.815157219655921, 3.1911790828656863, -3.9159603763231754, 0.05 -8.964855903378185, 2.9939736744452663, -3.9441081684084, 0.05 -9.104630516129816, 2.795492255032633, -3.969628388252664, 0.05 -9.23442345797141, 2.595858836831873, -3.992668364015204, 0.05 -9.35418295704714, 2.395189981514606, -4.013377106345342, 0.05 -9.463862708065413, 2.193595020365473, -4.031899222982656, 0.05 -9.563421529796505, 1.9911764346218497, -4.048371714872467, 0.05 -9.652823049031893, 1.7880303847077552, -4.062920998281889, 0.05 -9.732035412796836, 1.584247275298878, -4.075662188177542, 0.05 -9.80103103176678, 1.3799123793988544, -4.086697918000475, 0.05 -9.85978635488024, 1.1751064622692275, -4.096118342592536, 0.05 -9.908430312919776, 0.9728791607907019, -4.044546029570513, 0.05 -9.94761077233237, 0.7836091882518653, -3.785399450776732, 0.05 -9.978346296734847, 0.6147104880495352, -3.377974004046602, 0.05 -10.00165931755646, 0.4662604164322493, -2.969001432345718, 0.05 -10.018575212730813, 0.33831790348705576, -2.558850258903871, 0.05 -10.030121528672876, 0.2309263188412466, -2.147831692916183, 0.05 -10.037327332171778, 0.14411606997805232, -1.7362049772638855, 0.05 -10.041222684924294, 0.07790705505035164, -1.3241802985540134, 0.05 -10.042838233847936, 0.03231097847282725, -0.9119215315504878, 0.05 -10.04320491371034, 0.007333597248086813, -0.49954762449480866, 0.05 -10.04320491371034, 0.0, -0.14667194496173624, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftRedShootProfile.csv b/RoboRIO/src/main/resources/calciferLeftRedShootProfile.csv deleted file mode 100644 index 3849b839..00000000 --- a/RoboRIO/src/main/resources/calciferLeftRedShootProfile.csv +++ /dev/null @@ -1,61 +0,0 @@ -60 -5.571761821131456E-4, 0.022287047284525824, 0.4457409456905165, 0.05 -0.0032325893677627024, 0.05350826371299113, 0.6244243285693061, 0.05 -0.009252111334715322, 0.12039043933905237, 1.337643512521225, 0.05 -0.019952931786456234, 0.21401640903481825, 1.8725193939153175, 0.05 -0.03667149334196884, 0.3343712311102522, 2.4070964415086786, 0.05 -0.06074288760842538, 0.4814278853291308, 2.941133084377572, 0.05 -0.09349990757959509, 0.6551403994233941, 3.474250281885266, 0.05 -0.1362715710500687, 0.8554332694094724, 4.005857399721566, 0.05 -0.19038085160844836, 1.0821856111675932, 4.535046835162415, 0.05 -0.257141266414601, 1.3352082961230523, 5.060453699109182, 0.05 -0.3371852015320185, 1.6008787023483497, 5.3134081245059495, 0.05 -0.4304613589803245, 1.8655231489661201, 5.2928889323554085, 0.05 -0.5368986414304665, 2.12874564900284, 5.264450000734393, 0.05 -0.6564014804113434, 2.3900567796175367, 5.226222612293938, 0.05 -0.7888450557429227, 2.648871506631588, 5.176294540281026, 0.05 -0.9340707653055479, 2.904514191252503, 5.1128536924183, 0.05 -1.0918823817555896, 3.1562323290008334, 5.034362754966608, 0.05 -1.2620433741611574, 3.4032198481113562, 4.939750382210457, 0.05 -1.4442758490109942, 3.644649496996734, 4.828592977707551, 0.05 -1.6382614563961442, 3.879712147702999, 4.701253014125308, 0.05 -1.8430051715317746, 4.094874302712607, 4.303243100192153, 0.05 -2.056868377506385, 4.277264119492209, 3.6477963355920373, 0.05 -2.2782383195174716, 4.427398840221728, 3.0026944145903833, 0.05 -2.5055432865691585, 4.54609934103374, 2.3740100162402378, 0.05 -2.737264759449558, 4.6344294576079905, 1.7666023314850143, 0.05 -2.9719456634631674, 4.693618080272182, 1.1837724532838223, 0.05 -3.208194576456215, 4.72497825986095, 0.6272035917753627, 0.05 -3.4446863625045907, 4.729835720967517, 0.09714922213134969, 0.05 -3.6801601108024786, 4.709474965957756, -0.40721510019523066, 0.05 -3.9133057014549615, 4.662911813049655, -0.9312630581620063, 0.05 -4.142874395118047, 4.5913738732616975, -1.4307587957591572, 0.05 -4.367781527220974, 4.4981426420585615, -1.8646246240627207, 0.05 -4.58699046719992, 4.384178799578905, -2.279276849593135, 0.05 -4.799509855158807, 4.2503877591777535, -2.675820808023026, 0.05 -5.004391684478107, 4.0976365863859865, -3.0550234558353395, 0.05 -5.200729962644302, 3.926765563323889, -3.417420461241951, 0.05 -5.3876595281836925, 3.738591310787819, -3.763485050721398, 0.05 -5.564354516053379, 3.533899757393733, -4.093831067881721, 0.05 -5.730025954278246, 3.3134287644973326, -4.4094198579280075, 0.05 -5.884015951032808, 3.0797999350912266, -4.672576588122119, 0.05 -6.026203049290736, 2.8437419651585576, -4.721159398653381, 0.05 -6.156877063091782, 2.613480276020937, -4.605233782752416, 0.05 -6.2763101363728735, 2.3886614656218175, -4.496376207982387, 0.05 -6.384755627833958, 2.1689098292216893, -4.395032728002564, 0.05 -6.482446938583373, 1.9538262149883052, -4.301672284667681, 0.05 -6.569596455073783, 1.7429903298081901, -4.216717703602302, 0.05 -6.646394728892468, 1.5359654763737, -4.140497068689801, 0.05 -6.713009959073658, 1.332304603623809, -4.0732174549978195, 0.05 -6.769587789263467, 1.1315566037961609, -4.014959996552965, 0.05 -6.81634303475918, 0.9351049099142651, -3.9290338776379152, 0.05 -6.8539501689762, 0.7521426843404073, -3.6592445114771555, 0.05 -6.883448136832523, 0.5899593571264544, -3.243666544279058, 0.05 -6.905851425723556, 0.4480657778206655, -2.837871586115779, 0.05 -6.92215579022411, 0.3260872900110851, -2.439569756191607, 0.05 -6.93334313908418, 0.22374697720139589, -2.046806256193784, 0.05 -6.94038562223649, 0.1408496630461877, -1.6579462831041636, 0.05 -6.944248958543059, 0.07726672613137558, -1.2716587382962423, 0.05 -6.945895039488403, 0.032921618906875165, -0.8869021444900084, 0.05 -6.946283834292208, 0.007775896076096069, -0.5029144566155819, 0.05 -6.946283834292208, 0.0, -0.15551792152192137, 0.05 diff --git a/RoboRIO/src/main/resources/calciferLeftforward100InProfile.csv b/RoboRIO/src/main/resources/calciferLeftforward100InProfile.csv deleted file mode 100644 index 5206ca4a..00000000 --- a/RoboRIO/src/main/resources/calciferLeftforward100InProfile.csv +++ /dev/null @@ -1,68 +0,0 @@ -67 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.0027173913043478243, 0.04347826086956518, 0.43478260869565144, 0.05 -0.007608695652173899, 0.09782608695652148, 1.086956521739126, 0.05 -0.016304347826086918, 0.17391304347826042, 1.5217391304347787, 0.05 -0.02989130434782601, 0.2717391304347819, 1.956521739130429, 0.05 -0.04945652173913106, 0.3913043478261009, 2.3913043478263805, 0.05 -0.07608695652174083, 0.5326086956521955, 2.8260869565218916, 0.05 -0.1108695652173944, 0.6956521739130713, 3.260869565217517, 0.05 -0.15489130434783097, 0.8804347826087313, 3.6956521739132, 0.05 -0.2092391304347897, 1.0869565217391746, 4.130434782608865, 0.05 -0.2744565217391353, 1.3043478260869124, 4.347826086954756, 0.05 -0.35054347826085114, 1.5217391304343164, 4.347826086948081, 0.05 -0.437499999999955, 1.7391304347820769, 4.347826086955209, 0.05 -0.5353260869564568, 1.956521739130036, 4.347826086959183, 0.05 -0.644021739130412, 2.1739130434791054, 4.347826086981388, 0.05 -0.7635869565217627, 2.3913043478270124, 4.34782608695814, 0.05 -0.894021739130509, 2.608695652174926, 4.347826086958273, 0.05 -1.0353260869566507, 2.826086956522833, 4.34782608695814, 0.05 -1.1874999999999856, 3.0434782608666966, 4.347826086877271, 0.05 -1.3505434782606922, 3.260869565214133, 4.347826086948725, 0.05 -1.524456521738779, 3.478260869561738, 4.3478260869521, 0.05 -1.7092391304342465, 3.6956521739093473, 4.347826086952189, 0.05 -1.9048913043470945, 3.913043478256961, 4.347826086952278, 0.05 -2.1108695652164533, 4.1195652173871755, 4.130434782604286, 0.05 -2.326086956520586, 4.304347826082653, 3.695652173909547, 0.05 -2.549456521737754, 4.467391304343362, 3.260869565214186, 0.05 -2.7798913043462194, 4.608695652169308, 2.826086956518914, 0.05 -3.0163043478242435, 4.728260869560481, 2.391304347823464, 0.05 -3.257608695650089, 4.826086956516908, 1.9565217391285472, 0.05 -3.502717391302018, 4.902173913038581, 1.5217391304334527, 0.05 -3.750543478258292, 4.956521739125481, 1.0869565217380028, 0.05 -3.9999999999971734, 4.989130434777627, 0.6521739130429083, 0.05 -4.249999999997386, 5.000000000004254, 0.21739130453255484, 0.05 -4.499637862317328, 4.992757246398831, -0.14485507210846293, 0.05 -4.748007971014006, 4.967402173933575, -0.5071014493051251, 0.05 -4.994023369565676, 4.920307971033395, -0.9418840580035948, 0.05 -5.236597101450595, 4.851474637698381, -1.376666666700288, 0.05 -5.474642210147018, 4.760902173928461, -1.8114492753984024, 0.05 -5.707071739133202, 4.64859057972367, -2.246231884095806, 0.05 -5.9327987318874, 4.514539855083957, -2.681014492794276, 0.05 -6.150736231887871, 4.358750000009426, -3.115797101490614, 0.05 -6.35979728261287, 4.1812210144999895, -3.550579710188728, 0.05 -6.558894927540653, 3.9819528985556474, -3.9853623188868426, 0.05 -6.747304347830671, 3.768188405800359, -4.275289855105768, 0.05 -6.924844202903249, 3.5507971014515682, -4.3478260869758145, 0.05 -7.091514492758385, 3.333405797102724, -4.34782608697688, 0.05 -7.247315217396082, 3.1160144927539335, -4.3478260869758145, 0.05 -7.3922463768163365, 2.8986231884050895, -4.34782608697688, 0.05 -7.526307971019151, 2.6812318840562988, -4.3478260869758145, 0.05 -7.649500000004525, 2.4638405797074725, -4.347826086976525, 0.05 -7.761822463772457, 2.2464492753586462, -4.347826086976525, 0.05 -7.86327536232295, 2.0290579710098555, -4.3478260869758145, 0.05 -7.953858695656001, 1.8116666666610115, -4.34782608697688, 0.05 -8.033572463771613, 1.5942753623122208, -4.3478260869758145, 0.05 -8.102416666669784, 1.37688405796343, -4.3478260869758145, 0.05 -8.160391304350512, 1.1594927536145505, -4.347826086977591, 0.05 -8.207858514494996, 0.9493442028896837, -4.2029710144973365, 0.05 -8.245723913045303, 0.7573079710061492, -3.8407246376706894, 0.05 -8.275074456523177, 0.5870108695574672, -3.405942028973641, 0.05 -8.29699710145036, 0.4384528985436731, -2.9711594202758818, 0.05 -8.3125788043486, 0.3116340579648025, -2.536376811577412, 0.05 -8.322906521739638, 0.20655434782074877, -2.101594202881074, 0.05 -8.32906721014522, 0.12321376811165408, -1.666811594181894, 0.05 -8.33214782608709, 0.06161231883737628, -1.232028985485556, 0.05 -8.33323532608699, 0.021749999998021963, -0.7972463767870863, 0.05 -8.333416666666666, 0.003626811593520074, -0.3624637680900378, 0.05 -8.333416666666666, 0.0, -0.07253623187040148, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightBlueBackupProfile.csv b/RoboRIO/src/main/resources/calciferRightBlueBackupProfile.csv deleted file mode 100644 index 96e3c2c0..00000000 --- a/RoboRIO/src/main/resources/calciferRightBlueBackupProfile.csv +++ /dev/null @@ -1,49 +0,0 @@ -48 -5.227250022608844E-4, 0.020909000090435375, 0.41818000180870746, 0.05 -0.002881843550035357, 0.047182370955489446, 0.31089258165197287, 0.05 -0.00818496433981288, 0.10606241579555047, 0.9132990689388265, 0.05 -0.01759602709640648, 0.18822125513187196, 1.2840830140124404, 0.05 -0.03225813354343619, 0.2932421289405943, 1.6632018603923786, 0.05 -0.05328056113476888, 0.4204485518266538, 2.055849901933539, 0.05 -0.08172294470399875, 0.5688476713845974, 2.468354409731648, 0.05 -0.11857694755715203, 0.7370800570630655, 2.9080471549192275, 0.05 -0.16474574741960396, 0.9233759972490385, 3.383134580044842, 0.05 -0.2210215192287427, 1.1255154361827742, 3.902625078561477, 0.05 -0.2875113483817807, 1.32979658306076, 4.277975644105873, 0.05 -0.36366429676493606, 1.5230589676631068, 4.49835917612055, 0.05 -0.4488432031073464, 1.7035781268482066, 4.753229474548593, 0.05 -0.5423179747376319, 1.86949543260571, 5.045258439146316, 0.05 -0.6427543131874434, 2.0087267689962305, 5.160756159125834, 0.05 -0.7482751353943506, 2.110416444138145, 5.07512930683637, 0.05 -0.8569995315771876, 2.1744879236567374, 4.990949418202968, 0.05 -0.9670403896487756, 2.2008171614317606, 4.909141304866278, 0.05 -1.0765058649566095, 2.1893095061566794, 4.829093648099763, 0.05 -1.183513997239142, 2.1401626456506473, 4.744943355109417, 0.05 -1.2862328628313044, 2.0543773118432505, 4.64063200718793, 0.05 -1.3829610405771076, 1.9345635549160605, 4.484015406083985, 0.05 -1.4722614265507683, 1.7860077194732165, 4.221679486249972, 0.05 -1.5528784166550165, 1.6123398020849649, 3.4731761936380146, 0.05 -1.6243354378530523, 1.4291404239607177, 2.41373303731816, 0.05 -1.687268904848185, 1.2586693399026552, 1.3236979007624328, 0.05 -1.743051213046253, 1.1156461639613575, -0.05997025501482511, 0.05 -1.7935267525704703, 1.0095107904843483, -1.6319965795059588, 0.05 -1.8405823369898338, 0.9411116883872703, -3.2211031390501965, 0.05 -1.8857089902595479, 0.9025330653942829, -4.652509188798, 0.05 -1.9297180778979721, 0.8801817527684859, -5.812878465703513, 0.05 -1.9726778976403054, 0.8591963948466678, -6.6767387571687475, 0.05 -2.0140255445068767, 0.8269529373314284, -7.288561598030308, 0.05 -2.0530077181272928, 0.7796434724083227, -7.410504998013412, 0.05 -2.0889394871871323, 0.7186353811967922, -7.141578006059994, 0.05 -2.12112738425728, 0.6437579414029587, -6.864822742797374, 0.05 -2.1489391481401587, 0.5562352776575682, -6.612368720497228, 0.05 -2.172124330713799, 0.4637036514728106, -6.098537214072697, 0.05 -2.190856911070013, 0.3746516071242726, -5.336181988951347, 0.05 -2.205445789884081, 0.2917775762813636, -4.623501218246933, 0.05 -2.2163020595513876, 0.21712539334613745, -3.951641778516486, 0.05 -2.2239124499030507, 0.1522078070332582, -3.3100059083016817, 0.05 -2.2288170764244803, 0.09809253042859492, -2.6897069093766146, 0.05 -2.231591464430491, 0.05548776012020658, -2.08356293152941, 0.05 -2.2328325598910443, 0.024821909211072753, -1.4859834109169339, 0.05 -2.2331484395186605, 0.006317592552326459, -0.8928544191163148, 0.05 -2.2331515200165395, 6.160995758018329E-5, -0.3014611432556367, 0.05 -2.2331515200165395, 0.0, -0.0029682364739050306, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightBlueBoilerToLoadingProfile.csv b/RoboRIO/src/main/resources/calciferRightBlueBoilerToLoadingProfile.csv deleted file mode 100644 index c6724754..00000000 --- a/RoboRIO/src/main/resources/calciferRightBlueBoilerToLoadingProfile.csv +++ /dev/null @@ -1,152 +0,0 @@ -151 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002717391304347822, 0.04347826086956514, 0.4347826086956506, 0.05 -0.007608695652173897, 0.09782608695652148, 1.0869565217391268, 0.05 -0.016304347826086918, 0.17391304347826042, 1.5217391304347787, 0.05 -0.029891304347826463, 0.27173913043479087, 1.956521739130609, 0.05 -0.04945652173913161, 0.391304347826103, 2.391304347826243, 0.05 -0.07608695652174138, 0.5326086956521955, 2.8260869565218494, 0.05 -0.11086956521739495, 0.6956521739130713, 3.260869565217517, 0.05 -0.15489130434783155, 0.8804347826087319, 3.695652173913211, 0.05 -0.20923913043477188, 1.0869565217388066, 4.130434782601495, 0.05 -0.27445652173909973, 1.304347826086557, 4.347826086955009, 0.05 -0.350543478260842, 1.5217391304348449, 4.347826086965756, 0.05 -0.4375000000000061, 1.7391304347832826, 4.3478260869687535, 0.05 -0.5353260869565658, 1.956521739131194, 4.347826086958229, 0.05 -0.6440217391304945, 2.1739130434785747, 4.347826086947615, 0.05 -0.7635869565216794, 2.3913043478236973, 4.347826086902451, 0.05 -0.8940217391302444, 2.6086956521713, 4.347826086952056, 0.05 -1.0353260869561902, 2.826086956518914, 4.347826086952278, 0.05 -1.1874999999995164, 3.0434782608665234, 4.347826086952189, 0.05 -1.350543478260223, 3.260869565214133, 4.347826086952189, 0.05 -1.5244565217383097, 3.4782608695617334, 4.347826086952011, 0.05 -1.709239130433777, 3.6956521739093473, 4.347826086952278, 0.05 -1.904891304346625, 3.9130434782569568, 4.347826086952189, 0.05 -2.1108695652159843, 4.119565217387184, 4.130434782604553, 0.05 -2.3260869565201174, 4.304347826082662, 3.695652173909547, 0.05 -2.5494565217375595, 4.467391304348842, 3.2608695653236097, 0.05 -2.779891304347304, 4.608695652194887, 2.8260869569209035, 0.05 -3.016304347826641, 4.7282608695867445, 2.391304347837142, 0.05 -3.257608695653826, 4.826086956543696, 1.9565217391390277, 0.05 -3.5027173913071152, 4.902173913065786, 1.5217391304418015, 0.05 -3.7505434782647646, 4.956521739152988, 1.0869565217440424, 0.05 -4.000000000005031, 4.989130434805329, 0.6521739130468163, 0.05 -4.2500000000061675, 5.000000000022737, 0.217391304348169, 0.05 -4.500000000007306, 5.000000000022773, 7.105427357601002E-13, 0.05 -4.750000000008443, 5.000000000022737, -7.105427357601002E-13, 0.05 -5.000000000009582, 5.000000000022773, 7.105427357601002E-13, 0.05 -5.22241254735571, 4.448250946922575, 10.787819820599278, 0.05 -5.443753129219028, 4.426811637266355, 0.6701176685793264, 0.05 -5.663725447614075, 4.399446367900928, 0.5467360913308639, 0.05 -5.882309874689655, 4.371688541511594, 0.5545504541471225, 0.05 -6.099501870787017, 4.343839921947236, 0.5563387594866498, 0.05 -6.315315334044061, 4.316269265140888, 0.5507572512310688, 0.05 -6.52978597961773, 4.28941291147339, 0.536462372505877, 0.05 -6.742974484871042, 4.263770105066227, 0.5121980832726614, 0.05 -6.954969099717576, 4.239892296930671, 0.47692204946660155, 0.05 -7.165887374072374, 4.21836548709596, 0.4299475673244224, 0.05 -7.375876637709667, 4.199785272745871, 0.37108247507095626, 0.05 -7.585112929391575, 4.184725833638157, 0.3007571428295641, 0.05 -7.793798167375193, 4.17370475967236, 0.22010049791976627, 0.05 -8.002155535096175, 4.167147354419662, 0.13095473044099748, 0.05 -8.210423261341813, 4.165354524912727, 0.03580367864151057, 0.05 -8.418847185607161, 4.168478485306976, -0.062386879920843796, 0.05 -8.627672685458872, 4.17650999703422, -0.160394410642688, 0.05 -8.837136633162205, 4.18927895406664, -0.25500891530750636, 0.05 -9.047460050328478, 4.206468343325463, -0.3432984838247144, 0.05 -9.258842023412752, 4.2276394616854684, -0.42283413285169047, 0.05 -9.471455262436761, 4.252264780480173, -0.4918421670378592, 0.05 -9.685443467599201, 4.2797641032488105, -0.5492701740438655, 0.05 -9.900920458788285, 4.3095398237816545, -0.5947690951182061, 0.05 -10.117970854678536, 4.341007917805004, -0.6286084499733136, 0.05 -10.336651981586567, 4.373622538160609, -0.6515485266554322, 0.05 -10.556996647366159, 4.406893315591837, -0.6646957299677858, 0.05 -10.779016427492676, 4.440395602530356, -0.6693605391671831, 0.05 -11.002705153882575, 4.473774527797955, -0.6669353920925403, 0.05 -11.228042364881782, 4.506744219984129, -0.6587974234728655, 0.05 -11.454996543649683, 4.539083575358014, -0.6462397854419599, 0.05 -11.68352803829554, 4.570629892917145, -0.6304279239803812, 0.05 -11.91359160643368, 4.601271362762813, -0.6123791607106988, 0.05 -12.14513857347959, 4.630939340918193, -0.5929554287226324, 0.05 -12.378118616845205, 4.659600867312306, -0.5728696970248492, 0.05 -12.612481207447187, 4.687251812039642, -0.5526984376498767, 0.05 -12.848176749848236, 4.713910848020958, -0.5328974329579239, 0.05 -13.08515746429511, 4.73961428893747, -0.5138194750106706, 0.05 -13.32337805330787, 4.764411780255199, -0.49573170746702644, 0.05 -13.562796194511053, 4.788362824063669, -0.47883077739042434, 0.05 -13.803372892529389, 4.81153396036672, -0.4632582328545354, 0.05 -14.0450727231399, 4.833996612210224, -0.4491116867347067, 0.05 -14.287863993905727, 4.855825415316557, -0.43645590071296425, 0.05 -14.531718843903208, 4.8770969999496145, -0.4253308349622742, 0.05 -14.776613298992647, 4.897889101788768, -0.41575903014368976, 0.05 -15.022527297391472, 4.918279967976482, -0.40775083321936023, 0.05 -15.269444696026417, 4.938347972698915, -0.401308989281155, 0.05 -15.517353265919402, 4.958171397859683, -0.3964320925393672, 0.05 -15.766244683638488, 4.97782835438174, -0.393116817503838, 0.05 -16.016114522760976, 4.997396782449781, -0.3913599494731024, 0.05 -16.266962248289513, 5.016954510570769, -0.39115954434853606, 0.05 -16.518791215781498, 5.036579349839717, -0.3925154296751643, 0.05 -16.771608675148144, 5.056349187332916, -0.3954293628931005, 0.05 -17.02542577807913, 5.076342058619709, -0.39990453093659895, 0.05 -17.280257586564314, 5.096636169703728, -0.40594453509744, 0.05 -17.53612307833448, 5.117309835403299, -0.413551812096955, 0.05 -17.79304514339749, 5.138441301260178, -0.42272531809414815, 0.05 -18.051050564343644, 5.160108418923109, -0.4334571974659518, 0.05 -18.31016996933644, 5.1823880998559035, -0.4457290018800464, 0.05 -18.57043774483601, 5.205355509991417, -0.45950638894858287, 0.05 -18.83189189291808, 5.229082961641375, -0.47473206609597085, 0.05 -19.094573810840547, 5.253638358449361, -0.49131842992489183, 0.05 -19.35852796982766, 5.2790831797422015, -0.5091370989719834, 0.05 -19.6238014626555, 5.305469856556793, -0.5280075353871005, 0.05 -19.890443387221403, 5.332838491318069, -0.5476828345378593, 0.05 -20.158504024942225, 5.361212754416443, -0.5678350392298626, 0.05 -20.428033774545135, 5.3905949920581735, -0.5880371710468069, 0.05 -20.69908179579616, 5.420960425020504, -0.6077462755579965, 0.05 -20.971694320710107, 5.452250498278898, -0.62628688395586, 0.05 -21.24591260036683, 5.484365593134466, -0.6428363478158872, 0.05 -21.521770465979486, 5.51715731225312, -0.6564176876231365, 0.05 -21.799291508874045, 5.550420857891194, -0.6659020158185669, 0.05 -22.07848592595327, 5.583888341584486, -0.6700241702534804, 0.05 -22.359347117650344, 5.61722383394151, -0.667421446985017, 0.05 -22.641848197201803, 5.6500215910291915, -0.6566938495811492, 0.05 -22.925938631815825, 5.68180869228041, -0.6364944777442183, 0.05 -23.211541307692077, 5.7120535175250335, -0.6056459176204854, 0.05 -23.498550363159403, 5.740181109346538, -0.5632780281632677, 0.05 -23.78683015393623, 5.765595815536564, -0.5089745400791301, 0.05 -24.07621568773126, 5.787710675900639, -0.44290798416227517, 0.05 -24.366514774768387, 5.805981740742547, -0.365938992079613, 0.05 -24.65751198844645, 5.819944273561268, -0.27965438057377057, 0.05 -24.948508381164817, 5.819927854367288, -0.31949059821897663, 0.05 -25.238159767697205, 5.793027730647766, -0.5359224465610346, 0.05 -25.524955914374633, 5.7359229335485935, -0.801097643203974, 0.05 -25.807405772947074, 5.648997171448816, -1.0739751109837137, 0.05 -26.084052834478193, 5.532941230622348, -1.3607166798135495, 0.05 -26.353486489667173, 5.388673103779561, -1.665877093972492, 0.05 -26.614348632542292, 5.217242857502374, -1.992104007597737, 0.05 -26.865335540055256, 5.019738150259246, -2.3401447273204923, 0.05 -27.105195660248654, 4.797202403867982, -2.709107469450256, 0.05 -27.332724320531828, 4.55057320566347, -3.096863919176336, 0.05 -27.547212262440087, 4.289758838165223, -3.363237128811747, 0.05 -27.74859357909098, 4.027626333017855, -3.452201935951571, 0.05 -27.93697545258283, 3.7676374698370085, -3.495215529050677, 0.05 -28.11246743530203, 3.509839654383992, -3.5391580452153537, 0.05 -28.275177531297174, 3.2542019199028998, -3.5824627813283794, 0.05 -28.42520942193064, 3.0006378126692956, -3.6240231002287704, 0.05 -28.562660594975696, 2.749023460901133, -3.663090601405692, 0.05 -28.687621152660935, 2.499211153704746, -3.699189588973324, 0.05 -28.80017311091687, 2.2510391651187147, -3.7320462676223753, 0.05 -28.90039006456881, 2.004339073038801, -3.761524172638442, 0.05 -28.988337086483305, 1.758940438289869, -3.7875848343510388, 0.05 -29.06407077739129, 1.5146738181597241, -3.810252656137183, 0.05 -29.127639419401373, 1.2713728402016584, -3.8295839180333457, 0.05 -29.179526291601075, 1.0377374439940599, -3.7033103961434177, 0.05 -29.22080794361707, 0.8256330403199577, -3.3795535577670788, 0.05 -29.252711059644152, 0.6380623205416208, -3.0006717219651025, 0.05 -29.27645465900911, 0.4748719872991951, -2.6187178474950557, 0.05 -29.293251983234594, 0.33594648450962666, -2.234452475713342, 0.05 -29.30431209951613, 0.22120232563073958, -1.8485156520362478, 0.05 -29.31084122506184, 0.1305825109141231, -1.4614374646352395, 0.05 -29.31404378607192, 0.06405122020161136, -1.0736429051736944, 0.05 -29.3151232237102, 0.02158875276553844, -0.6854543937919944, 0.05 -29.31528255261118, 0.003186578019631716, -0.29709401900733934, 0.05 -29.31528255261118, 0.0, -0.05144714502436782, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightBlueLeftProfile.csv b/RoboRIO/src/main/resources/calciferRightBlueLeftProfile.csv deleted file mode 100644 index 08c5be2d..00000000 --- a/RoboRIO/src/main/resources/calciferRightBlueLeftProfile.csv +++ /dev/null @@ -1,78 +0,0 @@ -77 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002555019167668077, 0.04023081813597023, 0.4997314150060453, 0.05 -0.007080819548369013, 0.09051600761401872, 1.1682093260444564, 0.05 -0.015126116085535685, 0.1609059307433334, 1.6356796459319756, 0.05 -0.027695428158481274, 0.25138624145891175, 2.1034369987423904, 0.05 -0.045792096820766647, 0.3619333732457074, 2.5716652793640216, 0.05 -0.07041770440654671, 0.49251215171560114, 3.0405964523777538, 0.05 -0.10257137005940782, 0.6430733130572222, 3.5105121544297746, 0.05 -0.14324891429446138, 0.8135508847010711, 3.981745751942183, 0.05 -0.19344188574201782, 1.0038594289511287, 4.454685967100993, 0.05 -0.25363500833262626, 1.2038624518121688, 4.695571699134136, 0.05 -0.3238069889442045, 1.403439612231565, 4.704080066624057, 0.05 -0.4039327289691339, 1.6025148004985883, 4.7141087476893695, 0.05 -0.4939832213717279, 1.8010098480518792, 4.72569854509342, 0.05 -0.5939254462017101, 1.9988444965996435, 4.738890612525601, 0.05 -0.7037222730237491, 2.1959365364407812, 4.753723870004354, 0.05 -0.8233323790956599, 2.392202121438217, 4.77023045341606, 0.05 -0.952710196966259, 2.5875563574119824, 4.788430719309806, 0.05 -1.0918059084251344, 2.7819142291775067, 4.808326389167474, 0.05 -1.240565506791416, 2.975191967325633, 4.829891895390492, 0.05 -1.3989309547600475, 3.167308959372629, 4.8530631509070865, 0.05 -1.5668404728356564, 3.358190361512177, 4.87772408557924, 0.05 -1.744228999646401, 3.547770536214893, 4.903689409078318, 0.05 -1.9305379061877368, 3.7261781308267152, 4.692308040215707, 0.05 -2.1247221861937757, 3.883685600120775, 4.24071430553651, 0.05 -2.325746995407922, 4.02049618428292, 3.785064234681581, 0.05 -2.5325897204098, 4.136854500037564, 3.324532664191615, 0.05 -2.7442418516731077, 4.233042625266155, 2.858372413399195, 0.05 -2.9597105401547346, 4.309373769632538, 2.3859629538497096, 0.05 -3.1780197033585185, 4.366183264075678, 1.9068633158057047, 0.05 -3.398210547726503, 4.403816887359695, 1.4208651065398215, 0.05 -3.6193413916122066, 4.422616877714069, 0.9280390750257261, 0.05 -3.8404867074360585, 4.422906316477038, 0.42876678582237204, 0.05 -4.061214758411386, 4.414561019506552, 0.16673377791381228, 0.05 -4.281581475044782, 4.407334332667934, 0.1443826897084044, 0.05 -4.501647660701352, 4.401323713131383, 0.12008532490421331, 0.05 -4.721478321586324, 4.396613217699442, 0.09410944107628438, 0.05 -4.941141853565952, 4.393270639592554, 0.06677979092703623, 0.05 -5.160709108663971, 4.39134510196038, 0.03846923034647176, 0.05 -5.380252371505671, 4.390865256834006, 0.009586534082988152, 0.05 -5.59984428221639, 4.391838214214376, -0.019438133370162092, 0.05 -5.819556745913994, 4.394249273952082, -0.04816926867036386, 0.05 -6.039459869940862, 4.398062480537363, -0.076182420670321, 0.05 -6.25933396070144, 4.3974818152115525, -0.24881564449762195, 0.05 -6.478474135858947, 4.382803503150124, -0.6621205092131532, 0.05 -6.695972433757934, 4.349965957979743, -1.16840814959696, 0.05 -6.910906617754184, 4.298683679924992, -1.669001340799472, 0.05 -7.1223383487948135, 4.228634620812593, -2.163171512224764, 0.05 -7.329312221020663, 4.139477444516982, -2.6505337325431633, 0.05 -7.530855629795373, 4.030868175494196, -3.131035098586672, 0.05 -7.725979385452628, 3.902475113145101, -3.6049197336332917, 0.05 -7.913678947502198, 3.7539912409914047, -4.072679543684856, 0.05 -8.092936138419807, 3.5851438183521878, -4.534997585452469, 0.05 -8.263014390424866, 3.401565040101173, -4.849416606586487, 0.05 -8.423660496794993, 3.212922127402549, -4.922414914213746, 0.05 -8.574817020561623, 3.023130475332594, -4.899501201736509, 0.05 -8.71642816204279, 2.8322228296233476, -4.8772344185407235, 0.05 -8.848440533195882, 2.6402474230618456, -4.855925177332354, 0.05 -8.970803720706183, 2.447263750206019, -4.835799436594179, 0.05 -9.083470680495365, 2.2533391957836524, -4.817015678625811, 0.05 -9.186398000739706, 2.0585464048868216, -4.799679685004294, 0.05 -9.279546064227256, 1.8629612697510005, -4.783857216134821, 0.05 -9.362879136569505, 1.6666614468449847, -4.769584000030775, 0.05 -9.436365400798005, 1.4697252845699917, -4.756874347811064, 0.05 -9.49997695508624, 1.2722310857647114, -4.745727920891514, 0.05 -9.55368978759559, 1.0742566501870199, -4.736134727414725, 0.05 -9.597782015936325, 0.8818445668146669, -4.586828299872918, 0.05 -9.633034006139438, 0.7050398040622542, -4.203636619692639, 0.05 -9.660430288649014, 0.547925650191507, -3.727888560308903, 0.05 -9.68095929310312, 0.4105800890821242, -3.2536982915616774, 0.05 -9.695612415459573, 0.2930624471290594, -2.7806930390006555, 0.05 -9.70538321834292, 0.19541605766694803, -2.3085538240952976, 0.05 -9.711266762445005, 0.11767088204170933, -1.8370131736669648, 0.05 -9.714259064124546, 0.05984603359081345, -1.365854733474861, 0.05 -9.715356678643397, 0.021952290377027818, -0.8949115960194187, 0.05 -9.71555640615879, 0.003994550307840185, -0.4240664254686264, 0.05 -9.71555640615879, 0.0, -0.09432836055957586, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightBlueLoadingToLoadingProfile.csv b/RoboRIO/src/main/resources/calciferRightBlueLoadingToLoadingProfile.csv deleted file mode 100644 index d7f51b76..00000000 --- a/RoboRIO/src/main/resources/calciferRightBlueLoadingToLoadingProfile.csv +++ /dev/null @@ -1,125 +0,0 @@ -124 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.0025854119335146455, 0.040838673452901604, 0.48757434569372926, 0.05 -0.00717981334735948, 0.0918880282768967, 1.1529259213810261, 0.05 -0.015347811675516724, 0.16335996656314486, 1.6140395037861806, 0.05 -0.028110754995930413, 0.2552588664082738, 2.075065226146387, 0.05 -0.04649035384097691, 0.36759197690092993, 2.5359459798133863, 0.05 -0.07150886476798882, 0.500370218540238, 2.996607871069936, 0.05 -0.10418932038878234, 0.6536091124158706, 3.4569589456100047, 0.05 -0.1455558112198515, 0.8273298166213833, 3.9168857158158765, 0.05 -0.19663383072956153, 1.0215603901942005, 4.3762504789224765, 0.05 -0.2579397529882631, 1.2261184451740312, 4.604479188820534, 0.05 -0.3294806555745736, 1.4308180517262103, 4.6016437433688795, 0.05 -0.41126509623558843, 1.6356888132202958, 4.59821547401789, 0.05 -0.5033032446275961, 1.8407629678401531, 4.594142169673048, 0.05 -0.6056070258964529, 2.046075625377134, 4.589365932078211, 0.05 -0.7181902758353825, 2.251664998778592, 4.5838252863276985, 0.05 -0.8410689025186089, 2.457572533664528, 4.577455511565667, 0.05 -0.9742610518686563, 2.663842987000947, 4.570190533195486, 0.05 -1.1177872727934457, 2.870524418495787, 4.561964392231994, 0.05 -1.2716706778567195, 3.0776681012654743, 4.552713224028748, 0.05 -1.4359370937656246, 3.2853283181781006, 4.5423767828231565, 0.05 -1.6106151974256944, 3.4935620732013932, 4.530900827119568, 0.05 -1.7957366325723652, 3.702428702933414, 4.518239242911886, 0.05 -1.9908211034895866, 3.9016894183444277, 4.275577233714252, 0.05 -2.1948735772238273, 4.081049474684815, 3.8040355356055677, 0.05 -2.4068970104945158, 4.240468665413767, 3.3333005880931843, 0.05 -2.625891536778161, 4.379890525672905, 2.863696837722234, 0.05 -2.8508536728215144, 4.499242720867072, 2.3955409384730864, 0.05 -3.080775569954887, 4.598437942667453, 1.9291315596786163, 0.05 -3.314644334035373, 4.677375281609722, 1.46473991036828, 0.05 -3.5514414349491807, 4.735942018276155, 1.0026016324441933, 0.05 -3.7901422216008442, 4.774015733033273, 0.5429100585461022, 0.05 -4.029715554408042, 4.791466656143949, 0.08581184303682932, 0.05 -4.269645533788408, 4.798599587607332, -0.14260673364082876, 0.05 -4.509935291292673, 4.805795150085306, -0.14386072893227464, 0.05 -4.750587375968235, 4.813041693511226, -0.144881847801539, 0.05 -4.991603801901597, 4.820328518667256, -0.14568908872812258, 0.05 -5.232986095854485, 4.827645879057751, -0.14630149050667285, 0.05 -5.474735344496593, 4.834984972842165, -0.1467379284442849, 0.05 -5.716852240774151, 4.842337925551161, -0.1470169522051279, 0.05 -5.9593371291356245, 4.84969776722946, -0.14715660118945095, 0.05 -6.202190049148682, 4.857058400261163, -0.14717435210048535, 0.05 -6.445410777445141, 4.864414565929178, -0.14708694347158158, 0.05 -6.688998867652, 4.871761804137171, -0.14691036324139262, 0.05 -6.932953688280093, 4.879096412561862, -0.1466597429739558, 0.05 -7.1772744584264405, 4.886415402926949, -0.14634933627087676, 0.05 -7.4219602811250605, 4.893716453972403, -0.1459925357677072, 0.05 -7.66701017455992, 4.900997868697183, -0.14560175726408886, 0.05 -7.912423100840633, 4.908258525614267, -0.14518856008852055, 0.05 -8.15819799260446, 4.915497835276531, -0.14476354925504253, 0.05 -8.404333777328342, 4.922715694477631, -0.1443364499748867, 0.05 -8.650829399402577, 4.92991244148471, -0.14391612190770786, 0.05 -8.897683840148977, 4.93708881492799, -0.14351052683990062, 0.05 -9.144896135658275, 4.944245910185954, -0.1431268277909581, 0.05 -9.392465392634907, 4.95138513953265, -0.142771360882481, 0.05 -9.640390802278553, 4.958508192872909, -0.14244967286686006, 0.05 -9.888671652239239, 4.965616999213736, -0.14216655365119735, 0.05 -10.137307336735386, 4.972713689922956, -0.14192604425106836, 0.05 -10.38629736484269, 4.97980056214607, -0.14173147343603532, 0.05 -10.635641367051937, 4.986880044184945, -0.14158545242853648, 0.05 -10.885339100066306, 4.993954660287366, -0.14148991498574404, 0.05 -11.135390449920077, 5.001026997075435, -0.14144610565026028, 0.05 -11.385795433406392, 5.008099669726295, -0.1414545988513538, 0.05 -11.636554197830769, 5.015175288487554, -0.14151529870318313, 0.05 -11.887667019087445, 5.022256425133513, -0.14162743906020125, 0.05 -12.139134298052504, 5.0293455793011965, -0.14178957723251173, 0.05 -12.390956555265285, 5.036445144255641, -0.14199958922667122, 0.05 -12.643134423869416, 5.043557372082597, -0.14225465786768865, 0.05 -12.89566864079183, 5.050684338448288, -0.14255125170858918, 0.05 -13.148560036093697, 5.057827906037327, -0.1428851154577515, 0.05 -13.401809520467493, 5.064989687475945, -0.14325123955144292, 0.05 -13.655418070767503, 5.072171006000212, -0.14364385968695714, 0.05 -13.909386713611188, 5.0793728568736745, -0.14405639503349832, 0.05 -14.163716506902041, 5.0865958658170785, -0.1444814581941145, 0.05 -14.418408519230772, 5.093840246574624, -0.1449108241278374, 0.05 -14.67346380715127, 5.101105758409969, -0.1453353865949758, 0.05 -14.92888339022652, 5.108391661505007, -0.14574515887002093, 0.05 -15.184668223803024, 5.115696671530086, -0.1461292574222206, 0.05 -15.440819169495407, 5.123018913847664, -0.1464758874393013, 0.05 -15.697336963452837, 5.130355879148612, -0.14677230829478916, 0.05 -15.954222182231618, 5.13770437557562, -0.14700491072941801, 0.05 -16.21147520655514, 5.145060486470401, -0.14715914164113997, 0.05 -16.469096182778674, 5.152419524470689, -0.147219630828328, 0.05 -16.727084982416223, 5.159775992750941, -0.14717014305421827, 0.05 -16.9854411597034, 5.1671235457435465, -0.14699370968328296, 0.05 -17.244163907505666, 5.174454956045371, -0.1466726722999212, 0.05 -17.503252011780493, 5.181762085496531, -0.1461888072883788, 0.05 -17.762703804940113, 5.189035863192435, -0.14552344523099947, 0.05 -18.02251711849662, 5.196266271130107, -0.14465762714483077, 0.05 -18.282689235438905, 5.20344233884569, -0.1435722876469825, 0.05 -18.543051714423072, 5.207249579683306, -0.20287545271367335, 0.05 -18.802867087745952, 5.196307466457603, -0.4693446924464162, 0.05 -19.060990702354964, 5.162472292180274, -0.8810368950790526, 0.05 -19.316271519667513, 5.105616346250976, -1.2901729674115714, 0.05 -19.567552516888156, 5.025619944412896, -1.6969138185025479, 0.05 -19.813671202147617, 4.922373705189226, -2.101466173954609, 0.05 -20.053460230887055, 4.795780574788721, -2.5040772646733345, 0.05 -20.285748105733646, 4.645757496931797, -2.9050277857857054, 0.05 -20.50935993817212, 4.472236648769485, -3.3046232611464355, 0.05 -20.72311824802921, 4.275166197141789, -3.703184143661078, 0.05 -20.926010753963098, 4.057850118677807, -4.041149000031448, 0.05 -21.117598228832463, 3.831749497387337, -4.173560506203717, 0.05 -21.297849888440552, 3.605033192161813, -4.161251295605011, 0.05 -21.466737881287298, 3.3777598569349325, -4.150116014794767, 0.05 -21.624237166622144, 3.149985706696943, -4.140105687384521, 0.05 -21.770325374408387, 2.9217641557248384, -4.131163900498711, 0.05 -21.904982651378514, 2.693145539402582, -4.123229198743816, 0.05 -22.028191499522045, 2.46417696287063, -4.116236605697043, 0.05 -22.139936610733155, 2.2349022242222145, -4.110119869566224, 0.05 -22.240204702358984, 2.0053618325165736, -4.104813061560568, 0.05 -22.328984357292853, 1.775593098677382, -4.100252230847619, 0.05 -22.40626587279882, 1.545630310119356, -4.096376509388722, 0.05 -22.4720411196764, 1.3155049375516363, -4.093129770144119, 0.05 -22.52647131169765, 1.0886038404250196, -4.030939892139147, 0.05 -22.57029538852541, 0.8764815365551148, -3.7650570433484343, 0.05 -22.604662195108858, 0.6873361316690133, -3.3550327332488705, 0.05 -22.630721876886888, 0.5211936355605671, -2.945527422386712, 0.05 -22.649625553213575, 0.3780735265337624, -2.5364110312935115, 0.05 -22.6625250504026, 0.25798994378049983, -2.1275769325719476, 0.05 -22.67057268550173, 0.160952701982661, -1.7189386827013353, 0.05 -22.674921093846955, 0.08696816690443929, -1.3104277215923834, 0.05 -22.676723096938467, 0.036040061830249784, -0.9019912848829444, 0.05 -22.677131608130527, 0.00817022384116911, -0.49359118522589635, 0.05 -22.677131608130527, 0.0, -0.1446983121296761, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightBlueMidProfile.csv b/RoboRIO/src/main/resources/calciferRightBlueMidProfile.csv deleted file mode 100644 index 21a0f714..00000000 --- a/RoboRIO/src/main/resources/calciferRightBlueMidProfile.csv +++ /dev/null @@ -1,63 +0,0 @@ -62 -5.518719377827497E-4, 0.022074877511309987, 0.44149755022619974, 0.05 -0.0027593596889137462, 0.044149755022619926, 0.44149755022619874, 0.05 -0.007726207128958482, 0.09933694880089469, 1.1037438755654954, 0.05 -0.016556158133482456, 0.17659902009047948, 1.5452414257916958, 0.05 -0.030352956578051277, 0.2759359688913764, 1.9867389760179381, 0.05 -0.050220346338231074, 0.3973477952035959, 2.4282365262443903, 0.05 -0.07726207128958693, 0.5408344990271169, 2.869734076470419, 0.05 -0.11258187530768432, 0.7063960803619479, 3.31123162669662, 0.05 -0.15728350226808885, 0.8940325392080908, 3.7527291769228577, 0.05 -0.2124706960463661, 1.1037438755655449, 4.194226727149082, 0.05 -0.278695328580279, 1.3244926506782577, 4.414975502254257, 0.05 -0.3559573998698403, 1.5452414257912261, 4.414975502259368, 0.05 -0.4442569099150539, 1.7659902009042716, 4.414975502260909, 0.05 -0.5435938587159874, 1.9867389760186693, 4.414975502287954, 0.05 -0.6539682462725801, 2.2074877511318536, 4.414975502263685, 0.05 -0.7753800725848322, 2.4282365262450423, 4.414975502263774, 0.05 -0.9078293376527141, 2.648985301357638, 4.414975502251917, 0.05 -1.0513160414760856, 2.8697340764674273, 4.414975502195784, 0.05 -1.205840184055101, 3.0904828515803073, 4.414975502257601, 0.05 -1.3714017653897603, 3.3112316266931874, 4.414975502257601, 0.05 -1.5480007854800637, 3.5319804018060674, 4.414975502257601, 0.05 -1.735085372388229, 3.741691738163304, 4.194226727144734, 0.05 -1.931551782238691, 3.929328197009241, 3.7527291769187343, 0.05 -2.136296271155887, 4.094889778343913, 3.311231626693445, 0.05 -2.348215095264251, 4.238376482167281, 2.8697340764673562, 0.05 -2.566204510688219, 4.3597883084793665, 2.4282365262417116, 0.05 -2.789160773552227, 4.4591252572801565, 1.9867389760158005, 0.05 -3.01598013998071, 4.53638732856966, 1.545241425790067, 0.05 -3.2455588660981047, 4.591574522347894, 1.103743875564689, 0.05 -3.4767932080288455, 4.624686838614815, 0.6622463253384225, 0.05 -3.708360449604746, 4.631344831518014, 0.13315985806396924, 0.05 -3.938937874656209, 4.6115485010292545, -0.3959266097751879, 0.05 -4.167421739307274, 4.569677293021295, -0.8374241601591947, 0.05 -4.39270829968237, 4.505731207501924, -1.278921710387415, 0.05 -4.613693811905928, 4.419710244471151, -1.7204192606154578, 0.05 -4.829274532102377, 4.311614403928985, -2.161916810843323, 0.05 -5.038346716396147, 4.18144368587539, -2.6034143610718985, 0.05 -5.239806620911666, 4.029198090310384, -3.044911911300119, 0.05 -5.432550501773365, 3.854877617233985, -3.486409461527984, 0.05 -5.615474615105673, 3.658482266646157, -3.9279070117565595, 0.05 -5.787694189326541, 3.444391484417366, -4.281815644575815, 0.05 -5.948876324791702, 3.2236427093032205, -4.414975502282914, 0.05 -6.099021021501159, 3.002893934189128, -4.414975502281848, 0.05 -6.238128279454911, 2.7821451590750534, -4.414975502281493, 0.05 -6.366198098652958, 2.5613963839609255, -4.414975502282559, 0.05 -6.4832304790952975, 2.3406476088467976, -4.414975502282559, 0.05 -6.5892254207819345, 2.1198988337327407, -4.414975502281138, 0.05 -6.684182923712864, 1.899150058618595, -4.414975502282914, 0.05 -6.768102987888089, 1.6784012835045026, -4.414975502281848, 0.05 -6.84098561330761, 1.4576525083904102, -4.414975502281848, 0.05 -6.902830799971425, 1.2369037332763, -4.4149755022822035, 0.05 -6.953857520173056, 1.0205344040326203, -4.327386584873594, 0.05 -6.9948366181438075, 0.8195819594150322, -4.019048892351762, 0.05 -7.026871837759252, 0.6407043923088906, -3.577551342122831, 0.05 -7.05106692289496, 0.4839017027141601, -3.1360537918946108, 0.05 -7.068525617426501, 0.3491738906308228, -2.6945562416667457, 0.05 -7.080351665229444, 0.23652095605886103, -2.253058691439236, 0.05 -7.087648810179363, 0.1459428989983813, -1.8115611412095944, 0.05 -7.091520796151826, 0.07743971944925931, -1.37006359098244, 0.05 -7.093071367022404, 0.031011417411548337, -0.9285660407542196, 0.05 -7.093404266666668, 0.006657992885283903, -0.48706849052528867, 0.05 -7.093404266666668, 0.0, -0.13315985770567806, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightBlueRightProfile.csv b/RoboRIO/src/main/resources/calciferRightBlueRightProfile.csv deleted file mode 100644 index 4d4eebb6..00000000 --- a/RoboRIO/src/main/resources/calciferRightBlueRightProfile.csv +++ /dev/null @@ -1,78 +0,0 @@ -77 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002886860140275815, 0.046867637588125, 0.366995022385935, 0.05 -0.008159641112496091, 0.10545561944440551, 1.0021534842192585, 0.05 -0.01753406047316238, 0.18748838721332575, 1.4028227361340067, 0.05 -0.032183095278446296, 0.2929806961056783, 1.8031970116987073, 0.05 -0.05328093254114137, 0.4219567452539015, 2.2030868706919624, 0.05 -0.08200356426139087, 0.5744526344049898, 2.602254084067593, 0.05 -0.11952950869942215, 0.7505188887606257, 3.000409937835776, 0.05 -0.16704066235261028, 0.9502230730637626, 3.3972128512084976, 0.05 -0.2257232903260606, 1.1736525594690062, 3.7922660723495794, 0.05 -0.2961818273056074, 1.4091707395909359, 3.985266693053715, 0.05 -0.37843803357233424, 1.6451241253345372, 3.976553054872598, 0.05 -0.4725175111568969, 1.8815895516912524, 3.9663006329184647, 0.05 -0.5784497822882928, 2.1186454226279183, 3.9544774454397658, 0.05 -0.6962683629890906, 2.3563716140159543, 3.9410540025846075, 0.05 -0.8260108210415401, 2.5948491610489914, 3.926006425682438, 0.05 -0.9677188076437409, 2.8341597320440157, 3.9093216551454812, 0.05 -1.12143804669984, 3.074384781121983, 3.8910033861950755, 0.05 -1.2872182622421238, 3.3156043108456745, 3.8710799544841468, 0.05 -1.4651130194043875, 3.5578951432452732, 3.84961423716236, 0.05 -1.6551794483304423, 3.801328578521094, 3.8267158783384403, 0.05 -1.8574778136498589, 4.045967306388332, 3.802556167855471, 0.05 -2.0720708854688774, 4.291861436380368, 3.777385977023755, 0.05 -2.2984252491439903, 4.527087273502257, 3.5559172486374635, 0.05 -2.5354040647129166, 4.739576311378526, 3.1410575660375706, 0.05 -2.781859335606159, 4.929105417864853, 2.730670229778287, 0.05 -3.036629886439428, 5.095411016665383, 2.325566634178813, 0.05 -3.298539613693467, 5.23819454508078, 1.9264486875548847, 0.05 -3.5663961413943754, 5.357130554018166, 1.533856089054897, 0.05 -3.838990018395797, 5.451877540028423, 1.1481109577433735, 0.05 -4.115094585721426, 5.522091346512582, 0.7692668549868209, 0.05 -4.393466612390343, 5.567440533378336, 0.3970686151898306, 0.05 -4.672847751597191, 5.58762278413695, 0.030931710421118197, 0.05 -4.952575201530844, 5.594548998673067, -0.13866979801296253, 0.05 -5.232587423803823, 5.600244445459582, -0.11402987455136682, 0.05 -5.512818879639231, 5.6046291167081606, -0.08778731452524724, 0.05 -5.793200865408917, 5.607639715393707, -0.060276831683605536, 0.05 -6.0736624611110415, 5.6092319140424935, -0.031878407890406635, 0.05 -6.354131560292096, 5.609381983621085, -0.0030046405582950797, 0.05 -6.634535944273309, 5.608087679624251, 0.02591408164532183, 0.05 -6.914804360651752, 5.605368327568856, 0.054445694447835535, 0.05 -7.19486756549511, 5.6012640968671565, 0.08217261175394341, 0.05 -7.474659291611997, 5.595834522337745, 0.10870700940033728, 0.05 -7.753644913033341, 5.579712428426887, -0.01557033515622308, 0.05 -8.030691021271421, 5.540922164761608, -0.33508475077107747, 0.05 -8.304542551661376, 5.477030607799079, -0.702539787682035, 0.05 -8.573960038165463, 5.388349730081748, -1.0762509165067335, 0.05 -8.83772083427148, 5.275215922120338, -1.4567077934094286, 0.05 -9.094619506404554, 5.137973442661499, -1.8440683203289865, 0.05 -9.343467470351097, 4.976959278930853, -2.2381859785129876, 0.05 -9.583091980723898, 4.792490207456014, -2.638655355760555, 0.05 -9.812334610198734, 4.5848525894967045, -3.044865559204224, 0.05 -10.030049355389043, 4.354294903806159, -3.4560568709495154, 0.05 -10.235564166644702, 4.1102962251131965, -3.7186666282316416, 0.05 -10.428806969592122, 3.8648560589483902, -3.786497617524427, 0.05 -10.609837000282067, 3.620600613798882, -3.8102498153757125, 0.05 -10.778711051858725, 3.377481031533172, -3.833016945078205, 0.05 -10.935482878473831, 3.135436532302123, -3.85456153088378, 0.05 -11.08020278236668, 2.8943980778569944, -3.8747193500867994, 0.05 -11.212917344392382, 2.654291240514032, -3.8933829121459063, 0.05 -11.333669261879056, 2.4150383497334547, -3.9104884795347328, 0.05 -11.442497267799554, 2.17656011840997, -3.926004126830036, 0.05 -11.539436107363944, 1.9387767912877785, -3.939921009624321, 0.05 -11.624516553792308, 1.7016089285672682, -3.952246114343585, 0.05 -11.697765450035481, 1.4649779248634833, -3.9629961522276647, 0.05 -11.759205763383566, 1.2288062669617084, -3.9721937307747224, 0.05 -11.8093138881322, 1.0021624949726753, -3.8245764011610417, 0.05 -11.84914949210185, 0.7967120793929838, -3.4754838634727303, 0.05 -11.879898287390443, 0.6149759057718605, -3.080207775011208, 0.05 -11.90274233039797, 0.4568808601505482, -2.6834678229804454, 0.05 -11.918860918089463, 0.32237175382985545, -2.2856226718929706, 0.05 -11.929431349931235, 0.21140863683544303, -1.8869780530731788, 0.05 -11.935629562836784, 0.1239642581109648, -1.4877877706613203, 0.05 -11.938630639958786, 0.06002154244005417, -1.088256087436248, 0.05 -11.939609198795035, 0.019571176724950994, -0.6885377128716532, 0.05 -11.939739656705353, 0.002609158206368875, -0.28873958452527554, 0.05 -11.939739656705353, 0.0, -0.04441548962252892, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightBlueShootProfile.csv b/RoboRIO/src/main/resources/calciferRightBlueShootProfile.csv deleted file mode 100644 index 3c46f067..00000000 --- a/RoboRIO/src/main/resources/calciferRightBlueShootProfile.csv +++ /dev/null @@ -1,61 +0,0 @@ -60 -5.424561587941971E-4, 0.02169824635176788, 0.43396492703535755, 0.05 -0.003235676494508511, 0.05386440671428627, 0.22460664739822062, 0.05 -0.00929547286990161, 0.12119592750786198, 0.823194042570102, 0.05 -0.020068598431075793, 0.2154625112234837, 1.1524218955883496, 0.05 -0.03690191951923663, 0.33666642176321665, 1.4816031177330407, 0.05 -0.06114229703341459, 0.4848075502835592, 1.810783418087885, 0.05 -0.09413614910717813, 0.6598770414752709, 2.140135494450942, 0.05 -0.1372284081512695, 0.861845180881827, 2.470073000480711, 0.05 -0.19176045719746276, 1.0906409809238653, 2.801416880570655, 0.05 -0.2590664750416274, 1.346120356883293, 3.1356232920755844, 0.05 -0.33979494683814604, 1.6145694359303724, 3.310127886060068, 0.05 -0.4339028626173758, 1.8821583155845956, 3.3272610745023523, 0.05 -0.5413218599217047, 2.1483799460865773, 3.3545287562284942, 0.05 -0.6619502508532681, 2.4125678186312682, 3.395124351792318, 0.05 -0.795644670041689, 2.673888383768419, 3.4523949695448364, 0.05 -0.9422120170445702, 2.9313469400576233, 3.5295716891296935, 0.05 -1.1014025772996265, 3.183811205101126, 3.6294155176649223, 0.05 -1.2729053397018377, 3.430055248044225, 3.7538095042753294, 0.05 -1.4563465058357907, 3.668823322679059, 3.903359106746942, 0.05 -1.651291938678903, 3.8989086568622424, 4.077091465798119, 0.05 -1.8566135448745678, 4.106432123913297, 4.094538185743115, 0.05 -2.0705365247219785, 4.2784595969482115, 3.9367865995647566, 0.05 -2.2913242333699775, 4.415754172959977, 3.7637776975496173, 0.05 -2.517302109414138, 4.519557520883215, 3.5659075409220797, 0.05 -2.746875364539511, 4.591465102507465, 3.3360742789277875, 0.05 -2.9785391268726316, 4.633275246662406, 3.0702047992254933, 0.05 -3.210881297845753, 4.646843419462427, 2.7671517551229563, 0.05 -3.4425795852545127, 4.633965748175196, 2.428107020267465, 0.05 -3.6723947994358808, 4.596304283627363, 2.0557641084974954, 0.05 -3.89876174172384, 4.52733884575919, 1.5045124601387094, 0.05 -4.120207313402781, 4.428911433578808, 0.916390828657363, 0.05 -4.335731268779338, 4.310479107531158, 0.44839446372620273, 0.05 -4.5443879606983195, 4.17313383837962, -0.041427609329343085, 0.05 -4.745284116426918, 4.017923114571962, -0.5521738873938453, 0.05 -4.937578429999406, 3.845886271449766, -1.0836723822198735, 0.05 -5.120482164029664, 3.658074680605151, -1.6361581901307254, 0.05 -5.293259744562561, 3.4555516106579436, -2.209867379593371, 0.05 -5.455228254297125, 3.239370194691283, -2.8045996483358238, 0.05 -5.605754807749073, 3.0105310690389677, -3.4193119157639895, 0.05 -5.744594932273976, 2.7768024904980657, -3.8801028051433395, 0.05 -5.871998580019762, 2.5480729549157055, -4.104706419054933, 0.05 -5.988338244994405, 2.3267932994928597, -4.253646363992711, 0.05 -6.093963620609854, 2.1125075123089774, -4.393478230200545, 0.05 -6.18919870696826, 1.9047017271681232, -4.5230472412533995, 0.05 -6.274339203137478, 1.7028099233843499, -4.641310782140753, 0.05 -6.349650511460798, 1.5062261664664014, -4.74746953553618, 0.05 -6.415366537773745, 1.3143205262589557, -4.84104139152612, 0.05 -6.471689328312498, 1.1264558107750495, -4.921878183678952, 0.05 -6.518789461381933, 0.9420026613886963, -4.99013329490599, 0.05 -6.557122350402383, 0.7666577804090104, -4.863053359658789, 0.05 -6.587551331599477, 0.6085796239418756, -4.46517629984515, 0.05 -6.611033153031506, 0.4696364286405637, -3.979965551826381, 0.05 -6.628497910942368, 0.34929515821725493, -3.4840869768855898, 0.05 -6.640855942740529, 0.2471606359632299, -2.98029956434071, 0.05 -6.649003490865373, 0.16295096249687496, -2.4708706209464535, 0.05 -6.653827267429528, 0.09647553128310167, -1.957627372686881, 0.05 -6.656208034041865, 0.047615332246740395, -1.4420028290875855, 0.05 -6.657023283807152, 0.016304995305743225, -0.925070375627324, 0.05 -6.657149081643991, 0.002515956736787364, -0.40756651158333934, 0.05 -6.657149081643991, 0.0, -0.07437205338886875, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightRedBackupProfile.csv b/RoboRIO/src/main/resources/calciferRightRedBackupProfile.csv deleted file mode 100644 index 91efa50e..00000000 --- a/RoboRIO/src/main/resources/calciferRightRedBackupProfile.csv +++ /dev/null @@ -1,49 +0,0 @@ -48 -5.227250022608844E-4, 0.020909000090435375, 0.41818000180870746, 0.05 -0.002345406460912165, 0.03645362917302561, 0.5254674173012496, 0.05 -0.006451335591911113, 0.08211858261997894, 1.1776008968009792, 0.05 -0.013767472257941164, 0.14632273332060103, 1.6431767867264317, 0.05 -0.0252416135749518, 0.22948282634021272, 2.10041747617459, 0.05 -0.04185537964679664, 0.33227532143689675, 2.5441284577210452, 0.05 -0.06464003174297028, 0.4556930419234728, 2.9679823911589875, 0.05 -0.09469480172644217, 0.6010953996694376, 3.3646477135693176, 0.05 -0.13320740816002624, 0.7702521286716814, 3.725918803719417, 0.05 -0.18147657729001399, 0.9653833825997551, 4.042788778674713, 0.05 -0.2404406855302659, 1.1792821648050382, 4.085622937559972, 0.05 -0.3106506917108197, 1.4042001236110757, 3.8652476920466583, 0.05 -0.39274377157774487, 1.6418615973385027, 3.6103831837020817, 0.05 -0.487449997542536, 1.8941245192958218, 3.318346115150095, 0.05 -0.5950581139051414, 2.1521623272521073, 2.7846267278103642, 0.05 -0.7153540535348387, 2.4059187925939454, 2.033793502837975, 0.05 -0.8481273667100425, 2.655466263504076, 1.2814295903722073, 0.05 -0.9931735331474116, 2.9009233287473832, 0.5265847555005987, 0.05 -1.1502924337050313, 3.1423780111523913, -0.23015310550203338, 0.05 -1.3192736926504234, 3.379625178907842, -0.9829372101202338, 0.05 -1.4998565316137862, 3.611656779267256, -1.715706676148132, 0.05 -1.6916494090923588, 3.8358575495714518, -2.3962751385440484, 0.05 -1.893996485286556, 4.0469415238839455, -2.9711167088566137, 0.05 -2.105026501964848, 4.220600333565834, -3.4733583477648144, 0.05 -2.3220908512364358, 4.341286985431754, -3.6639875624850182, 0.05 -2.54246444525993, 4.407471880469884, -3.4094216811615263, 0.05 -2.7626881136458867, 4.404473367719135, -2.8604635188258998, 0.05 -2.978831790583079, 4.322873538743847, -2.1227074695402726, 0.05 -3.186922709672645, 4.16181838179132, -1.3679820419413158, 0.05 -3.3833823557902165, 3.9291929223514264, -0.7715724598597684, 0.05 -3.5653098057435293, 3.6385489990662516, -0.44702625251599626, 0.05 -3.7305454088039194, 3.304712061207801, -0.4197071584362355, 0.05 -3.8775596078692347, 2.9402839813063046, -0.644869150304781, 0.05 -4.006047544439516, 2.569758731405628, -0.9461892984624432, 0.05 -4.116681535994648, 2.2126798311026263, -1.2201618242302192, 0.05 -4.210153470692785, 1.8694386939627539, -1.4975487958769373, 0.05 -4.287094483589681, 1.5388202579379142, -1.7504532749080592, 0.05 -4.348789153451394, 1.2338933972342652, -1.8506325236946808, 0.05 -4.397143368340728, 0.9670842977866976, -1.781040886970986, 0.05 -4.433938830184446, 0.7359092368743548, -1.6574806168582557, 0.05 -4.460855187581871, 0.5383271479484993, -1.4930436587038225, 0.05 -4.479496530208544, 0.37282685253344716, -1.2983517262584525, 0.05 -4.491413605561774, 0.23834150706459406, -1.0823055320928565, 0.05 -4.498121773586182, 0.1341633604881728, -0.8520954061679454, 0.05 -4.501114983083297, 0.059864189942291514, -0.6133170181827531, 0.05 -4.50187605653262, 0.01522146898646303, -0.37008633317444045, 0.05 -4.501883477123806, 1.4841182371315317E-4, -0.1251196518954877, 0.05 -4.501883477123806, 0.0, -0.0012321991513610108, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightRedBoilerToLoadingProfile.csv b/RoboRIO/src/main/resources/calciferRightRedBoilerToLoadingProfile.csv deleted file mode 100644 index 9480d4ba..00000000 --- a/RoboRIO/src/main/resources/calciferRightRedBoilerToLoadingProfile.csv +++ /dev/null @@ -1,152 +0,0 @@ -151 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.002717391304347822, 0.04347826086956514, 0.4347826086956506, 0.05 -0.007608695652173897, 0.09782608695652148, 1.0869565217391268, 0.05 -0.016304347826086918, 0.17391304347826042, 1.5217391304347787, 0.05 -0.029891304347826463, 0.27173913043479087, 1.956521739130609, 0.05 -0.04945652173913161, 0.391304347826103, 2.391304347826243, 0.05 -0.07608695652174138, 0.5326086956521955, 2.8260869565218494, 0.05 -0.11086956521739495, 0.6956521739130713, 3.260869565217517, 0.05 -0.15489130434783155, 0.8804347826087319, 3.695652173913211, 0.05 -0.20923913043477188, 1.0869565217388066, 4.130434782601495, 0.05 -0.27445652173909973, 1.304347826086557, 4.347826086955009, 0.05 -0.350543478260842, 1.5217391304348449, 4.347826086965756, 0.05 -0.4375000000000061, 1.7391304347832826, 4.3478260869687535, 0.05 -0.5353260869565658, 1.956521739131194, 4.347826086958229, 0.05 -0.6440217391304945, 2.1739130434785747, 4.347826086947615, 0.05 -0.7635869565216794, 2.3913043478236973, 4.347826086902451, 0.05 -0.8940217391302444, 2.6086956521713, 4.347826086952056, 0.05 -1.0353260869561902, 2.826086956518914, 4.347826086952278, 0.05 -1.1874999999995164, 3.0434782608665234, 4.347826086952189, 0.05 -1.350543478260223, 3.260869565214133, 4.347826086952189, 0.05 -1.5244565217383097, 3.4782608695617334, 4.347826086952011, 0.05 -1.709239130433777, 3.6956521739093473, 4.347826086952278, 0.05 -1.904891304346625, 3.9130434782569568, 4.347826086952189, 0.05 -2.1108695652159843, 4.119565217387184, 4.130434782604553, 0.05 -2.3260869565201174, 4.304347826082662, 3.695652173909547, 0.05 -2.5494565217375595, 4.467391304348842, 3.2608695653236097, 0.05 -2.779891304347304, 4.608695652194887, 2.8260869569209035, 0.05 -3.016304347826641, 4.7282608695867445, 2.391304347837142, 0.05 -3.257608695653826, 4.826086956543696, 1.9565217391390277, 0.05 -3.5027173913071152, 4.902173913065786, 1.5217391304418015, 0.05 -3.7505434782647646, 4.956521739152988, 1.0869565217440424, 0.05 -4.000000000005031, 4.989130434805329, 0.6521739130468163, 0.05 -4.2500000000061675, 5.000000000022737, 0.217391304348169, 0.05 -4.500000000007306, 5.000000000022773, 7.105427357601002E-13, 0.05 -4.750000000008443, 5.000000000022737, -7.105427357601002E-13, 0.05 -5.000000000009582, 5.000000000022773, 7.105427357601002E-13, 0.05 -5.276969549562218, 5.539390991052737, -11.034981062003961, 0.05 -5.555614393286303, 5.572896874481703, -0.42878619312439525, 0.05 -5.835626077238715, 5.600233679048246, -0.5473053873085476, 0.05 -6.117024137326496, 5.627961201755602, -0.5551565277866821, 0.05 -6.399813044312992, 5.655778139729935, -0.5569723912871538, 0.05 -6.683978844427567, 5.683316002291488, -0.551413136126957, 0.05 -6.9694858004734055, 5.710139120916782, -0.5371270733499323, 0.05 -7.256273251727427, 5.735749025080416, -0.5128561281433264, 0.05 -7.544253008105114, 5.759595127553745, -0.4775561627110747, 0.05 -7.8333076334011125, 5.7810925059199665, -0.43053619669422005, 0.05 -8.123289964884789, 5.799646629673513, -0.37160428700175885, 0.05 -8.414024189225538, 5.814684486814993, -0.3011887821543269, 0.05 -8.705308664811087, 5.825689511710981, -0.22042147931591316, 0.05 -8.996920527222736, 5.832237248232995, -0.1311481050539598, 0.05 -9.288621898830993, 5.834027432165139, -0.035856590138649835, 0.05 -9.580167303239445, 5.830908088169064, 0.06247920788489125, 0.05 -9.871311721621291, 5.822888367636929, 0.16063023454499614, 0.05 -10.16181861771487, 5.810137921871557, 0.25537914064821976, 0.05 -10.451467267598886, 5.792972997680319, 0.34378778517655917, 0.05 -10.74005883215077, 5.771831291037703, 0.42342236720077864, 0.05 -11.027420791285063, 5.747239182685866, 0.4925063758928694, 0.05 -11.313409574984245, 5.719775673983648, 0.5499864553732969, 0.05 -11.597911435945631, 5.690037219227735, 0.5955144106570032, 0.05 -11.880841775782086, 5.658606796729082, 0.6293618804666146, 0.05 -12.1621432443019, 5.626029370396293, 0.6522924071124869, 0.05 -12.441782973496794, 5.592794583897887, 0.6654155486248925, 0.05 -12.719749301343773, 5.559326556939575, 0.6700457387694669, 0.05 -12.996048290710519, 5.5259797873349035, 0.6675785053528749, 0.05 -13.270700286518585, 5.493039916161309, 0.6593938437224622, 0.05 -13.543736682863042, 5.460727926889156, 0.6467871074786835, 0.05 -13.81519700939755, 5.429206530690192, 0.6309263511817953, 0.05 -14.085126388030282, 5.398587572654622, 0.6128293969140763, 0.05 -14.353573378091207, 5.368939801218498, 0.5933595631069899, 0.05 -14.62058819390957, 5.340296316367255, 0.5732305278828598, 0.05 -14.886221263633809, 5.312661394484762, 0.5530188945464154, 0.05 -15.150522089775652, 5.286016522836873, 0.533180719626003, 0.05 -15.413538367229968, 5.260325549086332, 0.5140688183305642, 0.05 -15.675315315415617, 5.2355389637129806, 0.4959498263545825, 0.05 -15.93589518665779, 5.211597424843459, 0.47902087616940037, 0.05 -16.19531691231783, 5.188434513200733, 0.4634227260610224, 0.05 -16.45361585876103, 5.165978928863997, 0.449253036870072, 0.05 -16.71082366545245, 5.144156133828349, 0.4365760621266723, 0.05 -16.96696814505646, 5.122889592080235, 0.42543169266114234, 0.05 -17.22207322708511, 5.102101640573051, 0.4158420367830651, 0.05 -17.476158932030714, 5.081714098912052, 0.40781732375490876, 0.05 -17.729241364503117, 5.061648649448056, 0.4013600944474227, 0.05 -17.98133271674417, 5.04182704482104, 0.396468503216294, 0.05 -18.23244127694146, 5.02217120394585, 0.3931391304411136, 0.05 -18.482571437265072, 5.002603206472241, 0.39136856135989717, 0.05 -18.731723698727812, 4.983045229254783, 0.39115456242038604, 0.05 -18.979894671616364, 4.963419457771025, 0.3924967853789596, 0.05 -19.227077071097682, 4.94364798962637, 0.39539674986398765, 0.05 -19.47325970925166, 4.92365276307954, 0.39985742573586336, 0.05 -19.718427486067895, 4.903355536324668, 0.4058822216803648, 0.05 -19.962561383353886, 4.88267794571982, 0.41347331399142817, 0.05 -20.20563846734464, 4.8615416798151125, 0.42262931713757723, 0.05 -20.447631908341734, 4.839868819941815, 0.4333423532586167, 0.05 -20.688511026834124, 4.817582369847813, 0.4455936186558951, 0.05 -20.928241379354144, 4.7946070504003835, 0.4593482027102702, 0.05 -21.166784901708922, 4.770870447095585, 0.4745490329991675, 0.05 -21.40410012798889, 4.74630452559934, 0.49110793615971815, 0.05 -21.64014251152143, 4.720847670650741, 0.5088964258568041, 0.05 -21.874864876215497, 4.694447293881355, 0.5277335362924518, 0.05 -22.108218033823224, 4.667063152154523, 0.5473726952243041, 0.05 -22.340151603832876, 4.638671400193, 0.567485261968077, 0.05 -22.57061508091491, 4.609269541640691, 0.5876447528340201, 0.05 -22.799559192308045, 4.578882227862731, 0.6073086592478028, 0.05 -23.026937586491293, 4.547567883664967, 0.6258014651676902, 0.05 -23.252708889805003, 4.5154260662741725, 0.6423018971105598, 0.05 -23.476839148899654, 4.482605181893016, 0.6558343823734702, 0.05 -23.699304652954755, 4.449310081102043, 0.665270912761482, 0.05 -23.920095096584227, 4.4158088725894595, 0.6693496738658311, 0.05 -24.139216986596235, 4.3824378002401625, 0.6667098471404742, 0.05 -24.35669714198429, 4.349603107761105, 0.6559551417541165, 0.05 -24.572586061177986, 4.317778383873894, 0.6357420250233936, 0.05 -24.78696086557763, 4.28749608799287, 0.6048965048929666, 0.05 -24.999927474906862, 4.25933218658463, 0.5625518364316129, 0.05 -25.211621647885902, 4.233883459580827, 0.5082941237974126, 0.05 -25.422208550904536, 4.211738060372636, 0.44229720728308664, 0.05 -25.63188060644297, 4.1934411107686556, 0.36542129683816427, 0.05 -25.840853526029967, 4.179458391739987, 0.27925065637402824, 0.05 -26.04902771912142, 4.163483861829, -3.283838788448179E-4, 0.05 -26.25586210609647, 4.1366877395009665, -0.5380024743908152, 0.05 -26.460693748963507, 4.096632857340768, -1.1420959419834453, 0.05 -26.662840454053086, 4.042934101791582, -1.7385152419955574, 0.05 -26.86158536744313, 3.9748982678009046, -2.321118816529353, 0.05 -27.056165588098242, 3.891604413102213, -2.8853625368544122, 0.05 -27.245765548734365, 3.79199921272246, -3.4286049255464235, 0.05 -27.429515147552184, 3.6749919763563685, -3.9500941448612004, 0.05 -27.606491977696376, 3.5395366028838557, -4.450714927825281, 0.05 -27.775726648042625, 3.384693406924969, -4.9325839640888525, 0.05 -27.93655322556685, 3.216531550484521, -5.216287349967708, 0.05 -28.08874929825119, 3.043921453686803, -5.242650102944584, 0.05 -28.232207332112907, 2.869160677234339, -5.199777263618328, 0.05 -28.366817470861587, 2.692202774973642, -5.155956309061738, 0.05 -28.492471452656943, 2.5130796359071526, -5.112754689620438, 0.05 -28.60906537670173, 2.331878480895714, -5.071282144672082, 0.05 -28.716501574242997, 2.1487239508253584, -5.03228703536184, 0.05 -28.814689797811837, 1.9637644713768339, -4.996246143930563, 0.05 -28.90354790571162, 1.7771621579956445, -4.963439771719216, 0.05 -28.983002203179804, 1.5890859493637224, -4.934001841598272, 0.05 -29.052987538562114, 1.3997067076461704, -4.907972694978642, 0.05 -29.113447242304076, 1.2091940748392402, -4.885332402601477, 0.05 -29.16433298625096, 1.017714878937715, -4.866019559164156, 0.05 -29.205960454207485, 0.8325493591304731, -4.67270792415055, 0.05 -29.23913903826959, 0.6635716812421192, -4.242088073482044, 0.05 -29.264815943026782, 0.513538095143793, -3.7514143955653156, 0.05 -29.28394605316524, 0.38260220276918233, -3.2638066648513564, 0.05 -29.297490032114414, 0.27087957898344417, -2.7785100557899476, 0.05 -29.306412721933494, 0.17845379638163178, -2.2948831775777414, 0.05 -29.31168181809099, 0.1053819231498698, -1.8123962943323295, 0.05 -29.314266806985547, 0.05169977789118507, -1.3306258142502347, 0.05 -29.315138159895625, 0.017427058201585358, -0.8492493487214583, 0.05 -29.315266777758186, 0.002572357251218391, -0.3680434949181345, 0.05 -29.315266777758186, 0.0, -0.06373156039263432, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightRedLeftProfile.csv b/RoboRIO/src/main/resources/calciferRightRedLeftProfile.csv deleted file mode 100644 index c0c19de9..00000000 --- a/RoboRIO/src/main/resources/calciferRightRedLeftProfile.csv +++ /dev/null @@ -1,80 +0,0 @@ -79 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.0025188197552753716, 0.03950682988811613, 0.5142112400995698, 0.05 -0.006963141040351839, 0.08888642570152934, 1.1863210415279413, 0.05 -0.014863483177203183, 0.15800684273702686, 1.6610698330715583, 0.05 -0.027206041422203703, 0.2468511649000104, 2.136156643681953, 0.05 -0.044975625384550376, 0.35539167924693343, 2.6117971603890555, 0.05 -0.06915498372980826, 0.4835871669051577, 3.088261427728297, 0.05 -0.1007239920270594, 0.6313801659450228, 3.565873474555381, 0.05 -0.14065870497438177, 0.7986942589464475, 4.045011747936417, 0.05 -0.1899302741548597, 0.9854313836095587, 4.526108309625944, 0.05 -0.2490115955929466, 1.1816264287617384, 4.7717212390770625, 0.05 -0.3178783743048923, 1.3773355742389142, 4.7814263233508925, 0.05 -0.39650231959991844, 1.5724789059005222, 4.792726768527329, 0.05 -0.48485121984921586, 1.7669780049859487, 4.805592105960335, 0.05 -0.5828890679922026, 1.9607569628597354, 4.819971886402925, 0.05 -0.6905762563313455, 2.153743766782857, 4.835787695113183, 0.05 -0.8078698641591318, 2.345872156555727, 4.8529237452324825, 0.05 -0.9347240672168172, 2.5370840611537084, 4.871215874522994, 0.05 -1.0710907015410753, 2.7273326864851604, 4.89043777711907, 0.05 -1.2169200207694935, 2.9165863845683626, 4.910285997553805, 0.05 -1.372161689314082, 3.104833370891773, 4.930362758317131, 0.05 -1.5367660567385424, 3.292087348489209, 4.950157867911589, 0.05 -1.7106857586344062, 3.478394037917276, 4.969030897592006, 0.05 -1.893396123071933, 3.654207288750534, 4.744062060022269, 0.05 -2.0839025315552773, 3.810128169666891, 4.272321657443552, 0.05 -2.281227069433465, 3.9464907575637547, 3.793916679955558, 0.05 -2.4844099431904456, 4.063657475139611, 3.3082827283728022, 0.05 -2.6925101111598906, 4.162003359388896, 2.815169341118775, 0.05 -2.904604974223144, 4.241897261265068, 2.31470083727924, 0.05 -3.119789025984866, 4.303681035234444, 1.80741642296109, 0.05 -3.3371714403759247, 4.3476482878211735, 1.2942785048043781, 0.05 -3.555872673688325, 4.3740246662480065, 0.7766423039904069, 0.05 -3.7750202617296993, 4.382951760827488, 0.25618366685721483, 0.05 -3.9942206939702514, 4.384008644811044, -0.02111453768110394, 0.05 -4.213556392375581, 4.386713968106608, -0.05404747445188818, 0.05 -4.433107835283245, 4.391028858153268, -0.0862042247947592, 0.05 -4.652952293466092, 4.39688916365695, -0.11708006844081353, 0.05 -4.8731626935652255, 4.404208001982668, -0.1462210766832861, 0.05 -5.093806648324925, 4.4128790951939845, -0.17323986578912098, 0.05 -5.314945681335374, 4.4227806602089785, -0.1978267387829291, 0.05 -5.536634661422332, 4.433779601739178, -0.21975567614610725, 0.05 -5.758921449227252, 4.445735756098392, -0.23888536900825486, 0.05 -5.98184674720107, 4.458505959476369, -0.25515580955246975, 0.05 -6.205444135497883, 4.471947765936271, -0.2685810156564905, 0.05 -6.429740268701976, 4.4859226640818495, -0.27923956374365844, 0.05 -6.654272917390815, 4.490652973776767, -0.5223187026999554, 0.05 -6.878075866903623, 4.476058990256152, -0.9985682890271441, 0.05 -7.100156820737332, 4.441619076674182, -1.471182805232818, 0.05 -7.319505889800907, 4.386981381271504, -1.9367742545625966, 0.05 -7.5350969743501075, 4.311821690984007, -2.395894182645275, 0.05 -7.745889495894417, 4.215850430886197, -2.8492335961485615, 0.05 -7.950830348814792, 4.098817058407498, -3.297571110621469, 0.05 -8.148855958650017, 3.9605121967045243, -3.7417283104718635, 0.05 -8.33889435835821, 3.8007679941638743, -4.182533508838944, 0.05 -8.519867215824412, 3.6194571493240484, -4.620796362936694, 0.05 -8.69118786673644, 3.426413018240552, -4.8277374737042145, 0.05 -8.85277594895606, 3.2317616443924035, -4.802420506923593, 0.05 -9.004564831244767, 3.035777645774136, -4.775805405003544, 0.05 -9.146493637527492, 2.8385761256544955, -4.751486056665701, 0.05 -9.278507035861066, 2.640267966671484, -4.729379354505623, 0.05 -9.400554992842261, 2.4409591396238963, -4.709387595045769, 0.05 -9.512592511774976, 2.2407503786543077, -4.691406832880753, 0.05 -9.614579368935024, 2.039737143200968, -4.675332322455681, 0.05 -9.706479858408551, 1.8380097894705323, -4.661062165447056, 0.05 -9.788262550845221, 1.6356538487334, -4.648500649914831, 0.05 -9.859900072229234, 1.4327504276802612, -4.637559312986572, 0.05 -9.921368904231409, 1.2293766400434938, -4.628158677714653, 0.05 -9.972649208270942, 1.0256060807906648, -4.620228758481937, 0.05 -10.01422824961307, 0.8315808268425707, -4.387140139000453, 0.05 -10.047109064345593, 0.6576162946504345, -3.925576155198678, 0.05 -10.07230663489305, 0.503951410949137, -3.4620059300415296, 0.05 -10.090838998216485, 0.3706472664687205, -2.9996567239436365, 0.05 -10.103726466167762, 0.2577493590255546, -2.538216829509523, 0.05 -10.111990971811448, 0.1652901128737185, -2.0774252081191014, 0.05 -10.116655534076134, 0.093291245293742, -1.6170676277908076, 0.05 -10.118743833641409, 0.04176599130548511, -1.1569747601255491, 0.05 -10.119279897163858, 0.010721270448995745, -0.6970201865007799, 0.05 -10.119287886805033, 1.5979282347460019E-4, -0.2371198584300373, 0.05 -10.119287886805033, 0.0, -0.0035875524916333524, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightRedLoadingToLoadingProfile.csv b/RoboRIO/src/main/resources/calciferRightRedLoadingToLoadingProfile.csv deleted file mode 100644 index 35682cd2..00000000 --- a/RoboRIO/src/main/resources/calciferRightRedLoadingToLoadingProfile.csv +++ /dev/null @@ -1,125 +0,0 @@ -124 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.0028493706468427182, 0.04611784771946306, 0.38199086036250035, 0.05 -0.008037577836269068, 0.10376414378852701, 1.0209870964796495, 0.05 -0.01726088378516054, 0.1844661189778294, 1.4294387657250944, 0.05 -0.0316718527994178, 0.28821938028514527, 1.837977996902651, 0.05 -0.0524226867632087, 0.41501667927581787, 2.2466622098530507, 0.05 -0.08066504040467447, 0.5648470728293153, 2.6555648327861636, 0.05 -0.11754979141016536, 0.7376950201098179, 3.0647778775125856, 0.05 -0.16422675670519515, 0.9335393059005959, 3.4744140841105997, 0.05 -0.2218443481975323, 1.152351829846743, 3.884611471455841, 0.05 -0.2909731376619202, 1.382575789287758, 4.091161099596872, 0.05 -0.3716060364847306, 1.6126579764562088, 4.09399213104348, 0.05 -0.4637344739925852, 1.8425687501570922, 4.097415229881842, 0.05 -0.567348266924623, 2.072275858640757, 4.101483092397036, 0.05 -0.6824354746868555, 2.30174415524465, 4.106253150739878, 0.05 -0.8089822456649081, 2.5309354195610503, 4.111787468028769, 0.05 -0.9469726554218745, 2.759808195139327, 4.11815069771893, 0.05 -1.0963885415118297, 2.9883177217991035, 4.125409066728523, 0.05 -1.2572093385823653, 3.216415941410712, 4.133628629896267, 0.05 -1.4294119187129726, 3.444051602612145, 4.142873655394013, 0.05 -1.6129704408006373, 3.6711704417532935, 4.1532043382528805, 0.05 -1.8078562149561015, 3.8977154831092817, 4.16467510046532, 0.05 -2.0140375872188447, 4.123627445254862, 4.177332594640859, 0.05 -2.2309079025658742, 4.337406306940593, 3.985214308219911, 0.05 -2.4572883067519173, 4.527608083720862, 3.587201126807935, 0.05 -2.692001962408193, 4.694273113125512, 3.1883838145792076, 0.05 -2.9338748601587756, 4.837457955011651, 2.7884372051825856, 0.05 -3.1817366102555393, 4.95723500193527, 2.3870439038833524, 0.05 -3.4344211892515006, 5.053691579919227, 1.9839044360074531, 0.05 -3.690767618023382, 5.126928575437623, 1.5787467788457121, 0.05 -3.9496205508763738, 5.177058657059833, 1.1713347333286706, 0.05 -4.209830758875732, 5.204204159987163, 0.7614742951419906, 0.05 -4.470255496482681, 5.208494752138972, 0.3490184622134862, 0.05 -4.73032371725553, 5.201364415456983, 0.14265862926757578, 0.05 -4.990032286206046, 5.1941713790103154, 0.14391124956008028, 0.05 -5.249378650537058, 5.186927286620254, 0.1449308685188555, 0.05 -5.5083607921462505, 5.17964283218385, 0.14573650311914932, 0.05 -5.766977180029176, 5.172327757658517, 0.14634720781058874, 0.05 -6.025226723090991, 5.164990861236284, 0.1467818756886352, 0.05 -6.283108723772294, 5.1576400136260645, 0.1470590541792305, 0.05 -6.540622832950624, 5.150282183566592, 0.14719683356666735, 0.05 -6.797769006248701, 5.142923465961531, 0.14721266063341787, 0.05 -7.054547462188099, 5.135569118787966, 0.14712331336060203, 0.05 -7.310958642219394, 5.128223600625905, 0.14694476415986202, 0.05 -7.567003172893255, 5.1208906134772025, 0.14669216849380717, 0.05 -7.822681830226438, 5.113573146663657, 0.1463798073016953, 0.05 -8.077995506220201, 5.106273519875277, 0.14602102090918834, 0.05 -8.332945177820804, 5.098993432012069, 0.14562829449554116, 0.05 -8.587531878021187, 5.091734004007643, 0.1452131383416777, 0.05 -8.841756669348431, 5.084495826544889, 0.14478619324561848, 0.05 -9.095620619550738, 5.077279004046147, 0.1443571840213309, 0.05 -9.349124779448276, 5.070083197950759, 0.14393494014196762, 0.05 -9.602270163028715, 5.062907671608768, 0.1435274688654964, 0.05 -9.855057729539675, 5.055751330219221, 0.14314190515937852, 0.05 -10.107488367648429, 5.04861276217509, 0.1427845869337041, 0.05 -10.359562881575016, 5.041490278531751, 0.14246106680552373, 0.05 -10.611281979117475, 5.034381950849194, 0.14217612681630243, 0.05 -10.862646261549306, 5.027285648636639, 0.14193381418438733, 0.05 -11.113656215297548, 5.020199074964837, 0.14173744446241088, 0.05 -11.364312205414718, 5.013119802343405, 0.14158964077749303, 0.05 -11.614614470744424, 5.0060453065941255, 0.14149232204843543, 0.05 -11.864563120810004, 4.998973001311611, 0.1414467357612459, 0.05 -12.114158134378455, 4.991900271369015, 0.14145345301665557, 0.05 -12.36339935970015, 4.984824506433912, 0.14151237522648685, 0.05 -12.612286516424193, 4.977743134480871, 0.14162273291837835, 0.05 -12.860819199205157, 4.970653655619249, 0.14178308335388579, 0.05 -13.108996883013052, 4.963553676157912, 0.14199129908742947, 0.05 -13.35681893017628, 4.956440943264531, 0.14224455654181511, 0.05 -13.604284599210235, 4.949313380679099, 0.14253932731246977, 0.05 -13.851393055455546, 4.942169124906211, 0.1428713517808866, 0.05 -14.098143383601975, 4.935006562928608, 0.14323562877160967, 0.05 -14.344534602099191, 4.927824369944325, 0.14362637048654037, 0.05 -14.590565679608822, 4.9206215501926165, 0.14403701746882547, 0.05 -14.836235553472967, 4.913397477282904, 0.1444601788679556, 0.05 -15.081543150276794, 4.906151936076527, 0.14488761515080384, 0.05 -15.326487408614131, 4.898885166746765, 0.14531023670700804, 0.05 -15.571067304054294, 4.891597908803243, 0.14571806190028624, 0.05 -15.815281876350905, 4.8842914459322255, 0.14610020050195516, 0.05 -16.059130258928914, 4.8769676515601486, 0.14644484635212507, 0.05 -16.302611710736183, 4.86962903614543, 0.14673930601812657, 0.05 -16.545725650266633, 4.86227879060901, 0.14696992854101865, 0.05 -16.788471691942977, 4.854920833526857, 0.1471222178951237, 0.05 -17.030849684542257, 4.847559851985587, 0.1471807600059627, 0.05 -17.272859751783898, 4.840201344832794, 0.14712936560474787, 0.05 -17.51450233475133, 4.83285165934863, 0.14695105985211399, 0.05 -17.75577823603801, 4.825518025733644, 0.1466282060367341, 0.05 -17.99668866530647, 4.818208585369144, 0.14614258902424737, 0.05 -18.237235285961855, 4.8109324131077384, 0.1454755539155883, 0.05 -18.477420262549376, 4.803699531750436, 0.14460815875480648, 0.05 -18.71724630841778, 4.796520917368083, 0.14352135431165536, 0.05 -18.9565651656544, 4.786377144732392, 0.07614481675211948, 0.05 -19.1947106611599, 4.762909910110005, -0.21884226451245326, 0.05 -19.430653564427708, 4.718858065356191, -0.6767034855494458, 0.05 -19.663371035276985, 4.65434941698554, -1.1371189185846475, 0.05 -19.891846221580007, 4.569503726060415, -1.599928036761522, 0.05 -20.11506774244814, 4.464430417362685, -2.064924784473412, 0.05 -20.33202907015459, 4.339226554129018, -2.531862608010087, 0.05 -20.541727828396578, 4.193975164839733, -3.0004615571384896, 0.05 -20.7431650284857, 4.028744001782411, -3.4704169632462367, 0.05 -20.935344268215665, 3.8435847945993604, -3.9414090325538353, 0.05 -21.117420635445555, 3.641527344597785, -4.346321569279716, 0.05 -21.289063101409933, 3.4328493192875977, -4.522012425809434, 0.05 -21.4503024391353, 3.2247867545073485, -4.5343261045104555, 0.05 -21.60116648682368, 3.017280953767608, -4.545466704537651, 0.05 -21.741680270293596, 2.8102756693983153, -4.555483004761118, 0.05 -21.871866144012273, 2.603717474373519, -4.564431019439308, 0.05 -21.991743944734086, 2.397556014436257, -4.572372326446565, 0.05 -22.101331153941658, 2.191744184151406, -4.579371530638996, 0.05 -22.20064306347531, 1.9862381906730948, -4.585494772968319, 0.05 -22.28969294035506, 1.780997537594994, -4.5908078341142655, 0.05 -22.368492186657697, 1.5759849260527563, -4.595374676780959, 0.05 -22.43705049168686, 1.371166100583249, -4.599255771161954, 0.05 -22.495375972290663, 1.166509612076043, -4.602507451354394, 0.05 -22.54362410316411, 0.9649626174689435, -4.538021942532335, 0.05 -22.582459591429195, 0.776709765301735, -4.242446077399515, 0.05 -22.612907497861155, 0.6089581286392204, -3.7829080977206053, 0.05 -22.635991585737152, 0.4616817575199558, -3.32284992216751, 0.05 -22.652734646034908, 0.33486120595513813, -2.862402180536091, 0.05 -22.664158764001243, 0.22848235932668287, -2.401671655068094, 0.05 -22.67128553526082, 0.142535425191545, -1.9407448359553552, 0.05 -22.675136237216417, 0.07701403911192585, -1.4796907015644345, 0.05 -22.676731960959806, 0.03191447486777863, -1.0185621014866322, 0.05 -22.67709370674013, 0.007234915606483806, -0.5573967597759291, 0.05 -22.67709370674013, 0.0, -0.1634044768262244, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightRedMidProfile.csv b/RoboRIO/src/main/resources/calciferRightRedMidProfile.csv deleted file mode 100644 index 947268d2..00000000 --- a/RoboRIO/src/main/resources/calciferRightRedMidProfile.csv +++ /dev/null @@ -1,63 +0,0 @@ -62 -5.49931793657908E-4, 0.02199727174631632, 0.4399454349263264, 0.05 -0.0027496589682895374, 0.043994543492632585, 0.43994543492632526, 0.05 -0.007699045111210697, 0.09898772285842318, 1.0998635873158118, 0.05 -0.016497953809737204, 0.1759781739705301, 1.5398090222421381, 0.05 -0.030246248651184988, 0.27496589682895567, 1.9797544571685115, 0.05 -0.05004379322287049, 0.39595089143370993, 2.419699892095085, 0.05 -0.07699045111210907, 0.5389331577847717, 2.859645327021235, 0.05 -0.11218608590621662, 0.7039126958821509, 3.299590761947584, 0.05 -0.156730561192509, 0.8908895057258472, 3.739536196873927, 0.05 -0.2117237405583021, 1.0998635873158618, 4.17948163180029, 0.05 -0.27771555579723384, 1.3198363047786348, 4.3994543492554605, 0.05 -0.3547060069093173, 1.5398090222416694, 4.399454349260692, 0.05 -0.4426950938945572, 1.7597817397047977, 4.399454349262566, 0.05 -0.5416828167530191, 1.9797544571692383, 4.399454349288812, 0.05 -0.6516691754846433, 2.1997271746324842, 4.39945434926492, 0.05 -0.7726541700894299, 2.4196998920957324, 4.399454349264964, 0.05 -0.9046378005673469, 2.639672609558339, 4.39945434925213, 0.05 -1.0476200669182596, 2.8596453270182565, 4.399454349198351, 0.05 -1.20160096914232, 3.079618044481207, 4.399454349259013, 0.05 -1.3665805072395272, 3.2995907619441445, 4.399454349258747, 0.05 -1.5425586812098822, 3.5195634794070996, 4.399454349259102, 0.05 -1.7289855592597265, 3.7285375609968874, 4.179481631795756, 0.05 -1.924761277801746, 3.9155143708403894, 3.7395361968700414, 0.05 -2.1287859732486254, 4.0804939089375925, 3.29959076194406, 0.05 -2.339959782013051, 4.223476175288514, 2.859645327018434, 0.05 -2.5571828405077075, 4.344461169893128, 2.419699892092275, 0.05 -2.77935528514528, 4.4434488927514515, 1.9797544571664716, 0.05 -3.0053772523384548, 4.520439343863494, 1.5398090222408456, 0.05 -3.2341488784999153, 4.57543252322921, 1.0998635873143314, 0.05 -3.4645703000423484, 4.608428430848663, 0.6599181523890607, 0.05 -3.6952836182124607, 4.614266363402244, 0.11675865107161343, 0.05 -3.9249309342554115, 4.592946320859017, -0.42640085086453894, 0.05 -4.152412384583538, 4.5496290065625455, -0.8663462859294313, 0.05 -4.376628105609524, 4.484314420519713, -1.306291720856656, 0.05 -4.596478233746043, 4.3970025627303855, -1.7462371557865453, 0.05 -4.81086290540578, 4.2876934331947325, -2.1861825907130594, 0.05 -5.0186822570014105, 4.156387031912612, -2.6261280256424158, 0.05 -5.218836424945615, 4.003083358884094, -3.066073460570351, 0.05 -5.410225545651072, 3.8277824141091443, -3.506018895498997, 0.05 -5.5917497555304605, 3.630484197587762, -3.9459643304276426, 0.05 -5.76256722616338, 3.416349412658395, -4.2826956985873466, 0.05 -5.922386060923093, 3.1963766951942496, -4.399454349282905, 0.05 -6.071206259809596, 2.976403977730069, -4.399454349283616, 0.05 -6.209027822822892, 2.7564312602659236, -4.399454349282905, 0.05 -6.335850749962979, 2.536458542801725, -4.399454349283971, 0.05 -6.4516750412298585, 2.3164858253375975, -4.39945434928255, 0.05 -6.55650069662353, 2.0965131078734345, -4.3994543492832605, 0.05 -6.650327716143992, 1.876540390409236, -4.399454349283971, 0.05 -6.7331560997912465, 1.6565676729450907, -4.399454349282905, 0.05 -6.804985847565294, 1.4365949554809454, -4.399454349282905, 0.05 -6.86581695946613, 1.216622238016729, -4.399454349284326, 0.05 -6.915907470660681, 1.0018102238910132, -4.296240282514319, 0.05 -6.956065348109526, 0.8031575489768983, -3.9730534982822974, 0.05 -6.987390455399983, 0.6265021458091447, -3.5331080633550727, 0.05 -7.010982656119375, 0.47184401438784107, -3.0931626284260716, 0.05 -7.0279418138550245, 0.33918315471298754, -2.6532171934970705, 0.05 -7.039367792194249, 0.22851956678449525, -2.213271758569846, 0.05 -7.046360454724372, 0.13985325060245302, -1.7733263236408447, 0.05 -7.050019665032712, 0.07318420616680754, -1.3333808887129095, 0.05 -7.051445286706593, 0.02851243347761212, -0.8934354537839084, 0.05 -7.051737183333333, 0.005837932534795698, -0.45349001885632845, 0.05 -7.051737183333333, 0.0, -0.11675865069591396, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightRedRightProfile.csv b/RoboRIO/src/main/resources/calciferRightRedRightProfile.csv deleted file mode 100644 index 9203e9a1..00000000 --- a/RoboRIO/src/main/resources/calciferRightRedRightProfile.csv +++ /dev/null @@ -1,79 +0,0 @@ -78 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.0029269035751671563, 0.047668506285951824, 0.35097771303500613, 0.05 -0.00828982773405713, 0.10725848317779947, 0.9821133784548175, 0.05 -0.017824658552323965, 0.19069661636533664, 1.3747156137997143, 0.05 -0.03272473572403382, 0.29800154343419705, 1.7669442995799494, 0.05 -0.054184927082725064, 0.42920382717382494, 2.1585618322786653, 0.05 -0.0834023705613429, 0.5843488695723569, 2.5492699298463104, 0.05 -0.12157736709358202, 0.7634999306447822, 2.9387115770173753, 0.05 -0.16991441913386618, 0.9667410408056828, 3.3264702254694245, 0.05 -0.2296234131025263, 1.1941798793732024, 3.7120717712240103, 0.05 -0.3013232158925155, 1.4339960557997837, 3.899295080201919, 0.05 -0.38504048579411587, 1.6743453980320082, 3.88861739836718, 0.05 -0.4808062037396704, 1.9153143589110904, 3.876207178846003, 0.05 -0.5886555516645161, 2.156986958496913, 3.8621125874969797, 0.05 -0.7086277223275743, 2.3994434132611633, 3.846409696669628, 0.05 -0.8407656332590439, 2.6427582186293908, 3.8292117481625754, 0.05 -0.9851155173841075, 2.8869976825012733, 3.8106823635456255, 0.05 -1.1417263511724447, 3.132216675766746, 3.7910492443115107, 0.05 -1.3106490802051705, 3.3784545806545143, 3.7706219069751423, 0.05 -1.4919355920890236, 3.625730237677063, 3.74981013543656, 0.05 -1.685637387353164, 3.8740359052828093, 3.729145470577686, 0.05 -1.8918038941430333, 4.123330135797385, 3.7093017679927964, 0.05 -2.1104803788459696, 4.373529694058727, 3.6911147570355585, 0.05 -2.3410964434888943, 4.612321292858492, 3.484431672578996, 0.05 -2.582458104306666, 4.827233216355435, 3.0924385640735785, 0.05 -2.83335146997556, 5.017867313377884, 2.708428613134357, 0.05 -3.0925414432927396, 5.1837994663435865, 2.3329246602227904, 0.05 -3.358771483174088, 5.324600797626962, 1.9660234919417974, 0.05 -3.630764601474054, 5.43986236599933, 1.6073265899384204, 0.05 -3.9072256802703333, 5.529221575925581, 1.2559051978856672, 0.05 -4.1868450764776295, 5.592387924145932, 0.910313898821542, 0.05 -4.468303341221207, 5.629165294871556, 0.568659223665513, 0.05 -4.750276748850043, 5.639468152576708, 0.22872250298359376, 0.05 -5.032055464432473, 5.635574311648603, 0.07796507400666286, 0.05 -5.31354580246387, 5.629806760627953, 0.11548072252448804, 0.05 -5.5946586415995725, 5.622256782714042, 0.151167574279647, 0.05 -5.875310829693357, 5.613043761875703, 0.18446268796385112, 0.05 -6.155426338694083, 5.602310180014503, 0.2149034779349357, 0.05 -6.4349371372474025, 5.590215971066388, 0.24214049435780538, 0.05 -6.713783768712503, 5.576932629302008, 0.2659423510931447, 0.05 -6.991915640718291, 5.562637440115779, 0.28619327049971943, 0.05 -7.269291047867098, 5.547508142976124, 0.3028843988908392, 0.05 -7.545876960823099, 5.531718259120019, 0.31610047743587444, 0.05 -7.821648622335939, 5.515433230256794, 0.3260035784185078, 0.05 -8.096416693860837, 5.495361430497972, 0.27621051279991704, 0.05 -8.369406080442406, 5.459787731631396, 0.025959012799159353, 0.05 -8.63943555572274, 5.400589505606666, -0.3710829355293477, 0.05 -8.905343691036819, 5.318162706281584, -0.7760587331448221, 0.05 -9.165987226960967, 5.212870718482961, -1.1883156223567504, 0.05 -9.420239077577031, 5.085037012321308, -1.6070531817891798, 0.05 -9.666986118554396, 4.934940819547302, -2.0313845458759516, 0.05 -9.905126887910313, 4.762815387118331, -2.460387781008606, 0.05 -10.133569298807318, 4.568848217940093, -2.893146032188847, 0.05 -10.351228434927275, 4.353182722399138, -3.3287756584467854, 0.05 -10.557192171281581, 4.119274727086137, -3.7079925058245777, 0.05 -10.751129919258469, 3.8787549595377584, -3.885047303469129, 0.05 -10.933118862056057, 3.6397788559517594, -3.9159603763231754, 0.05 -11.103229287421797, 3.4022085073148083, -3.9441081684084, 0.05 -11.261524928404254, 3.1659128196491353, -3.969628388252664, 0.05 -11.408063329687241, 2.9307680256597357, -3.992668364015204, 0.05 -11.542896217522166, 2.696657756698485, -4.013377106345342, 0.05 -11.666069860210706, 2.4634728537707926, -4.031899222982656, 0.05 -11.777625408283875, 2.2311109614633544, -4.048371714872467, 0.05 -11.8775992102873, 1.9994760400685008, -4.062920998281889, 0.05 -11.96602309892738, 1.768477772801598, -4.075662188177542, 0.05 -12.042924647204346, 1.5380309655393432, -4.086697918000475, 0.05 -12.108327393207828, 1.3080549200696272, -4.096118342592536, 0.05 -12.162416228780407, 1.0817767114515653, -4.044546029570513, 0.05 -12.205944068619486, 0.8705567967815812, -3.785399450776732, 0.05 -12.240066256364756, 0.6824437549054058, -3.377974004046602, 0.05 -12.265934270193144, 0.5173602765677655, -2.969001432345718, 0.05 -12.284696643000816, 0.3752474561534228, -2.558850258903871, 0.05 -12.297499740623595, 0.2560619524555835, -2.147831692916183, 0.05 -12.305488408696931, 0.15977336146672824, -1.7362049772638855, 0.05 -12.309806498388182, 0.08636179382503076, -1.3241802985540134, 0.05 -12.311597275845134, 0.03581554913902305, -0.9119215315504878, 0.05 -12.312003719327572, 0.008128869648755244, -0.49954762449480866, 0.05 -12.312003719327572, 0.0, -0.14667194496173624, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightRedShootProfile.csv b/RoboRIO/src/main/resources/calciferRightRedShootProfile.csv deleted file mode 100644 index 5913b62b..00000000 --- a/RoboRIO/src/main/resources/calciferRightRedShootProfile.csv +++ /dev/null @@ -1,61 +0,0 @@ -60 -5.571761821131456E-4, 0.022287047284525824, 0.4457409456905165, 0.05 -0.002339172429744792, 0.03563992495263292, 0.6244243285693061, 0.05 -0.006348821401153143, 0.08019297942816703, 1.337643512521225, 0.05 -0.013477636790894186, 0.14257630779482086, 1.8725193939153175, 0.05 -0.024617876637049944, 0.2228047969231151, 2.4070964415086786, 0.05 -0.04066314455146898, 0.3209053582883806, 2.941133084377572, 0.05 -0.06250933274002804, 0.43692376377118103, 3.474250281885266, 0.05 -0.09105609244618089, 0.570935194123057, 4.005857399721566, 0.05 -0.12720909510517442, 0.7230600531798709, 4.535046835162415, 0.05 -0.17188343419066232, 0.8934867817097577, 5.060453699109182, 0.05 -0.22556095769046014, 1.0735504699959564, 5.3134081245059495, 0.05 -0.2882928393010401, 1.2546376322115986, 5.2928889323554085, 0.05 -0.3601500426483054, 1.4371440669453057, 5.264450000734393, 0.05 -0.441228000397782, 1.6215591549895316, 5.226222612293938, 0.05 -0.531651404734171, 1.8084680867277818, 5.176294540281026, 0.05 -0.6315787498308411, 1.9985469019333997, 5.1128536924183, 0.05 -0.7412061888090189, 2.1925487795635563, 5.034362754966608, 0.05 -0.8607702266793, 2.391280757405622, 4.939750382210457, 0.05 -0.9905487927298878, 2.5955713210117564, 4.828592977707551, 0.05 -1.1308603447594512, 2.806231040591267, 4.701253014125308, 0.05 -1.2815858253838743, 3.0145096124884643, 4.303243100192153, 0.05 -1.4421355659808248, 3.210994811939011, 3.6477963355920373, 0.05 -1.6118940542478237, 3.395169765339978, 3.0026944145903833, 0.05 -1.7902047036657331, 3.566212988358189, 2.3740100162402378, 0.05 -1.9763576637004014, 3.7230592006933643, 1.7666023314850143, 0.05 -2.16958153803737, 3.8644774867393754, 1.1837724532838223, 0.05 -2.3690391628551253, 3.989152496355103, 0.6272035917753627, 0.05 -2.5738269742975466, 4.095756228848429, 0.09714922213134969, 0.05 -2.7829770828280753, 4.183002170610571, -0.40721510019523066, 0.05 -2.9953597939913714, 4.247654223265918, -0.9312630581620063, 0.05 -3.2097839762680214, 4.288483645532999, -1.4307587957591572, 0.05 -3.4251053334551598, 4.30642714374277, -1.8646246240627207, 0.05 -3.6401315382373904, 4.300524095644609, -2.279276849593135, 0.05 -3.8536250180675284, 4.269869596602757, -2.675820808023026, 0.05 -4.064304890623036, 4.213597451110149, -3.0550234558353395, 0.05 -4.270848315699801, 4.130868501535307, -3.417420461241951, 0.05 -4.471891684918652, 4.020867384377009, -3.763485050721398, 0.05 -4.666032156342348, 3.882809428473931, -4.093831067881721, 0.05 -4.851830051059217, 3.7159578943373774, -4.4094198579280075, 0.05 -5.0279255872826685, 3.5219107244690253, -4.672576588122119, 0.05 -5.193536907471804, 3.3122264037827254, -4.721159398653381, 0.05 -5.348374284326214, 3.096747537088199, -4.605233782752416, 0.05 -5.492165647882796, 2.8758272711316426, -4.496376207982387, 0.05 -5.624657695661503, 2.6498409555741333, -4.395032728002564, 0.05 -5.745617062774454, 2.419187342259036, -4.301672284667681, 0.05 -5.854831379052524, 2.1842863255614025, -4.216717703602302, 0.05 -5.952110091192464, 1.9455742427987792, -4.140497068689801, 0.05 -6.037284983697076, 1.7034978500922517, -4.0732174549978195, 0.05 -6.110210385815255, 1.458508042363574, -4.014959996552965, 0.05 -6.170882385066493, 1.2134399850247617, -3.9290338776379152, 0.05 -6.219951758690793, 0.9813874724859951, -3.6592445114771555, 0.05 -6.258608233246484, 0.7731294911138317, -3.243666544279058, 0.05 -6.2880660035540945, 0.5891554061522151, -2.837871586115779, 0.05 -6.309558005822554, 0.42984004536919684, -2.439569756191607, 0.05 -6.324331028206878, 0.2954604476864665, -2.046806256193784, 0.05 -6.333641621662225, 0.18621186910693832, -1.6579462831041636, 0.05 -6.3387527704570585, 0.1022229758966803, -1.2716587382962423, 0.05 -6.340931287327741, 0.04357033741364273, -0.8869021444900084, 0.05 -6.341445907680765, 0.01029240706050448, -0.5029144566155819, 0.05 -6.341445907680765, 0.0, -0.15551792152192137, 0.05 diff --git a/RoboRIO/src/main/resources/calciferRightforward100InProfile.csv b/RoboRIO/src/main/resources/calciferRightforward100InProfile.csv deleted file mode 100644 index 5206ca4a..00000000 --- a/RoboRIO/src/main/resources/calciferRightforward100InProfile.csv +++ /dev/null @@ -1,68 +0,0 @@ -67 -5.434782608695652E-4, 0.021739130434782608, 0.43478260869565216, 0.05 -0.0027173913043478243, 0.04347826086956518, 0.43478260869565144, 0.05 -0.007608695652173899, 0.09782608695652148, 1.086956521739126, 0.05 -0.016304347826086918, 0.17391304347826042, 1.5217391304347787, 0.05 -0.02989130434782601, 0.2717391304347819, 1.956521739130429, 0.05 -0.04945652173913106, 0.3913043478261009, 2.3913043478263805, 0.05 -0.07608695652174083, 0.5326086956521955, 2.8260869565218916, 0.05 -0.1108695652173944, 0.6956521739130713, 3.260869565217517, 0.05 -0.15489130434783097, 0.8804347826087313, 3.6956521739132, 0.05 -0.2092391304347897, 1.0869565217391746, 4.130434782608865, 0.05 -0.2744565217391353, 1.3043478260869124, 4.347826086954756, 0.05 -0.35054347826085114, 1.5217391304343164, 4.347826086948081, 0.05 -0.437499999999955, 1.7391304347820769, 4.347826086955209, 0.05 -0.5353260869564568, 1.956521739130036, 4.347826086959183, 0.05 -0.644021739130412, 2.1739130434791054, 4.347826086981388, 0.05 -0.7635869565217627, 2.3913043478270124, 4.34782608695814, 0.05 -0.894021739130509, 2.608695652174926, 4.347826086958273, 0.05 -1.0353260869566507, 2.826086956522833, 4.34782608695814, 0.05 -1.1874999999999856, 3.0434782608666966, 4.347826086877271, 0.05 -1.3505434782606922, 3.260869565214133, 4.347826086948725, 0.05 -1.524456521738779, 3.478260869561738, 4.3478260869521, 0.05 -1.7092391304342465, 3.6956521739093473, 4.347826086952189, 0.05 -1.9048913043470945, 3.913043478256961, 4.347826086952278, 0.05 -2.1108695652164533, 4.1195652173871755, 4.130434782604286, 0.05 -2.326086956520586, 4.304347826082653, 3.695652173909547, 0.05 -2.549456521737754, 4.467391304343362, 3.260869565214186, 0.05 -2.7798913043462194, 4.608695652169308, 2.826086956518914, 0.05 -3.0163043478242435, 4.728260869560481, 2.391304347823464, 0.05 -3.257608695650089, 4.826086956516908, 1.9565217391285472, 0.05 -3.502717391302018, 4.902173913038581, 1.5217391304334527, 0.05 -3.750543478258292, 4.956521739125481, 1.0869565217380028, 0.05 -3.9999999999971734, 4.989130434777627, 0.6521739130429083, 0.05 -4.249999999997386, 5.000000000004254, 0.21739130453255484, 0.05 -4.499637862317328, 4.992757246398831, -0.14485507210846293, 0.05 -4.748007971014006, 4.967402173933575, -0.5071014493051251, 0.05 -4.994023369565676, 4.920307971033395, -0.9418840580035948, 0.05 -5.236597101450595, 4.851474637698381, -1.376666666700288, 0.05 -5.474642210147018, 4.760902173928461, -1.8114492753984024, 0.05 -5.707071739133202, 4.64859057972367, -2.246231884095806, 0.05 -5.9327987318874, 4.514539855083957, -2.681014492794276, 0.05 -6.150736231887871, 4.358750000009426, -3.115797101490614, 0.05 -6.35979728261287, 4.1812210144999895, -3.550579710188728, 0.05 -6.558894927540653, 3.9819528985556474, -3.9853623188868426, 0.05 -6.747304347830671, 3.768188405800359, -4.275289855105768, 0.05 -6.924844202903249, 3.5507971014515682, -4.3478260869758145, 0.05 -7.091514492758385, 3.333405797102724, -4.34782608697688, 0.05 -7.247315217396082, 3.1160144927539335, -4.3478260869758145, 0.05 -7.3922463768163365, 2.8986231884050895, -4.34782608697688, 0.05 -7.526307971019151, 2.6812318840562988, -4.3478260869758145, 0.05 -7.649500000004525, 2.4638405797074725, -4.347826086976525, 0.05 -7.761822463772457, 2.2464492753586462, -4.347826086976525, 0.05 -7.86327536232295, 2.0290579710098555, -4.3478260869758145, 0.05 -7.953858695656001, 1.8116666666610115, -4.34782608697688, 0.05 -8.033572463771613, 1.5942753623122208, -4.3478260869758145, 0.05 -8.102416666669784, 1.37688405796343, -4.3478260869758145, 0.05 -8.160391304350512, 1.1594927536145505, -4.347826086977591, 0.05 -8.207858514494996, 0.9493442028896837, -4.2029710144973365, 0.05 -8.245723913045303, 0.7573079710061492, -3.8407246376706894, 0.05 -8.275074456523177, 0.5870108695574672, -3.405942028973641, 0.05 -8.29699710145036, 0.4384528985436731, -2.9711594202758818, 0.05 -8.3125788043486, 0.3116340579648025, -2.536376811577412, 0.05 -8.322906521739638, 0.20655434782074877, -2.101594202881074, 0.05 -8.32906721014522, 0.12321376811165408, -1.666811594181894, 0.05 -8.33214782608709, 0.06161231883737628, -1.232028985485556, 0.05 -8.33323532608699, 0.021749999998021963, -0.7972463767870863, 0.05 -8.333416666666666, 0.003626811593520074, -0.3624637680900378, 0.05 -8.333416666666666, 0.0, -0.07253623187040148, 0.05 diff --git a/RoboRIO/src/main/resources/forward100InProfile.csv b/RoboRIO/src/main/resources/forward100InProfile.csv deleted file mode 100644 index 10589984..00000000 --- a/RoboRIO/src/main/resources/forward100InProfile.csv +++ /dev/null @@ -1,79 +0,0 @@ -78 -3.712036058088627E-4, 0.014848144232354508, 0.29696288464709014, 0.05 -0.001856018029044314, 0.029696288464709023, 0.29696288464709025, 0.05 -0.00519685048132407, 0.06681664904559512, 0.7424072116177218, 0.05 -0.011136108174265857, 0.11878515385883576, 1.0393700962648127, 0.05 -0.020416198319487405, 0.1856018029044309, 1.336332980911903, 0.05 -0.03377952812860649, 0.2672665961823816, 1.6332958655590135, 0.05 -0.0519685048132415, 0.3637795336927002, 1.9302587502063728, 0.05 -0.07572553558500969, 0.4751406154353638, 2.2272216348532714, 0.05 -0.10579302765552878, 0.6013498414103818, 2.524184519500361, 0.05 -0.14291338823641653, 0.7424072116177551, 2.821147404147466, 0.05 -0.1874578209334819, 0.8908886539413075, 2.9696288464710463, 0.05 -0.2394263257467248, 1.0393700962648578, 2.9696288464710063, 0.05 -0.298818902676132, 1.1878515385881439, 2.9696288464657217, 0.05 -0.36563555172170675, 1.3363329809114954, 2.9696288464670317, 0.05 -0.4398762728834566, 1.484814423234997, 2.9696288464700293, 0.05 -0.5215410661613818, 1.633295865558505, 2.9696288464701626, 0.05 -0.6106299315555436, 1.7817773078832344, 2.9696288464945875, 0.05 -0.7071428690658853, 1.9302587502068347, 2.9696288464720055, 0.05 -0.8110798786924072, 2.078740192530437, 2.96962884647205, 0.05 -0.9224409604351091, 2.2272216348540397, 2.96962884647205, 0.05 -1.0412261142939911, 2.375703077177642, 2.96962884647205, 0.05 -1.1674353402688789, 2.524184519497754, 2.969628846402239, 0.05 -1.301068638359936, 2.6726659618211412, 2.9696288464677423, 0.05 -1.4421260085671628, 2.8211474041445372, 2.96962884646792, 0.05 -1.5906074508905592, 2.969628846467929, 2.969628846467831, 0.05 -1.7465129653301252, 3.1181102887913204, 2.969628846467831, 0.05 -1.9098425518858617, 3.2665917311147297, 2.9696288464681864, 0.05 -2.0805962105577676, 3.4150731734381212, 2.969628846467831, 0.05 -2.2587739413458436, 3.5635546157615217, 2.9696288464680087, 0.05 -2.4440045406442805, 3.7046119859687376, 2.8211474041443196, 0.05 -2.635545601241463, 3.830821211943647, 2.524184519498185, 0.05 -2.8326547159257713, 3.9421822936861695, 2.2272216348504514, 0.05 -3.0345894774855906, 4.038695231196385, 1.9302587502043167, 0.05 -3.240607478709304, 4.120360024474268, 1.633295865557649, 0.05 -3.4499663123852935, 4.18717667351979, 1.3363329809104485, 0.05 -3.661923571301942, 4.23914517833297, 1.0393700962636032, 0.05 -3.875736848247633, 4.276265538913817, 0.7424072116169356, 0.05 -4.0906637360107485, 4.298537755262322, 0.4454443269700903, 0.05 -4.305852846523989, 4.303782210264817, 0.1048891000499097, 0.05 -4.520452791718922, 4.291998903898655, -0.23566612732324188, 0.05 -4.733721164383507, 4.265367453291695, -0.5326290121391963, 0.05 -4.944915557306121, 4.2238878584522865, -0.8295918967881732, 0.05 -5.153293563275144, 4.167560119380465, -1.1265547814364396, 0.05 -5.358112775078955, 4.0963842360762115, -1.4235176660850613, 0.05 -5.558630785505931, 4.010360208539527, -1.720480550733683, 0.05 -5.754105187344454, 3.9094880367704476, -2.017443435381594, 0.05 -5.943793573382901, 3.793767720768937, -2.3144063200302156, 0.05 -6.1269535364096495, 3.6631992605349772, -2.6113692046791925, 0.05 -6.302951650069539, 3.5199622731977875, -2.864739746743794, 0.05 -6.471525691613219, 3.371480830873601, -2.9696288464837295, 0.05 -6.632675661040686, 3.2229993885493435, -2.9696288464851506, 0.05 -6.786401558351944, 3.074517946225157, -2.9696288464837295, 0.05 -6.932703383546991, 2.926036503900935, -2.96962884648444, 0.05 -7.071581136625825, 2.7775550615766953, -2.9696288464847953, 0.05 -7.20303481758845, 2.629073619252491, -2.9696288464840848, 0.05 -7.327064426434863, 2.480592176928269, -2.96962884648444, 0.05 -7.443669963165066, 2.332110734604047, -2.96962884648444, 0.05 -7.552851427779056, 2.1836292922798073, -2.9696288464847953, 0.05 -7.654608820276835, 2.0351478499555853, -2.96962884648444, 0.05 -7.748942140658404, 1.8866664076313633, -2.96962884648444, 0.05 -7.835851388923762, 1.7381849653071768, -2.9696288464837295, 0.05 -7.915336565072909, 1.589703522982937, -2.9696288464847953, 0.05 -7.987397669105845, 1.441222080658715, -2.96962884648444, 0.05 -8.052034701022569, 1.2927406383344753, -2.9696288464847953, 0.05 -8.109247660823083, 1.1442591960102888, -2.9696288464837295, 0.05 -8.159036548507387, 0.9957777536860846, -2.9696288464840848, 0.05 -8.201401364075478, 0.8472963113618093, -2.969628846485506, 0.05 -8.236451088383818, 0.700994486166806, -2.9260365039000646, 0.05 -8.264665905894674, 0.5642963502171128, -2.7339627189938653, 0.05 -8.286788223819668, 0.4424463584998861, -2.436999834344533, 0.05 -8.303560449370421, 0.335444511015055, -2.140036949696622, 0.05 -8.315724989758554, 0.243290807762655, -1.8430740650480004, 0.05 -8.324024252195688, 0.16598524874268605, -1.5461111803993788, 0.05 -8.329200643893447, 0.10352783395518372, -1.2491482957500466, 0.05 -8.331996572063447, 0.055918563400005894, -0.9521854111035566, 0.05 -8.333154443917314, 0.0231574370773302, -0.6552225264535139, 0.05 -8.333416666666665, 0.005244454987014535, -0.3582596418063133, 0.05 -8.333416666666665, 0.0, -0.1048890997402907, 0.05 diff --git a/build.gradle b/build.gradle index f3eab9e9..934566e1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,111 @@ -allprojects { - tasks.withType(Javadoc).all { enabled = true } - repositories { - maven { - url 'https://jitpack.io' +plugins { + id 'org.hidetake.ssh' version "2.9.0" + id 'java' + id 'eclipse' + id 'idea' + id 'jaci.openrio.gradle.GradleRIO' version "2017.1.5" +} + +group 'org.usfirst.frc.team449.robot2017' +version '1.0' + +repositories { + mavenCentral() + maven { + name = "GradleRio" + url = "http://dev.imjac.in/maven" + } + + maven { url "https://plugins.gradle.org/m2/" } + + maven { + url 'https://jitpack.io' + } +} + +wpi { + wpilibVersion = "2017.3.1" // The WPILib version to use. For this version of GradleRIO, must be a 2017 version. + ntcoreVersion = "3.1.7" // The NetworkTables Core version to use. + opencvVersion = "3.1.0" // The OpenCV version to use. + cscoreVersion = "1.0.2" // The CSCore version to use. + talonSrxVersion = "4.4.1.14" // The CTRE Toolsuite (Talon SRX) version to use. + navxVersion = "3.0.331" // The NavX-MXP library version to use. +} + +dependencies { + compile 'com.github.blair-robot-project:449-central-repo:v6.0.0' + // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind + compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.0.pr3' + // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core + compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.0.pr3' + // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations + compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.0.pr3' + compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.9.0.pr3' + //com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.0.pr3 + compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: '2.9.0.pr3' + compile 'org.jetbrains:annotations:13.0' + compile wpilib() + compile talonSrx() + compile navx() +} + +/* GradleRIO stuff */ +remotes { + rio { + host = 'roboRIO-449-frc.local' + user = 'lvuser' + knownHosts = allowAnyHosts + } +} + +frc { + team = '449' + robotClass = "org.usfirst.frc.team449.robot.Robot" +} + +def robotManifest = { + attributes 'Main-Class': 'edu.wpi.first.wpilibj.RobotBase' + attributes 'Robot-Class': frc.robotClass +} + +task('copyResources') { + doLast { + ssh.run { + session(remotes.rio) { + execute 'mkdir ~/449_resources', ignoreError: true + execute 'mkdir ~/logs', ignoreError: true + put from: fileTree('src/main/resources'), into: './449_resources/' + execute ". /etc/profile.d/natinst-path.sh; /usr/local/frc/bin/frcKillRobot.sh -t -r", ignoreError: true + } } } +} + +/* Generic artifact gen stuff */ +jar { + from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } + manifest robotManifest +} + +task genJavadoc(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from javadoc.destinationDir +} + +task deleteDocs(type: Delete){ + delete '../docs' + followSymlinks = false +} + +task copyDocs(type: Copy, dependsOn: [genJavadoc, deleteDocs]){ + from 'build/docs/javadoc' + into 'docs' +} + +artifacts { + archives genJavadoc +} + +compileJava { + options.compilerArgs << '-parameters' } \ No newline at end of file diff --git a/docs/allclasses-frame.html b/docs/allclasses-frame.html deleted file mode 100644 index d62579a5..00000000 --- a/docs/allclasses-frame.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -All Classes (RoboRIO 1.0 API) - - - - - -

All Classes

-
- -
- - diff --git a/docs/allclasses-noframe.html b/docs/allclasses-noframe.html deleted file mode 100644 index 6567b064..00000000 --- a/docs/allclasses-noframe.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -All Classes (RoboRIO 1.0 API) - - - - - -

All Classes

-
- -
- - diff --git a/docs/constant-values.html b/docs/constant-values.html deleted file mode 100644 index 508d841e..00000000 --- a/docs/constant-values.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - -Constant Field Values (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Constant Field Values

-

Contents

- -
-
- - -

org.usfirst.*

-
    -
  • - - - - - - - - - - - - - - -
    org.usfirst.frc.team449.robot.Robot 
    Modifier and TypeConstant FieldValue
    - -public static final java.lang.StringRESOURCES_PATH"/home/lvuser/449_resources/"
    -
  • -
-
- - - - - - diff --git a/docs/deprecated-list.html b/docs/deprecated-list.html deleted file mode 100644 index 2c7be961..00000000 --- a/docs/deprecated-list.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - - -Deprecated List (RoboRIO 1.0 API) - - - - - - - - -
- - - - - - - -
- - -
-

Deprecated API

-

Contents

-
- -
- - - - - - - -
- - - - diff --git a/docs/help-doc.html b/docs/help-doc.html deleted file mode 100644 index c8847a77..00000000 --- a/docs/help-doc.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - -API Help (RoboRIO 1.0 API) - - - - - - - - -
- - - - - - - -
- - -
-

How This API Document Is Organized

-
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
-
-
-
    -
  • -

    Overview

    -

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    -
  • -
  • -

    Package

    -

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

    -
      -
    • Interfaces (italic)
    • -
    • Classes
    • -
    • Enums
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Types
    • -
    -
  • -
  • -

    Class/Interface

    -

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    -
      -
    • Class inheritance diagram
    • -
    • Direct Subclasses
    • -
    • All Known Subinterfaces
    • -
    • All Known Implementing Classes
    • -
    • Class/interface declaration
    • -
    • Class/interface description
    • -
    -
      -
    • Nested Class Summary
    • -
    • Field Summary
    • -
    • Constructor Summary
    • -
    • Method Summary
    • -
    -
      -
    • Field Detail
    • -
    • Constructor Detail
    • -
    • Method Detail
    • -
    -

    Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    -
  • -
  • -

    Annotation Type

    -

    Each annotation type has its own separate page with the following sections:

    -
      -
    • Annotation Type declaration
    • -
    • Annotation Type description
    • -
    • Required Element Summary
    • -
    • Optional Element Summary
    • -
    • Element Detail
    • -
    -
  • -
  • -

    Enum

    -

    Each enum has its own separate page with the following sections:

    -
      -
    • Enum declaration
    • -
    • Enum description
    • -
    • Enum Constant Summary
    • -
    • Enum Constant Detail
    • -
    -
  • -
  • -

    Tree (Class Hierarchy)

    -

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

    -
      -
    • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
    • -
    • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
    • -
    -
  • -
  • -

    Deprecated API

    -

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    -
  • -
  • -

    Index

    -

    The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

    -
  • -
  • -

    Prev/Next

    -

    These links take you to the next or previous class, interface, package, or related page.

    -
  • -
  • -

    Frames/No Frames

    -

    These links show and hide the HTML frames. All pages are available with or without frames.

    -
  • -
  • -

    All Classes

    -

    The All Classes link shows all classes and interfaces except non-static nested types.

    -
  • -
  • -

    Serialized Form

    -

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    -
  • -
  • -

    Constant Field Values

    -

    The Constant Field Values page lists the static final fields and their values.

    -
  • -
-This help file applies to API documentation generated using the standard doclet.
- -
- - - - - - - -
- - - - diff --git a/docs/index-all.html b/docs/index-all.html deleted file mode 100644 index da4fb03c..00000000 --- a/docs/index-all.html +++ /dev/null @@ -1,3667 +0,0 @@ - - - - - -Index (RoboRIO 1.0 API) - - - - - - - - -
- - - - - - - -
- - -
A B C D E F G H I J L M N O P R S T U V W Y  - - -

A

-
-
addAbsolutePos(double, double, long) - Method in class org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator
-
-
Add an absolute position at the given time stamp.
-
-
addAbsolutePos(double, double, long, double) - Method in class org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator
-
-
Add an absolute position at the given time stamp, using an angle measured to verify that the absolute position is - correct.
-
-
addEvent(String, Class) - Static method in class org.usfirst.frc.team449.robot.other.Logger
-
-
Log an event to be written to the event log file.
-
-
ahrs - Variable in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
The AHRS this class is a wrapper on.
-
-
AHRSRumbleComponent - Class in org.usfirst.frc.team449.robot.components
-
-
A component to rumble controllers based off the jerk measurements from an AHRS.
-
-
AHRSRumbleComponent(MappedAHRS, List<Rumbleable>, double, double, boolean, boolean) - Constructor for class org.usfirst.frc.team449.robot.components.AHRSRumbleComponent
-
-
Default constructor.
-
-
AngularSnapPoint(double, double, double) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint
-
-
Default constructor.
-
-
Auto2017Boiler - Class in org.usfirst.frc.team449.robot.commands.autonomous
-
-
The autonomous routine to deliver a gear to the center gear.
-
-
Auto2017Boiler(RunLoadedProfile, YamlCommand, MappedDigitalInput, MappedDigitalInput, RunProfileTwoSides, RunProfileTwoSides, YamlCommand, YamlCommand, long) - Constructor for class org.usfirst.frc.team449.robot.commands.autonomous.Auto2017Boiler
-
-
Default constructor.
-
-
Auto2017Center - Class in org.usfirst.frc.team449.robot.commands.autonomous
-
-
The autonomous routine to deliver a gear to the center gear.
-
-
Auto2017Center(RunLoadedProfile, YamlCommand, MappedDigitalInput, YamlCommand) - Constructor for class org.usfirst.frc.team449.robot.commands.autonomous.Auto2017Center
-
-
Default constructor.
-
-
Auto2017Feeder - Class in org.usfirst.frc.team449.robot.commands.autonomous
-
-
The autonomous routine to deliver a gear to the center gear.
-
-
Auto2017Feeder(RunLoadedProfile, YamlCommand, MappedDigitalInput, MappedDigitalInput, RunProfileTwoSides, RunProfileTwoSides, YamlCommand, YamlCommand, long) - Constructor for class org.usfirst.frc.team449.robot.commands.autonomous.Auto2017Feeder
-
-
Default constructor.
-
-
autonomousInit() - Method in class org.usfirst.frc.team449.robot.Robot
-
-
Run when we first enable in autonomous
-
-
autonomousPeriodic() - Method in class org.usfirst.frc.team449.robot.Robot
-
-
Runs every tick in autonomous.
-
-
autoshift(double, double, double, Consumer<Integer>) - Method in class org.usfirst.frc.team449.robot.components.AutoshiftComponent
-
-
Determine if the subsystem should shift, and if yes, do the shifting.
-
-
autoshiftComponent - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXShiftingDefaultDrive
-
-
The helper object for autoshifting.
-
-
AutoshiftComponent - Class in org.usfirst.frc.team449.robot.components
-
-
A component class for autoshifting.
-
-
AutoshiftComponent(double, double, BufferTimer, BufferTimer, double, double, double) - Constructor for class org.usfirst.frc.team449.robot.components.AutoshiftComponent
-
-
Default constructor
-
-
- - - -

B

-
-
base - Variable in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleExponential
-
-
The base that is raised to the power of the joystick input.
-
-
BinaryMotorSimple - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor
-
-
A simple example of a binary motor subsystem.
-
-
BinaryMotorSimple(SimpleMotor, Double) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.BinaryMotorSimple
-
-
Default constructor.
-
-
BufferTimer - Class in org.usfirst.frc.team449.robot.other
-
-
A timer that checks if condition has been true for the past n seconds/milliseconds.
-
-
BufferTimer(double) - Constructor for class org.usfirst.frc.team449.robot.other.BufferTimer
-
-
Constructor for a time given in seconds.
-
-
BufferTimer(long) - Constructor for class org.usfirst.frc.team449.robot.other.BufferTimer
-
-
Constructor for a time given in milliseconds.
-
-
- - - -

C

-
-
cachedOutput - Variable in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
The cached value of the output.
-
-
cachedValue - Variable in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum
-
-
The cached output.
-
-
calcValues() - Method in class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOrientedPosCos
-
-
Calculate the theta and vel values, can be called multiple times per tic but will only execute logic once.
-
-
CameraNetwork - Class in org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera
-
-
Subsystem to initialize cameras and put video on SmartDashboard.
-
-
CameraNetwork(int, String, List<MappedUsbCamera>) - Constructor for class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork
-
-
Default constructor
-
-
canTalon - Variable in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
The CTRE CAN Talon SRX that this class is a wrapper on
-
-
ChangeCam - Class in org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands
-
-
Toggles camera on button press.
-
-
ChangeCam(CameraNetwork) - Constructor for class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands.ChangeCam
-
-
Default constructor.
-
-
ClimberCurrentLimited - Class in org.usfirst.frc.team449.robot.subsystem.complex.climber
-
-
A climber subsystem that uses power monitoring to stop climbing.
-
-
ClimberCurrentLimited(FPSTalon, double, SimpleMotor, BufferTimer) - Constructor for class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
-
Default constructor
-
-
clipTo180(double) - Static method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
Clip a degree number to the NavX's -180 to 180 system.
-
-
Clock - Class in org.usfirst.frc.team449.robot.other
-
-
A wrapper on System.currentTimeMillis that caches the time, to avoid calling the currentTimeMillis method.
-
-
CommandButton - Class in org.usfirst.frc.team449.robot.oi.buttons
-
-
A button mapped to a command.
-
-
CommandButton(MappedButton, YamlCommand, CommandButton.Action) - Constructor for class org.usfirst.frc.team449.robot.oi.buttons.CommandButton
-
-
Default constructor.
-
-
commandingStraight() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
Whether the driver is trying to drive straight.
-
-
commandingStraight() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach
-
-
Whether the driver is trying to drive straight.
-
-
commandingStraight() - Method in interface org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional
-
-
Whether the driver is trying to drive straight.
-
-
commandingStraight() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITankSimple
-
-
Whether the driver is trying to drive straight.
-
-
CommandSequence - Class in org.usfirst.frc.team449.robot.commands.general
-
-
A command group that takes a list of commands and runs them in the order given.
-
-
CommandSequence(List<YamlCommand>) - Constructor for class org.usfirst.frc.team449.robot.commands.general.CommandSequence
-
-
Default constructor
-
-
currentGear - Variable in class org.usfirst.frc.team449.robot.components.ShiftComponent
-
-
The gear this component is currently in.
-
-
currentGearSettings - Variable in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
The settings currently being used by this Talon.
-
-
currentTimeMillis() - Static method in class org.usfirst.frc.team449.robot.other.Clock
-
 
-
- - - -

D

-
-
deadband - Variable in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleDeadbanded
-
-
The value below which the joystick input is considered 0.
-
-
deadbandOutput(double) - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand
-
-
Deadband the output of the PID loop.
-
-
DetermineNominalVoltage<T extends YamlSubsystem & DriveUnidirectional> - Class in org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
-
Run the motors until they move, slowly increasing the voltage up from 0.
-
-
DetermineNominalVoltage(T, double) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineNominalVoltage
-
-
Default constructor
-
-
DetermineVelVsVoltage<T extends YamlSubsystem & DriveUnidirectional> - Class in org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
-
A command to run the robot at a range of voltages and record the velocity.
-
-
DetermineVelVsVoltage(T, double, int, double[]) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineVelVsVoltage
-
-
Default constructor.
-
-
disable() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Disable the motors.
-
-
disable() - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor
-
-
Disables the motor, if applicable.
-
-
disable() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Disables the motor, if applicable.
-
-
disable() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.SimpleMotorCluster
-
-
Disables the motor, if applicable.
-
-
disable() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP
-
-
Disable the motors.
-
-
disabledInit() - Method in class org.usfirst.frc.team449.robot.Robot
-
-
Run when we disable.
-
-
disabledPeriodic() - Method in class org.usfirst.frc.team449.robot.Robot
-
-
Run every tic while disabled
-
-
dPadButton - Class in org.usfirst.frc.team449.robot.oi.buttons
-
-
A Button triggered by pushing the D-pad to a specific angle.
-
-
dPadButton(MappedJoystick, int) - Constructor for class org.usfirst.frc.team449.robot.oi.buttons.dPadButton
-
-
Explicit argument constructor.
-
-
DriveAtSpeed<T extends YamlSubsystem & DriveUnidirectional> - Class in org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
-
Go at a certain velocity for a set number of seconds
-
-
DriveAtSpeed(T, double, double) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveAtSpeed
-
-
Default constructor
-
-
DriveShiftable - Interface in org.usfirst.frc.team449.robot.drive.shifting
-
-
A drive that has a high gear and a low gear and can switch between them.
-
-
DriveStraight<T extends YamlSubsystem & DriveUnidirectional> - Class in org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
-
Drives straight when using a tank drive.
-
-
DriveStraight(T, OITank, boolean) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveStraight
-
-
Drive straight without NavX stabilization.
-
-
DriveSubsystem - Interface in org.usfirst.frc.team449.robot.drive
-
-
Any locomotion device for the robot.
-
-
DriveTalonCluster - Class in org.usfirst.frc.team449.robot.drive.unidirectional
-
-
A drive with a cluster of any number of CANTalonSRX controlled motors on each side.
-
-
DriveTalonCluster(FPSTalon, FPSTalon, MappedAHRS, Double) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Default constructor.
-
-
DriveTalonClusterShiftable - Class in org.usfirst.frc.team449.robot.drive.unidirectional
-
-
A drive with a cluster of any number of CANTalonSRX controlled motors on each side and a high and low gear.
-
-
DriveTalonClusterShiftable(FPSTalon, FPSTalon, MappedAHRS, Double, ShiftComponent, boolean) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonClusterShiftable
-
-
Default constructor.
-
-
DriveUnidirectional - Interface in org.usfirst.frc.team449.robot.drive.unidirectional
-
-
A drive with a left side and a right side.
-
-
DriveUnidirectionalSimple - Class in org.usfirst.frc.team449.robot.drive.unidirectional
-
-
A generic example of a subsystem.
-
-
DriveUnidirectionalSimple(SimpleMotor, SimpleMotor) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Default constructor
-
-
- - - -

E

-
-
enable() - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor
-
-
Enables the motor, if applicable.
-
-
enable() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Enables the motor, if applicable.
-
-
enable() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedVictor
-
-
Enables the motor, if applicable.
-
-
enable() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.SimpleMotorCluster
-
-
Enables the motor, if applicable.
-
-
EnableMotors - Class in org.usfirst.frc.team449.robot.drive.commands
-
-
Enables the motors of the given drive subsystem.
-
-
EnableMotors(DriveSubsystem) - Constructor for class org.usfirst.frc.team449.robot.drive.commands.EnableMotors
-
-
Default constructor
-
-
enableMotors() - Method in interface org.usfirst.frc.team449.robot.drive.DriveSubsystem
-
-
If this drive uses motors that can be disabled, enable them.
-
-
enableMotors() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
If this drive uses motors that can be disabled, enable them.
-
-
enableMotors() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
If this drive uses motors that can be disabled, enable them.
-
-
encoderToFeet(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Convert from native units read by an encoder to feet moved.
-
-
encoderToFPS(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Converts the velocity read by the talon's getVelocity() method to the FPS of the output shaft.
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.general.RunRunnables
-
-
Log on exit.
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommandShifting
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXDriveStraight
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
Log when the command ends.
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngleRelative
-
-
Log when the command ends.
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXShiftingDefaultDrive
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.RunMotorWhileConditonMet
-
-
Stop the motor and log that the command has ended.
-
-
end() - Method in class org.usfirst.frc.team449.robot.drive.commands.EnableMotors
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.drive.commands.ResetPosition
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.OverrideAutoShift
-
-
Log when this command ends.
-
-
end() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.ToggleOverrideAutoShift
-
-
Log when this command ends.
-
-
end() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineNominalVoltage
-
-
Stop the drive and log when the command ends.
-
-
end() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineVelVsVoltage
-
-
Do nothing, no logging because we want to be able to use R's subset method to find the max speeds.
-
-
end() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveAtSpeed
-
-
Stop the drive when the command ends.
-
-
end() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.VoltageRamp
-
-
Log and stop on end.
-
-
end() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.ShiftGears
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToGear
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToHighGear
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToLowGear
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.OverrideNavX
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.ToggleOverrideNavX
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.ToggleMotor
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOffWithRequires
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOn
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.ToggleIntaking
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.LoadProfile
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile
-
-
Hold position and log on exit.
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.LoadProfileTwoSides
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidForward
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidOff
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.ToggleSolenoid
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands.ChangeCam
-
-
Log when this command ends
-
-
end() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands.StartCompressor
-
-
Log when this command ends
-
-
execute() - Method in class org.usfirst.frc.team449.robot.commands.general.RunRunnables
-
-
Run all the runnables in the order they were given.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
Set PID setpoint to processed controller setpoint.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommandShifting
-
-
Set PID setpoint to processed controller setpoint and autoshift.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
Decide whether or not we should be in free drive or straight drive.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXShiftingDefaultDrive
-
-
Autoshift and decide whether or not we should be in free drive or straight drive
-
-
execute() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.RunMotorWhileConditonMet
-
-
Run the motor
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.commands.EnableMotors
-
-
Do the state change.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.commands.ResetPosition
-
-
Do the state change.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.OverrideAutoShift
-
-
Override autoshifting.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.ToggleOverrideAutoShift
-
-
Toggle overriding autoshifting.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineNominalVoltage
-
-
Send output to motors
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineVelVsVoltage
-
-
Update the max speed for this trial and check if this trial is finished.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveAtSpeed
-
-
Send output to motors and log data
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveStraight
-
-
Give output to the motors based on the joystick input.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.SimpleUnidirectionalDrive
-
-
Give output to the motors based on the stick inputs.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.VoltageRamp
-
-
Update the output based on how long it's been since execute() was last run.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.ShiftGears
-
-
Switch gears
-
-
execute() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToGear
-
-
Switch to the specified gear
-
-
execute() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToHighGear
-
-
Switch to high gear
-
-
execute() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToLowGear
-
-
Switch to low gear
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.OverrideNavX
-
-
Set whether or not we're overriding the AHRS
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.ToggleOverrideNavX
-
-
Toggle whether or not we're overriding the AHRS
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.ToggleMotor
-
-
Toggle the motor state.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff
-
-
Turn the motor off.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOn
-
-
Turn the motor on.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel
-
-
Turn the feeder off and the flywheel on.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff
-
-
Turn off the flywheel and feeder.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn
-
-
Turn on the flywheel and feeder.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode
-
-
Set the intake to the given mode.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.ToggleIntaking
-
-
Set the subsystem to the specified mode if it's off, and set it to off otherwise.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.LoadProfile
-
-
Load the profile.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile
-
-
If the subsystem is ready to start running the profile and it's not running yet, start running it.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.LoadProfileTwoSides
-
-
Load the profiles.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidForward
-
-
Extend the piston.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidOff
-
-
Extend the piston.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse
-
-
Retract the piston.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.ToggleSolenoid
-
-
Toggle the state of the piston.
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands.ChangeCam
-
-
Switch the MjpegServer to use the next camera in the list
-
-
execute() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands.StartCompressor
-
-
Start the compressor.
-
-
- - - -

F

-
-
feetToEncoder(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Convert a distance from feet to encoder reading in native units.
-
-
FieldOrientedUnidirectionalDriveCommand<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS> - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
Unidirectional drive with field-oriented control
-
-
FieldOrientedUnidirectionalDriveCommand(double, int, double, Double, double, boolean, double, double, double, T, OIFieldOriented, List<FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint>) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
Default constructor
-
-
FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
A data-holding class representing an angular setpoint to "snap" the controller output to.
-
-
FieldOrientedUnidirectionalDriveCommandShifting<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS & DriveShiftable> - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
Unidirectional drive with field-oriented control and autoshifting.
-
-
FieldOrientedUnidirectionalDriveCommandShifting(double, int, double, Double, double, boolean, double, double, double, T, OIFieldOriented, List<FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint>, AutoshiftComponent, Double) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommandShifting
-
-
Default constructor
-
-
FireShooter - Class in org.usfirst.frc.team449.robot.commands.multiSubsystem
-
-
Command group for firing the flywheel.
-
-
FireShooter(SubsystemFlywheel, SubsystemIntake) - Constructor for class org.usfirst.frc.team449.robot.commands.multiSubsystem.FireShooter
-
-
Constructs a FireShooter command group
-
-
FlywheelSimple - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel
-
-
A simple flywheel subsystem.
-
-
FlywheelSimple(SimpleMotor, SimpleMotor, double, Double, long) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
-
Default constructor
-
-
FPSTalon - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
Component wrapper on the CTRE CANTalon, with unit conversions to/from FPS built in.
-
-
FPSTalon(int, boolean, boolean, boolean, Boolean, Boolean, Double, Double, Double, Double, Integer, double, CANTalon.FeedbackDevice, Integer, boolean, List<FPSTalon.PerGearSettings>, Shiftable.gear, Integer, Integer, Double, Map<CANTalon.StatusFrameRate, Integer>, Integer, List<FPSTalon.SlaveTalon>) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Default constructor.
-
-
FPSTalon.PerGearSettings - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
An object representing the CANTalon settings that are different for each gear.
-
-
FPSTalon.SlaveTalon - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
An object representing a slave CANTalon for use in the map.
-
-
FPSToEncoder(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Converts from the velocity of the output shaft to what the talon's getVelocity() method would read at that - velocity.
-
-
fullStop() - Method in interface org.usfirst.frc.team449.robot.drive.DriveSubsystem
-
-
Completely stop the robot by setting the voltage to each side to be 0.
-
-
fullStop() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Completely stop the robot by setting the voltage to each side to be 0.
-
-
fullStop() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Completely stop the robot by setting the voltage to each side to be 0.
-
-
- - - -

G

-
-
get() - Method in class org.usfirst.frc.team449.robot.oi.buttons.dPadButton
-
-
Get whether this button is pressed
-
-
get() - Method in class org.usfirst.frc.team449.robot.oi.buttons.SimpleButton
-
-
Get whether the button is pressed.
-
-
get() - Method in class org.usfirst.frc.team449.robot.oi.buttons.TriggerButton
-
-
Get whether this button is pressed.
-
-
get(boolean) - Method in class org.usfirst.frc.team449.robot.other.BufferTimer
-
-
Get whether the condition has been true for at least the specified amount of time.
-
-
get(double) - Method in class org.usfirst.frc.team449.robot.other.Polynomial
-
-
Get the value of the polynomial given x.
-
-
get9AxisHeading() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Uses the gyro axes, magnetometer, and compass to get the most accurate possible yaw value for the robot.
-
-
getAllianceSwitch() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getAngularDisplacement() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the robot's angular displacement since being turned on.
-
-
getAngularDisplacement() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Get the current total angular displacement.
-
-
getAngularDisplacement() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
-
Get the robot's angular displacement since being turned on.
-
-
getAngularDisplacementCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the robot's cached angular displacement since being turned on.
-
-
getAngularDisplacementCached() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
-
Get the robot's cached angular displacement since being turned on.
-
-
getAngularVel() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the robot's angular velocity.
-
-
getAngularVel() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
-
Get the robot's angular velocity.
-
-
getAngularVelCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the robot's cached angular velocity.
-
-
getAngularVelCached() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
-
Get the robot's cached angular velocity.
-
-
getAngularVelocity() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Get the current angular yaw velocity.
-
-
getAutoStartupCommand() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getBoilerAuto() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getButtons() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getCamera() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getCameras() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork
-
 
-
getCamNum() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork
-
 
-
getCenterAuto() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getClimber() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getClosedLoopRampRate() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getCommand() - Method in interface org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand
-
-
Get the command object this object is.
-
-
getCommand() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper
-
-
Return the Command this is a wrapper on.
-
-
getCommand() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper
-
-
Return the Command this is a wrapper on.
-
-
getCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand
-
-
Get the command object this object is.
-
-
getCurrentGear() - Method in class org.usfirst.frc.team449.robot.components.ShiftComponent
-
 
-
getData() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the data this subsystem logs every loop.
-
-
getData() - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable
-
-
Get the data this subsystem logs every loop.
-
-
getData() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeWithDPad
-
-
Get the data this subsystem logs every loop.
-
-
getData() - Method in class org.usfirst.frc.team449.robot.other.MotionProfileData
-
 
-
getData() - Method in class org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator
-
-
Get the data this subsystem logs every loop.
-
-
getData() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
-
Get the data this subsystem logs every loop.
-
-
getData() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Get the data this subsystem logs every loop.
-
-
getData() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics
-
-
Get the data this subsystem logs every loop.
-
-
getDefaultDriveCommand() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getDoMP() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getDrive() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getDropGearSwitch() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getError() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Get the current closed-loop velocity error in FPS.
-
-
getFeederAuto() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getFlywheelState() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
 
-
getFlywheelState() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
 
-
getFlywheelState() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel
-
 
-
getFrictionCompFPSFwd() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getFrictionCompFPSRev() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getFwd() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
Get the velocity input.
-
-
getFwd() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeSimple
-
 
-
getFwd() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeWithDPad
-
-
The output of the throttle controlling linear velocity, smoothed and adjusted according to what type of joystick - it is.
-
-
getFwdCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
Get the cached velocity input.
-
-
getFwdNominalOutputVoltage() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getFwdPeakOutputVoltage() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getGear() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonClusterShiftable
-
 
-
getGear() - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable
-
 
-
getGear() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
 
-
getGear() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getGearHandler() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getHeader() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the headers for the data this subsystem logs every loop.
-
-
getHeader() - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable
-
-
Get the headers for the data this subsystem logs every loop.
-
-
getHeader() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeWithDPad
-
-
Get the headers for the data this subsystem logs every loop.
-
-
getHeader() - Method in class org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator
-
-
Get the headers for the data this subsystem logs every loop.
-
-
getHeader() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
-
Get the headers for the data this subsystem logs every loop.
-
-
getHeader() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Get the headers for the data this subsystem logs every loop.
-
-
getHeader() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics
-
-
Get the headers for the data this subsystem logs every loop.
-
-
getHeading() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the robot's heading using the AHRS
-
-
getHeading() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Get the current yaw value.
-
-
getHeading() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
-
Get the robot's heading.
-
-
getHeadingCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the robot's cached heading.
-
-
getHeadingCached() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
-
Get the robot's cached heading.
-
-
getIntake() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getKaOverKvFwd() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getKaOverKvRev() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getkD() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getkI() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getkP() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getLeftOutput() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
The output to be given to the left side of the drive.
-
-
getLeftOutput() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach
-
-
The output to be given to the left side of the drive.
-
-
getLeftOutput() - Method in interface org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional
-
-
The output to be given to the left side of the drive.
-
-
getLeftOutput() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
The output to be given to the left side of the drive.
-
-
getLeftOutputCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
The cached output to be given to the left side of the drive.
-
-
getLeftOutputCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach
-
-
The cached output to be given to the left side of the drive.
-
-
getLeftOutputCached() - Method in interface org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional
-
-
The cached output to be given to the left side of the drive.
-
-
getLeftOutputCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
The cached output to be given to the left side of the drive.
-
-
getLeftPos() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the position of the left side of the drive.
-
-
getLeftPos() - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Get the position of the left side of the drive.
-
-
getLeftPos() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Get the position of the left side of the drive.
-
-
getLeftPosCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the cached position of the left side of the drive.
-
-
getLeftPosCached() - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Get the cached position of the left side of the drive.
-
-
getLeftPosCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Get the cached position of the left side of the drive.
-
-
getLeftProfiles() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getLeftTestProfile() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getLeftThrottle() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
Get the throttle for the left side of the drive.
-
-
getLeftThrottle() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITankSimple
-
-
Get the throttle for the left side of the drive.
-
-
getLeftThrottleCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
Get the cached throttle for the left side of the drive.
-
-
getLeftVel() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the velocity of the left side of the drive.
-
-
getLeftVel() - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Get the velocity of the left side of the drive.
-
-
getLeftVel() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Get the velocity of the left side of the drive.
-
-
getLeftVelCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the cached velocity of the left side of the drive.
-
-
getLeftVelCached() - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Get the cached velocity of the left side of the drive.
-
-
getLeftVelCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Get the cached velocity of the left side of the drive.
-
-
getLocationDial() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getLogger() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getLoopTimeSecs() - Method in class org.usfirst.frc.team449.robot.other.Logger
-
 
-
getLowerBound() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint
-
 
-
getMaxSpeed() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getMaxSpeedMPFwd() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getMaxSpeedMPRev() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getMode() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.intake.IntakeFixedAndActuated
-
 
-
getMode() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.IntakeSimple
-
 
-
getMode() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake
-
 
-
getMotionProfileDFwd() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getMotionProfileDRev() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getMotionProfileIFwd() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getMotionProfileIRev() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getMotionProfilePFwd() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getMotionProfilePRev() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getName() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the name of this object.
-
-
getName() - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable
-
-
Get the name of this object.
-
-
getName() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeWithDPad
-
-
Get the name of this object.
-
-
getName() - Method in class org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator
-
-
Get the name of this object.
-
-
getName() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
-
Get the name of this object.
-
-
getName() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Get the name of this object.
-
-
getName() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics
-
-
Get the name of this object.
-
-
getNonMPAutoCommand() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getNumVal() - Method in enum org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable.gear
-
 
-
getOI() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getOutputCurrent() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Get the current the Talon is currently drawing from the PDP.
-
-
getOutputVoltage() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Get the voltage the Talon is currently drawing from the PDP.
-
-
getOverrideAutoshift() - Method in interface org.usfirst.frc.team449.robot.drive.shifting.DriveShiftable
-
 
-
getOverrideAutoshift() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonClusterShiftable
-
 
-
getOverrideGyro() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
 
-
getOverrideGyro() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
 
-
getPIDSourceType() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
Get which parameter of the device you are using as a process control variable.
-
-
getPneumatics() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getPort() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.SlaveTalon
-
 
-
getPos() - Method in class org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator
-
-
Get the current absolute position of the robot
-
-
getPositionFeet() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
 
-
getPowerToCoefficientMap() - Method in class org.usfirst.frc.team449.robot.other.Polynomial
-
 
-
getPressure() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.PressureSensor
-
-
Returns the pressure measured by the sensor.
-
-
getRevNominalOutputVoltage() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getRevPeakOutputVoltage() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
 
-
getRightOutput() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
The output to be given to the right side of the drive.
-
-
getRightOutput() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach
-
-
The output to be given to the right side of the drive.
-
-
getRightOutput() - Method in interface org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional
-
-
The output to be given to the right side of the drive.
-
-
getRightOutput() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
The output to be given to the right side of the drive.
-
-
getRightOutputCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
The cached output to be given to the right side of the drive.
-
-
getRightOutputCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach
-
-
The cached output to be given to the right side of the drive.
-
-
getRightOutputCached() - Method in interface org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional
-
-
The cached output to be given to the right side of the drive.
-
-
getRightOutputCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
The cached output to be given to the right side of the drive.
-
-
getRightPos() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the position of the right side of the drive.
-
-
getRightPos() - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Get the position of the right side of the drive.
-
-
getRightPos() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Get the position of the right side of the drive.
-
-
getRightPosCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the cached position of the right side of the drive.
-
-
getRightPosCached() - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Get the cached position of the right side of the drive.
-
-
getRightPosCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Get the cached position of the right side of the drive.
-
-
getRightProfiles() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getRightTestProfile() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getRightThrottle() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
Get the throttle for the right side of the drive.
-
-
getRightThrottle() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITankSimple
-
-
Get the throttle for the right side of the drive.
-
-
getRightThrottleCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
Get the cached throttle for the right side of the drive.
-
-
getRightVel() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the velocity of the right side of the drive.
-
-
getRightVel() - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Get the velocity of the right side of the drive.
-
-
getRightVel() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Get the velocity of the right side of the drive.
-
-
getRightVelCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get the cached velocity of the right side of the drive.
-
-
getRightVelCached() - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Get the cached velocity of the right side of the drive.
-
-
getRightVelCached() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Get the cached velocity of the right side of the drive.
-
-
getRIOduinoPort() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getRot() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
Get the rotational input.
-
-
getRot() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeSimple
-
 
-
getRot() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeWithDPad
-
-
Get the output of the D-pad or turning joystick, whichever is in use.
-
-
getRotCached() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
Get the cached rotational input.
-
-
getServer() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork
-
 
-
getSetpoint() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Get the current velocity setpoint of the Talon in FPS.
-
-
getShooter() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getSnapTo() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint
-
 
-
getSolenoidPosition() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.intake.IntakeFixedAndActuated
-
 
-
getSolenoidPosition() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SolenoidSimple
-
 
-
getSolenoidPosition() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid
-
 
-
getSpinUpTimeMillis() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
 
-
getSpinUpTimeMillis() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
 
-
getSpinUpTimeMillis() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel
-
 
-
getStartupCommand() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getStatus() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput
-
-
Get the status of each pin specified in the map, in the order they were specified.
-
-
getTeleopStartupCommand() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getTestMP() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getTheta() - Method in class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented
-
-
Get the absolute angle for the robot to move towards.
-
-
getTheta() - Method in class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOrientedPosCos
-
-
Get the absolute angle for the robot to move towards.
-
-
getThetaCached() - Method in class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented
-
-
Get the cached absolute angle for the robot to move towards.
-
-
getUpdater() - Method in class org.usfirst.frc.team449.robot.RobotMap2017
-
 
-
getUpperBound() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint
-
 
-
getValue() - Method in interface org.usfirst.frc.team449.robot.oi.throttles.Throttle
-
-
Get the output of the throttle this object represents.
-
-
getValue() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
Gets the raw value from the stick and inverts it if necessary.
-
-
getValue() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleDeadbanded
-
-
Gets the value from the joystick and deadbands it.
-
-
getValue() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleExponential
-
-
Raises the base to the value of the deadbanded joystick output, adjusting for sign.
-
-
getValue() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottlePolynomial
-
-
Passes the deadbanded joystick output to the polynomial, while preserving sign.
-
-
getValue() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum
-
-
Sums the throttles and returns their output
-
-
getValueCached() - Method in interface org.usfirst.frc.team449.robot.oi.throttles.Throttle
-
-
Get the cached output of the throttle this object represents.
-
-
getValueCached() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
Get the cached output of the throttle this object represents.
-
-
getValueCached() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum
-
-
Get the cached output of the throttle this object represents.
-
-
getVel() - Method in class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented
-
-
Get the velocity for the robot to go at.
-
-
getVel() - Method in class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOrientedPosCos
-
-
Get the velocity for the robot to go at.
-
-
getVelCached() - Method in class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented
-
-
Get the cached velocity for the robot to go at.
-
-
getVelocity() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Get the velocity of the CANTalon in FPS.
-
-
getXAccel() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Get the absolute X acceleration of the robot, relative to the field.
-
-
getYAccel() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Get the absolute Y acceleration of the robot, relative to the field.
-
-
gsToFeetPerSecondSquared(double) - Static method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Convert from gs (acceleration due to gravity) to feet/(second^2).
-
-
- - - -

H

-
-
holdPosition() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Hold the current position.
-
-
holdPosition() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP
-
-
Hold the current position.
-
-
holdPositionMP() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Holds the current position point in MP mode.
-
-
- - - -

I

-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Stuff run on first enable.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Initialize the default command for a subsystem.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
-
Initialize the default command for a subsystem By default subsystems have no default command, but if they do, the - default command is set with this method.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.intake.IntakeFixedAndActuated
-
-
Initialize the default command for a subsystem.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Do nothing
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.BinaryMotorSimple
-
-
Initialize the default command for a subsystem.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
-
Initialize the default command for a subsystem.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.IntakeSimple
-
-
Initialize the default command for a subsystem.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SolenoidSimple
-
-
Initialize the default command for a subsystem.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork
-
-
Initialize the default command for a subsystem.
-
-
initDefaultCommand() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics
-
-
Do nothing.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.commands.general.RunRunnables
-
-
Log on init
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.commands.general.WaitForMillis
-
-
Store the start time.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
Initialize PIDController and variables.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXDriveStraight
-
-
Set the setpoint of the angle PID.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
Set up the start time and setpoint.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngleRelative
-
-
Set up the start time and setpoint.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
Initialize PIDController and variables.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.RunMotorWhileConditonMet
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.commands.EnableMotors
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.commands.ResetPosition
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.OverrideAutoShift
-
-
Log on initialization
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.ToggleOverrideAutoShift
-
-
Log on initialization
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineNominalVoltage
-
-
Log initialization
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineVelVsVoltage
-
-
Reset the encoder position and variables.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveAtSpeed
-
-
Set up start time.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveStraight
-
-
Stop the drive for safety reasons.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.SimpleUnidirectionalDrive
-
-
Stop the drive for safety reasons.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.VoltageRamp
-
-
Reset the output
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.ShiftGears
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToGear
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToHighGear
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToLowGear
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.OverrideNavX
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.ToggleOverrideNavX
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.ToggleMotor
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOffWithRequires
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOn
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.ToggleIntaking
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.LoadProfile
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile
-
-
Record the start time.
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.LoadProfileTwoSides
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidForward
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidOff
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.ToggleSolenoid
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands.ChangeCam
-
-
Log when this command is initialized
-
-
initialize() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands.StartCompressor
-
-
Log when this command is initialized
-
-
IntakeFixedAndActuated - Class in org.usfirst.frc.team449.robot.subsystem.complex.intake
-
-
An intake with a piston that actuates it and a fixed and actuated motor.
-
-
IntakeFixedAndActuated(MappedVictor, double, double, MappedVictor, double, MappedDoubleSolenoid) - Constructor for class org.usfirst.frc.team449.robot.subsystem.complex.intake.IntakeFixedAndActuated
-
-
Default constructor.
-
-
IntakeSimple - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.intake
-
-
A simple intake subsystem.
-
-
IntakeSimple(SimpleMotor, Double, Double, Double, Double) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.IntakeSimple
-
-
Default constructor
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.general.RunRunnables
-
-
Log when interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommandShifting
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXDriveStraight
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
Log when the command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngleRelative
-
-
Log when the command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
Stop the motors and log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXShiftingDefaultDrive
-
-
Stop the motors and log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.RunMotorWhileConditonMet
-
-
Stop the motor and log that the command has been interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.commands.EnableMotors
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.commands.ResetPosition
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.OverrideAutoShift
-
-
Log when interrupted
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.ToggleOverrideAutoShift
-
-
Log when interrupted
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineNominalVoltage
-
-
Log and stop the drive when the command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineVelVsVoltage
-
-
Log when interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveAtSpeed
-
-
Log and stop the drive when the command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveStraight
-
-
Log and brake when interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.SimpleUnidirectionalDrive
-
-
Log and brake when interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.VoltageRamp
-
-
Log on interrupt.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.ShiftGears
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToGear
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToHighGear
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToLowGear
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.OverrideNavX
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.ToggleOverrideNavX
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.ToggleMotor
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOffWithRequires
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOn
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.ToggleIntaking
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.LoadProfile
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile
-
-
Disable and log if interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.LoadProfileTwoSides
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidForward
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidOff
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.ToggleSolenoid
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands.ChangeCam
-
-
Log when this command is interrupted.
-
-
interrupted() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands.StartCompressor
-
-
Log when this command is interrupted.
-
-
invertYaw - Variable in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
A multiplier for the yaw angle.
-
-
isConditionTrue() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
 
-
isConditionTrue() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.conditional.SubsystemConditional
-
 
-
isConditionTrueCached() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
 
-
isConditionTrueCached() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.conditional.SubsystemConditional
-
 
-
isFinished() - Method in class org.usfirst.frc.team449.robot.commands.general.RunRunnables
-
 
-
isFinished() - Method in class org.usfirst.frc.team449.robot.commands.general.WaitForMillis
-
-
Finish if the specified amount of time has passed.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
Run constantly because this is a defaultDrive
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXDriveStraight
-
-
Never finishes.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
Exit when the robot reaches the setpoint or enough time has passed.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
Run constantly because this is a defaultDrive
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.RunMotorWhileConditonMet
-
-
Stop when the condition is met.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.commands.EnableMotors
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.commands.ResetPosition
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.OverrideAutoShift
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.shifting.commands.ToggleOverrideAutoShift
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineNominalVoltage
-
-
Exit if the motors are moving.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineVelVsVoltage
-
-
Finish when all trials have been run.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveAtSpeed
-
-
Exit after the command's been running for long enough
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveStraight
-
-
Runs constantly because this is a drive command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.SimpleUnidirectionalDrive
-
-
Run constantly because this is a default drive
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.VoltageRamp
-
-
Exit if the output is greater than the motors can produce.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.ShiftGears
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToGear
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToHighGear
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToLowGear
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.OverrideNavX
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.ToggleOverrideNavX
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.ToggleMotor
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOn
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.ToggleIntaking
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.LoadProfile
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile
-
-
Finish when the profile finishes or the timeout is reached.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.LoadProfileTwoSides
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidForward
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidOff
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.ToggleSolenoid
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands.ChangeCam
-
-
Finish immediately because this is a state-change command.
-
-
isFinished() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands.StartCompressor
-
-
Finish immediately because this is a state-change command.
-
-
isInverted() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.SlaveTalon
-
 
-
isInverted() - Method in class org.usfirst.frc.team449.robot.other.MotionProfileData
-
 
-
isMotorOn() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
 
-
isMotorOn() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.BinaryMotorSimple
-
 
-
isMotorOn() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor
-
 
-
isVelocityOnly() - Method in class org.usfirst.frc.team449.robot.other.MotionProfileData
-
 
-
- - - -

J

-
-
JiggleRobot<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS> - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
Rotates the robot back and forth in order to dislodge any stuck balls.
-
-
JiggleRobot(double, int, double, Double, double, boolean, int, int, int, T) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.JiggleRobot
-
-
Instantiate the CommandGroup
-
-
- - - -

L

-
-
leftMaster - Variable in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Left master Talon
-
-
loadMotionProfile(MotionProfileData) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Loads a profile into the MP buffer.
-
-
loadMotionProfile(MotionProfileData, MotionProfileData) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Loads given profiles into the left and right sides of the drive.
-
-
loadMotionProfile(MotionProfileData) - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP
-
-
Loads a profile into the MP buffer.
-
-
loadMotionProfile(MotionProfileData, MotionProfileData) - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.SubsystemMPTwoSides
-
-
Loads given profiles into the left and right sides of the drive.
-
-
loadProfile(MotionProfileData) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Disables the talon and loads the given profile into the talon.
-
-
LoadProfile - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands
-
-
Loads the given profile into the subsystem, but doesn't run it.
-
-
LoadProfile(SubsystemMP, MotionProfileData) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.LoadProfile
-
-
Default constructor
-
-
LoadProfileTwoSides - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands
-
-
Loads the given profiles into the subsystem, but doesn't run it.
-
-
LoadProfileTwoSides(SubsystemMPTwoSides, MotionProfileData, MotionProfileData) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.LoadProfileTwoSides
-
-
Default constructor
-
-
LoadShooter<T extends SubsystemIntake & SubsystemSolenoid> - Class in org.usfirst.frc.team449.robot.commands.multiSubsystem
-
-
Command group for intaking balls from the ground.
-
-
LoadShooter(SubsystemFlywheel, T) - Constructor for class org.usfirst.frc.team449.robot.commands.multiSubsystem.LoadShooter
-
-
Constructs a LoadShooter command group
-
-
LogEvent - Class in org.usfirst.frc.team449.robot.other
-
-
An logged event with a message, timestamp, and calling class.
-
-
LogEvent(String, Class) - Constructor for class org.usfirst.frc.team449.robot.other.LogEvent
-
-
Default constructor.
-
-
Loggable - Interface in org.usfirst.frc.team449.robot.generalInterfaces.loggable
-
-
An object that logs telemetry data every loop.
-
-
Logger - Class in org.usfirst.frc.team449.robot.other
-
-
A logger that logs telemetry data and individual events.
-
-
Logger(Loggable[], double, String, String) - Constructor for class org.usfirst.frc.team449.robot.other.Logger
-
-
Default constructor.
-
-
LoggingFlywheel - Class in org.usfirst.frc.team449.robot.subsystem.complex.shooter
-
-
A flywheel multiSubsystem with a single flywheel and a single-motor feeder system.
-
-
LoggingFlywheel(FPSTalon, double, SimpleMotor, double, double) - Constructor for class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Default constructor
-
-
- - - -

M

-
-
MappedAHRS - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A Jackson-compatible, invertible wrapper for the NavX.
-
-
MappedAHRS(SPI.Port, Boolean) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Default constructor.
-
-
MappedButton - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A jackson-compatible wrapper on WPILib's Button.
-
-
MappedButton() - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.MappedButton
-
 
-
MappedDigitalInput - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A series of roboRIO digital input pins.
-
-
MappedDigitalInput(int[]) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput
-
-
Construct a MappedDigitalInput.
-
-
MappedDoubleSolenoid - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A Jackson-compatible wrapper on the DoubleSolenoid.
-
-
MappedDoubleSolenoid(int, int, int) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.MappedDoubleSolenoid
-
-
Default constructor.
-
-
MappedJoystick - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A Jackson-compatible wrapper on a Joystick.
-
-
MappedJoystick(int) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick
-
-
Default constructor
-
-
MappedRunnable - Interface in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A jackson-compatible wrapper on Java's Runnable.
-
-
MappedUsbCamera - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A Jackson-compatible wrapper on the UsbCamera.
-
-
MappedUsbCamera(String, int, int, int, int) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.MappedUsbCamera
-
-
Default constructor
-
-
MappedVictor - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A wrapper for a VictorSP allowing it to be easily constructed from a map object.
-
-
MappedVictor(int, boolean) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.MappedVictor
-
-
Json constructor using a port and inversion.
-
-
MotionProfileData - Class in org.usfirst.frc.team449.robot.other
-
-
Data structure containing the array of points for the MP and a method to fill the MP from a csv file
-
-
MotionProfileData(String, boolean, boolean, boolean) - Constructor for class org.usfirst.frc.team449.robot.other.MotionProfileData
-
-
Default constructor
-
-
MPIsFinished() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Whether this talon has finished running a profile.
-
-
- - - -

N

-
-
NavXDriveStraight<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS> - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
Drives straight using the NavX gyro to keep a constant alignment.
-
-
NavXDriveStraight(double, int, double, Double, double, boolean, int, int, int, T, OITank, boolean) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXDriveStraight
-
-
Default constructor.
-
-
NavXTurnToAngle<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS> - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
Turns to a specified angle, relative to the angle the AHRS was at when the robot was turned on.
-
-
NavXTurnToAngle(double, int, double, Double, double, boolean, int, int, int, double, T, double) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
Default constructor.
-
-
NavXTurnToAngleRelative<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS> - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
Turn a certain number of degrees from the current heading.
-
-
NavXTurnToAngleRelative(double, int, double, Double, double, boolean, int, int, int, double, T, double) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngleRelative
-
-
Default constructor.
-
-
- - - -

O

-
-
oi - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
The OI giving the input stick values.
-
-
oi - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
The OI giving the input stick values.
-
-
oi - Variable in class org.usfirst.frc.team449.robot.drive.unidirectional.commands.SimpleUnidirectionalDrive
-
-
The OI used for input.
-
-
OI - Interface in org.usfirst.frc.team449.robot.oi
-
 
-
OIArcade - Class in org.usfirst.frc.team449.robot.oi.unidirectional.arcade
-
-
An arcade-style dual joystick OI.
-
-
OIArcade() - Constructor for class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
 
-
OIArcadeSimple - Class in org.usfirst.frc.team449.robot.oi.unidirectional.arcade
-
-
A simple, two-stick arcade drive OI.
-
-
OIArcadeSimple(Throttle, Throttle) - Constructor for class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeSimple
-
-
Default constructor
-
-
OIArcadeWithDPad - Class in org.usfirst.frc.team449.robot.oi.unidirectional.arcade
-
-
An arcade OI with an option to use the D-pad for turning.
-
-
OIArcadeWithDPad(Throttle, Throttle, double, boolean, MappedJoystick, Polynomial, double) - Constructor for class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeWithDPad
-
-
Default constructor
-
-
OIFieldOriented - Class in org.usfirst.frc.team449.robot.oi.fieldoriented
-
-
An OI that gives an absolute heading, relative to the field, and a velocity.
-
-
OIFieldOriented() - Constructor for class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented
-
 
-
OIFieldOrientedPosCos - Class in org.usfirst.frc.team449.robot.oi.fieldoriented
-
-
A field-oriented OI that always points the robot an angle where cosine is positive, i.e.
-
-
OIFieldOrientedPosCos(Throttle, Throttle, double) - Constructor for class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOrientedPosCos
-
-
Default constructor
-
-
OIOutreach - Class in org.usfirst.frc.team449.robot.oi.unidirectional
-
 
-
OIOutreach(OIUnidirectional, OIUnidirectional, MappedButton) - Constructor for class org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach
-
 
-
OITank - Class in org.usfirst.frc.team449.robot.oi.unidirectional.tank
-
-
A tank-style dual joystick OI.
-
-
OITank() - Constructor for class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
 
-
OITankSimple - Class in org.usfirst.frc.team449.robot.oi.unidirectional.tank
-
-
A simple tank drive, where each joystick controls a side of the robot.
-
-
OITankSimple(Throttle, Throttle, double) - Constructor for class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITankSimple
-
-
Default constructor
-
-
OIUnidirectional - Interface in org.usfirst.frc.team449.robot.oi.unidirectional
-
-
An OI to control a robot with a unidirectional drive that has a left and right side (e.g.
-
-
org.usfirst.frc.team449.robot - package org.usfirst.frc.team449.robot
-
 
-
org.usfirst.frc.team449.robot.commands.autonomous - package org.usfirst.frc.team449.robot.commands.autonomous
-
 
-
org.usfirst.frc.team449.robot.commands.general - package org.usfirst.frc.team449.robot.commands.general
-
 
-
org.usfirst.frc.team449.robot.commands.multiInterface - package org.usfirst.frc.team449.robot.commands.multiInterface
-
 
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive - package org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
 
-
org.usfirst.frc.team449.robot.commands.multiSubsystem - package org.usfirst.frc.team449.robot.commands.multiSubsystem
-
 
-
org.usfirst.frc.team449.robot.components - package org.usfirst.frc.team449.robot.components
-
 
-
org.usfirst.frc.team449.robot.drive - package org.usfirst.frc.team449.robot.drive
-
 
-
org.usfirst.frc.team449.robot.drive.commands - package org.usfirst.frc.team449.robot.drive.commands
-
 
-
org.usfirst.frc.team449.robot.drive.shifting - package org.usfirst.frc.team449.robot.drive.shifting
-
 
-
org.usfirst.frc.team449.robot.drive.shifting.commands - package org.usfirst.frc.team449.robot.drive.shifting.commands
-
 
-
org.usfirst.frc.team449.robot.drive.unidirectional - package org.usfirst.frc.team449.robot.drive.unidirectional
-
 
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands - package org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
 
-
org.usfirst.frc.team449.robot.generalInterfaces.loggable - package org.usfirst.frc.team449.robot.generalInterfaces.loggable
-
 
-
org.usfirst.frc.team449.robot.generalInterfaces.rumbleable - package org.usfirst.frc.team449.robot.generalInterfaces.rumbleable
-
 
-
org.usfirst.frc.team449.robot.generalInterfaces.shiftable - package org.usfirst.frc.team449.robot.generalInterfaces.shiftable
-
 
-
org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands - package org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-
 
-
org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor - package org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor
-
 
-
org.usfirst.frc.team449.robot.generalInterfaces.updatable - package org.usfirst.frc.team449.robot.generalInterfaces.updatable
-
 
-
org.usfirst.frc.team449.robot.jacksonWrappers - package org.usfirst.frc.team449.robot.jacksonWrappers
-
 
-
org.usfirst.frc.team449.robot.oi - package org.usfirst.frc.team449.robot.oi
-
 
-
org.usfirst.frc.team449.robot.oi.buttons - package org.usfirst.frc.team449.robot.oi.buttons
-
 
-
org.usfirst.frc.team449.robot.oi.fieldoriented - package org.usfirst.frc.team449.robot.oi.fieldoriented
-
 
-
org.usfirst.frc.team449.robot.oi.throttles - package org.usfirst.frc.team449.robot.oi.throttles
-
 
-
org.usfirst.frc.team449.robot.oi.unidirectional - package org.usfirst.frc.team449.robot.oi.unidirectional
-
 
-
org.usfirst.frc.team449.robot.oi.unidirectional.arcade - package org.usfirst.frc.team449.robot.oi.unidirectional.arcade
-
 
-
org.usfirst.frc.team449.robot.oi.unidirectional.tank - package org.usfirst.frc.team449.robot.oi.unidirectional.tank
-
 
-
org.usfirst.frc.team449.robot.other - package org.usfirst.frc.team449.robot.other
-
 
-
org.usfirst.frc.team449.robot.subsystem.complex.climber - package org.usfirst.frc.team449.robot.subsystem.complex.climber
-
 
-
org.usfirst.frc.team449.robot.subsystem.complex.intake - package org.usfirst.frc.team449.robot.subsystem.complex.intake
-
 
-
org.usfirst.frc.team449.robot.subsystem.complex.shooter - package org.usfirst.frc.team449.robot.subsystem.complex.shooter
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS - package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands - package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor - package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands - package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.conditional - package org.usfirst.frc.team449.robot.subsystem.interfaces.conditional
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel - package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands - package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.intake - package org.usfirst.frc.team449.robot.subsystem.interfaces.intake
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands - package org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile - package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands - package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem - package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands - package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid - package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid
-
 
-
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands - package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-
 
-
org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera - package org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera
-
 
-
org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands - package org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands
-
 
-
org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics - package org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics
-
 
-
org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands - package org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands
-
 
-
otherShiftables - Variable in class org.usfirst.frc.team449.robot.components.ShiftComponent
-
-
All objects that should be shifted when this component's piston is.
-
-
OverrideAutoShift - Class in org.usfirst.frc.team449.robot.drive.shifting.commands
-
-
Override or unoverride whether we're autoshifting.
-
-
OverrideAutoShift(DriveShiftable, boolean) - Constructor for class org.usfirst.frc.team449.robot.drive.shifting.commands.OverrideAutoShift
-
-
Default constructor
-
-
OverrideNavX - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands
-
-
Set whether or not to override the AHRS.
-
-
OverrideNavX(SubsystemAHRS, boolean) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.OverrideNavX
-
-
Default constructor.
-
-
- - - -

P

-
-
ParallelCommandGroup - Class in org.usfirst.frc.team449.robot.commands.general
-
-
A command group for running many commands in parallel.
-
-
ParallelCommandGroup(Set<YamlCommand>) - Constructor for class org.usfirst.frc.team449.robot.commands.general.ParallelCommandGroup
-
-
Default constructor
-
-
PerGearSettings(int, Shiftable.gear, Double, Double, Double, Double, Double, Double, double, double, double, double, double, double, Double, Double, Double, Double, Double, Double, double, Double, Double) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
-
Default constructor.
-
-
PerGearSettings() - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
-
-
Empty constructor that uses all default options.
-
-
PIDAngleCommand - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands
-
-
A command that uses a AHRS to turn to a certain angle.
-
-
PIDAngleCommand(double, int, double, Double, double, boolean, SubsystemAHRS, double, double, double) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand
-
-
Default constructor.
-
-
PIDBackAndForth<T extends YamlSubsystem & DriveUnidirectional> - Class in org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
-
Drive back and forth to tune PID.
-
-
PIDBackAndForth(T, double, double) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.commands.PIDBackAndForth
-
-
Instantiate the CommandGroup
-
-
pidGet() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
Get the result to use in PIDController.
-
-
PIDTest<T extends YamlSubsystem & DriveUnidirectional> - Class in org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
-
Drive forward at constant speed then stop to tune PID.
-
-
PIDTest(T, double, double) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.commands.PIDTest
-
-
Default constructor
-
-
Pneumatics - Class in org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics
-
-
A subsystem representing the pneumatics control system (e.g.
-
-
Pneumatics(int, PressureSensor) - Constructor for class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics
-
-
Default constructor
-
-
polynomial - Variable in class org.usfirst.frc.team449.robot.oi.throttles.ThrottlePolynomial
-
-
The polynomially that scales the throttle.
-
-
Polynomial - Class in org.usfirst.frc.team449.robot.other
-
-
A polynomial of a single variable.
-
-
Polynomial(Map<Double, Double>, Double) - Constructor for class org.usfirst.frc.team449.robot.other.Polynomial
-
-
Default constructor.
-
-
PressureSensor - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
Wrapper for an AnalogInput pressure sensor that returns a voltage linearly proportional to pressure.
-
-
PressureSensor(int, int, int) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.PressureSensor
-
-
Default constructor.
-
-
processPIDOutput(double) - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand
-
-
Process the output of the PID loop to account for minimum output and inversion.
-
-
profileFinished() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get whether this subsystem has finished running the profile loaded in it.
-
-
profileFinished() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP
-
-
Get whether this subsystem has finished running the profile loaded in it.
-
-
- - - -

R

-
-
RackShooter<T extends SubsystemIntake & SubsystemSolenoid> - Class in org.usfirst.frc.team449.robot.commands.multiSubsystem
-
-
Command group for preparing the flywheel to fire.
-
-
RackShooter(SubsystemFlywheel, T) - Constructor for class org.usfirst.frc.team449.robot.commands.multiSubsystem.RackShooter
-
-
Constructs a RackShooter command group
-
-
readyForMP() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Whether this talon is ready to start running a profile.
-
-
readyToRunProfile() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Get whether the subsystem is ready to run the loaded profile.
-
-
readyToRunProfile() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP
-
-
Get whether the subsystem is ready to run the loaded profile.
-
-
ResetPosition - Class in org.usfirst.frc.team449.robot.drive.commands
-
-
Resets the positions of the motors of the given drive subsystem.
-
-
ResetPosition(DriveSubsystem) - Constructor for class org.usfirst.frc.team449.robot.drive.commands.ResetPosition
-
-
Default constructor
-
-
resetPosition() - Method in interface org.usfirst.frc.team449.robot.drive.DriveSubsystem
-
-
Reset the position of the drive if it has encoders.
-
-
resetPosition() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Reset the position of the drive if it has encoders.
-
-
resetPosition() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Reset the position of the drive if it has encoders.
-
-
resetPosition() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Resets the position of the Talon to 0.
-
-
resetPosition() - Method in class org.usfirst.frc.team449.robot.other.MotionProfileData
-
 
-
ResetShooter<T extends SubsystemIntake & SubsystemSolenoid> - Class in org.usfirst.frc.team449.robot.commands.multiSubsystem
-
-
Command group to reset everything.
-
-
ResetShooter(SubsystemFlywheel, T) - Constructor for class org.usfirst.frc.team449.robot.commands.multiSubsystem.ResetShooter
-
-
Constructs a ResetShooter command group
-
-
RESOURCES_PATH - Static variable in class org.usfirst.frc.team449.robot.Robot
-
-
The absolute filepath to the resources folder containing the config files.
-
-
returnPIDInput() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand
-
-
Returns the input for the pid loop.
-
-
rightMaster - Variable in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Right master Talon
-
-
Robot - Class in org.usfirst.frc.team449.robot
-
-
The main class of the robot, constructs all the subsystems and initializes default commands.
-
-
Robot() - Constructor for class org.usfirst.frc.team449.robot.Robot
-
 
-
robotInit() - Method in class org.usfirst.frc.team449.robot.Robot
-
-
The method that runs when the robot is turned on.
-
-
RobotMap2017 - Class in org.usfirst.frc.team449.robot
-
-
The Jackson-compatible object representing the entire robot.
-
-
RobotMap2017(List<CommandButton>, OI, Logger, DriveTalonCluster, YamlCommand, MappedRunnable, ClimberCurrentLimited, LoggingFlywheel, CameraNetwork, IntakeFixedAndActuated, Pneumatics, SolenoidSimple, Integer, MappedDigitalInput, MappedDigitalInput, MappedDigitalInput, YamlCommand, YamlCommand, YamlCommand, MotionProfileData, MotionProfileData, Map<String, MotionProfileData>, Map<String, MotionProfileData>, YamlCommand, YamlCommand, YamlCommand, YamlCommand, boolean, Boolean) - Constructor for class org.usfirst.frc.team449.robot.RobotMap2017
-
-
Default constructor.
-
-
rumble(double, double) - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.rumbleable.Rumbleable
-
-
Rumble at a given strength on each side of the device.
-
-
rumble(double, double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick
-
-
Rumble at a given strength on each side of the device.
-
-
Rumbleable - Interface in org.usfirst.frc.team449.robot.generalInterfaces.rumbleable
-
-
An interface for any sort of OI device that can rumble to give feedback to the driver.
-
-
run() - Method in class org.usfirst.frc.team449.robot.components.AHRSRumbleComponent
-
-
Read the NavX jerk data and rumble the joysticks based off of it.
-
-
run() - Method in class org.usfirst.frc.team449.robot.other.Logger
-
-
Print out all logged events to the event log and write all the telemetry data to the telemetry log.
-
-
run() - Method in class org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator
-
-
Use the current gyro and encoder data to calculate how the robot has moved since the last time run was called.
-
-
run() - Method in class org.usfirst.frc.team449.robot.other.Updater
-
-
Update all the updatables.
-
-
RunLoadedProfile<T extends YamlSubsystem & SubsystemMP> - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands
-
-
Runs the command that is currently loaded in the given subsystem.
-
-
RunLoadedProfile(T, double, boolean) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile
-
-
Default constructor.
-
-
RunMotorWhileConditonMet<T extends YamlSubsystem & SubsystemBinaryMotor & SubsystemConditional> - Class in org.usfirst.frc.team449.robot.commands.multiInterface
-
-
Run a BinaryMotor while a condition is true.
-
-
RunMotorWhileConditonMet(T) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.RunMotorWhileConditonMet
-
-
Default constructor
-
-
RunProfile<T extends YamlSubsystem & SubsystemMPTwoSides> - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands
-
-
Loads and runs the given profile into the given subsystem.
-
-
RunProfile(T, MotionProfileData, double) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunProfile
-
-
Default constructor.
-
-
RunProfileTwoSides<T extends YamlSubsystem & SubsystemMPTwoSides> - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands
-
-
Loads and runs the given profiles into the given subsystem.
-
-
RunProfileTwoSides(T, MotionProfileData, MotionProfileData, double) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.RunProfileTwoSides
-
-
Default constructor.
-
-
RunRunnables - Class in org.usfirst.frc.team449.robot.commands.general
-
-
A command that runs any number of Runnable objects every tic.
-
-
RunRunnables(MappedRunnable[]) - Constructor for class org.usfirst.frc.team449.robot.commands.general.RunRunnables
-
-
Default constructor
-
-
- - - -

S

-
-
scaleCoefficientSum(double) - Method in class org.usfirst.frc.team449.robot.other.Polynomial
-
-
Scale each coefficient so they sum to a given number.
-
-
setCamNum(int) - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork
-
 
-
setDefaultCommandManual(Command) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Set the default command.
-
-
setFlywheelState(SubsystemFlywheel.FlywheelState) - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
 
-
setFlywheelState(SubsystemFlywheel.FlywheelState) - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
 
-
setFlywheelState(SubsystemFlywheel.FlywheelState) - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel
-
 
-
setGear(int) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonClusterShiftable
-
-
Shift to a specific gear.
-
-
setGear(int) - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable
-
-
Shift to a specific gear.
-
-
setGear(int) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Shift to a specific gear.
-
-
setGearScaledVelocity(double, int) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Set the velocity scaled to a given gear's max velocity.
-
-
setGearScaledVelocity(double, Shiftable.gear) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Set the velocity scaled to a given gear's max velocity.
-
-
setHeading(double) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Set the robot's heading.
-
-
setHeading(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
-
-
Set the current yaw value.
-
-
setHeading(double) - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
-
Set the robot's heading.
-
-
SetIntakeMode - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands
-
-
Sets the mode of the intake.
-
-
SetIntakeMode(SubsystemIntake, SubsystemIntake.IntakeMode) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode
-
-
Default constructor
-
-
setMode(SubsystemIntake.IntakeMode) - Method in class org.usfirst.frc.team449.robot.subsystem.complex.intake.IntakeFixedAndActuated
-
 
-
setMode(SubsystemIntake.IntakeMode) - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.IntakeSimple
-
 
-
setMode(SubsystemIntake.IntakeMode) - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake
-
 
-
setOutput(double, double) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Set the output of each side of the drive.
-
-
setOutput(double, double) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonClusterShiftable
-
-
Set the output of each side of the drive.
-
-
setOutput(double, double) - Method in interface org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional
-
-
Set the output of each side of the drive.
-
-
setOutput(double, double) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Set the output of each side of the drive.
-
-
setOverrideAutoshift(boolean) - Method in interface org.usfirst.frc.team449.robot.drive.shifting.DriveShiftable
-
 
-
setOverrideAutoshift(boolean) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonClusterShiftable
-
 
-
setOverrideGyro(boolean) - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
 
-
setOverrideGyro(boolean) - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
-
 
-
setPercentVoltage(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Set the motor output voltage to a given percent of available voltage.
-
-
setPIDSourceType(PIDSourceType) - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
Set which parameter of the device you are using as a process control variable.
-
-
setpoint - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
The angle to turn to.
-
-
setSolenoid(DoubleSolenoid.Value) - Method in class org.usfirst.frc.team449.robot.subsystem.complex.intake.IntakeFixedAndActuated
-
 
-
setSolenoid(DoubleSolenoid.Value) - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SolenoidSimple
-
 
-
setSolenoid(DoubleSolenoid.Value) - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid
-
 
-
setStartTime() - Static method in class org.usfirst.frc.team449.robot.other.Clock
-
-
Sets the start time to the current time.
-
-
setVelocity(double) - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor
-
-
Set the velocity for the motor to go at.
-
-
setVelocity(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Set the velocity for the motor to go at.
-
-
setVelocity(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.MappedVictor
-
-
Set the velocity for the motor to go at.
-
-
setVelocity(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.SimpleMotorCluster
-
-
Set the velocity for the motor to go at.
-
-
setVelocityFPS(double) - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Give a velocity closed loop setpoint in FPS.
-
-
Shiftable - Interface in org.usfirst.frc.team449.robot.generalInterfaces.shiftable
-
-
An interface for any object that different settings for different gears
-
-
Shiftable.gear - Enum in org.usfirst.frc.team449.robot.generalInterfaces.shiftable
-
 
-
ShiftComponent - Class in org.usfirst.frc.team449.robot.components
-
-
A component that a subsystem can use to handle shifting gears.
-
-
ShiftComponent(List<Shiftable>, MappedDoubleSolenoid, DoubleSolenoid.Value, Shiftable.gear) - Constructor for class org.usfirst.frc.team449.robot.components.ShiftComponent
-
-
Default constructor.
-
-
ShiftGears - Class in org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-
-
Shifts gears.
-
-
ShiftGears(Shiftable) - Constructor for class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.ShiftGears
-
-
Default constructor
-
-
shiftPiston(int) - Method in class org.usfirst.frc.team449.robot.components.ShiftComponent
-
-
Shifts the piston to the given gear.
-
-
shiftToGear(int) - Method in class org.usfirst.frc.team449.robot.components.ShiftComponent
-
-
Shifts to a given gear.
-
-
shiftToGear(int) - Method in class org.usfirst.frc.team449.robot.components.ShiftWithSensorComponent
-
-
Shifts to a given gear.
-
-
ShiftWithSensorComponent - Class in org.usfirst.frc.team449.robot.components
-
-
A component that a subsystem can use for shifting when the pistons have sensor to detect position.
-
-
ShiftWithSensorComponent(List<Shiftable>, MappedDoubleSolenoid, DoubleSolenoid.Value, Shiftable.gear, MappedDigitalInput, MappedDigitalInput, List<SimpleMotor>, BufferTimer, double) - Constructor for class org.usfirst.frc.team449.robot.components.ShiftWithSensorComponent
-
-
Default constructor.
-
-
SimpleButton - Class in org.usfirst.frc.team449.robot.oi.buttons
-
-
A version of JoystickButton that is a MappedButton.
-
-
SimpleButton(MappedJoystick, int) - Constructor for class org.usfirst.frc.team449.robot.oi.buttons.SimpleButton
-
-
Default constructor.
-
-
SimpleMotor - Interface in org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor
-
 
-
SimpleMotorCluster - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A cluster of simple motors that act as a single simple motor.
-
-
SimpleMotorCluster(List<SimpleMotor>) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.SimpleMotorCluster
-
-
Default constructor
-
-
SimpleUnidirectionalDrive<T extends YamlSubsystem & DriveUnidirectional> - Class in org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
-
Very simple unidirectional drive control.
-
-
SimpleUnidirectionalDrive(T, OIUnidirectional) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.commands.SimpleUnidirectionalDrive
-
-
Default constructor
-
-
SlaveTalon(int, boolean) - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.SlaveTalon
-
-
Default constructor.
-
-
SolenoidForward - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-
-
A command that extends a piston.
-
-
SolenoidForward(SubsystemSolenoid) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidForward
-
-
Default constructor
-
-
SolenoidOff - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-
-
A command that extends a piston.
-
-
SolenoidOff(SubsystemSolenoid) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidOff
-
-
Default constructor
-
-
SolenoidReverse - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-
-
A command that contracts a piston.
-
-
SolenoidReverse(SubsystemSolenoid) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse
-
-
Default constructor
-
-
SolenoidSimple - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid
-
-
A simple SubsystemSolenoid.
-
-
SolenoidSimple(MappedDoubleSolenoid) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SolenoidSimple
-
-
Default constructor
-
-
SpinUpFlywheel - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-
-
Turn on the flywheel but not the feeder in order to give the flywheel time to get up to speed.
-
-
SpinUpFlywheel(SubsystemFlywheel) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel
-
-
Default constructor
-
-
SpinUpThenShoot - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-
-
Spin up the flywheel until it's at the target speed, then start feeding in balls.
-
-
SpinUpThenShoot(SubsystemFlywheel) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpThenShoot
-
-
Default constructor.
-
-
StartCompressor - Class in org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands
-
-
Start up the pneumatic compressor.
-
-
StartCompressor(Pneumatics) - Constructor for class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands.StartCompressor
-
-
Default constructor
-
-
startCompressor() - Method in class org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics
-
-
Start up the compressor in closed loop control mode.
-
-
startRunningLoadedProfile() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Start running the profile that's currently loaded into the MP buffer.
-
-
startRunningLoadedProfile() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP
-
-
Start running the profile that's currently loaded into the MP buffer.
-
-
startRunningMP() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Starts running the loaded motion profile.
-
-
startTime - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
The time this command was initiated
-
-
stick - Variable in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
The stick we're using
-
-
stopMPProcesses() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Stops any MP-related threads currently running.
-
-
stopMPProcesses() - Method in class org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
-
-
Stops all MP-related threads to save on CPU power.
-
-
stopMPProcesses() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP
-
-
Stops any MP-related threads currently running.
-
-
subsystem - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
The drive this command is controlling.
-
-
subsystem - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommandShifting
-
-
The drive to execute this command on.
-
-
subsystem - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXDriveStraight
-
-
The drive subsystem to give output to.
-
-
subsystem - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
The drive subsystem to execute this command on and to get the gyro reading from.
-
-
subsystem - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
The drive this command is controlling.
-
-
subsystem - Variable in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXShiftingDefaultDrive
-
-
The drive to execute this command on.
-
-
subsystem - Variable in class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand
-
-
The subsystem to execute this command on.
-
-
subsystem - Variable in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff
-
-
The subsystem to execute this command on.
-
-
SubsystemAHRS - Interface in org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS
-
-
A subsystem that has a AHRS on it.
-
-
SubsystemBinaryMotor - Interface in org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor
-
-
A subsystem with a motor that only needs to be run at one speed, e.g.
-
-
SubsystemConditional - Interface in org.usfirst.frc.team449.robot.subsystem.interfaces.conditional
-
-
A subsystem with a condition that's sometimes met, e.g.
-
-
SubsystemFlywheel - Interface in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel
-
-
A subsystem with a flywheel and feeder.
-
-
SubsystemFlywheel.FlywheelState - Enum in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel
-
-
An enum for the possible states of the flywheel.
-
-
SubsystemIntake - Interface in org.usfirst.frc.team449.robot.subsystem.interfaces.intake
-
-
A subsystem used for intaking and possibly ejecting game pieces.
-
-
SubsystemIntake.IntakeMode - Enum in org.usfirst.frc.team449.robot.subsystem.interfaces.intake
-
-
An enum for the possible states of the intake.
-
-
SubsystemMP - Interface in org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile
-
-
A subsystem that can have motion profiles run on it.
-
-
SubsystemMPTwoSides - Interface in org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem
-
-
An MP subsystem with two sides that therefore needs two profiles at a time.
-
-
SubsystemSolenoid - Interface in org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid
-
-
A subsystem with a single DoubleSolenoid piston.
-
-
SwitchToGear - Class in org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-
-
Switches to a specified gear.
-
-
SwitchToGear(Shiftable, int, Shiftable.gear) - Constructor for class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToGear
-
-
Default constructor
-
-
SwitchToHighGear - Class in org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-
-
A command that switches to high gear.
-
-
SwitchToHighGear(Shiftable) - Constructor for class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToHighGear
-
-
Default constructor
-
-
SwitchToLowGear - Class in org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-
-
A command that switches to low gear.
-
-
SwitchToLowGear(Shiftable) - Constructor for class org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToLowGear
-
-
Default constructor
-
-
- - - -

T

-
-
teleopInit() - Method in class org.usfirst.frc.team449.robot.Robot
-
-
Run when we first enable in teleop.
-
-
teleopPeriodic() - Method in class org.usfirst.frc.team449.robot.Robot
-
-
Run every tick in teleop.
-
-
testInit() - Method in class org.usfirst.frc.team449.robot.Robot
-
-
Run when we first enable in test mode.
-
-
Throttle - Interface in org.usfirst.frc.team449.robot.oi.throttles
-
-
An object representing an axis of a stick on a joystick.
-
-
ThrottleBasic - Class in org.usfirst.frc.team449.robot.oi.throttles
-
-
A class representing a single axis on a joystick.
-
-
ThrottleBasic(MappedJoystick, int, boolean) - Constructor for class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
Default constructor.
-
-
ThrottleDeadbanded - Class in org.usfirst.frc.team449.robot.oi.throttles
-
-
A throttle with a deadband and smoothing.
-
-
ThrottleDeadbanded(MappedJoystick, int, double, Double, boolean) - Constructor for class org.usfirst.frc.team449.robot.oi.throttles.ThrottleDeadbanded
-
-
A basic constructor.
-
-
ThrottleExponential - Class in org.usfirst.frc.team449.robot.oi.throttles
-
-
An exponentially-scaled throttle.
-
-
ThrottleExponential(MappedJoystick, int, double, Double, boolean, double) - Constructor for class org.usfirst.frc.team449.robot.oi.throttles.ThrottleExponential
-
-
A basic constructor.
-
-
ThrottlePolynomial - Class in org.usfirst.frc.team449.robot.oi.throttles
-
-
A polynomially scaled throttle.
-
-
ThrottlePolynomial(MappedJoystick, int, double, Double, boolean, Polynomial) - Constructor for class org.usfirst.frc.team449.robot.oi.throttles.ThrottlePolynomial
-
-
A basic constructor.
-
-
throttles - Variable in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum
-
-
The throttles to sum.
-
-
ThrottleSum - Class in org.usfirst.frc.team449.robot.oi.throttles
-
-
A Throttle that sums any number of other Throttles.
-
-
ThrottleSum(Throttle[]) - Constructor for class org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum
-
-
Default constructor.
-
-
ToggleIntaking - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands
-
-
Toggles whether the subsystem is off or set to a given mode.
-
-
ToggleIntaking(SubsystemIntake, SubsystemIntake.IntakeMode) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.ToggleIntaking
-
-
Default constructor
-
-
ToggleMotor - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-
-
A command that toggles the state of the motor between off and on.
-
-
ToggleMotor(SubsystemBinaryMotor) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.ToggleMotor
-
-
Default constructor
-
-
ToggleOverrideAutoShift - Class in org.usfirst.frc.team449.robot.drive.shifting.commands
-
-
Override or unoverride whether we're autoshifting.
-
-
ToggleOverrideAutoShift(DriveShiftable) - Constructor for class org.usfirst.frc.team449.robot.drive.shifting.commands.ToggleOverrideAutoShift
-
-
Default constructor
-
-
ToggleOverrideNavX - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands
-
-
Toggle whether or not to override the AHRS.
-
-
ToggleOverrideNavX(SubsystemAHRS) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.ToggleOverrideNavX
-
-
Default constructor.
-
-
ToggleShooting - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-
-
Toggle whether or not the subsystem is firing.
-
-
ToggleShooting(SubsystemFlywheel) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.ToggleShooting
-
-
Default constructor.
-
-
ToggleSolenoid - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-
-
A command that toggles the position of a piston.
-
-
ToggleSolenoid(SubsystemSolenoid) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.ToggleSolenoid
-
-
Default constructor
-
-
toString() - Method in class org.usfirst.frc.team449.robot.other.LogEvent
-
-
Turn this event into a string for logging.
-
-
TriggerButton - Class in org.usfirst.frc.team449.robot.oi.buttons
-
-
A button that gets triggered by a specific throttle being held down at or over a certain amount.
-
-
TriggerButton(Throttle, double) - Constructor for class org.usfirst.frc.team449.robot.oi.buttons.TriggerButton
-
-
Argument-based constructor.
-
-
TurnAllOff - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-
-
Turn off the flywheel and feeder.
-
-
TurnAllOff(SubsystemFlywheel) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff
-
-
Default constructor
-
-
TurnAllOffWithRequires<T extends YamlSubsystem & SubsystemFlywheel> - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-
-
Turn off the flywheel and feeder, using requires() to interrupt any other commands that may be telling them to - continue running.
-
-
TurnAllOffWithRequires(T) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOffWithRequires
-
-
Default constructor
-
-
TurnAllOn - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-
-
Turn on the flywheel and the feeder.
-
-
TurnAllOn(SubsystemFlywheel) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn
-
-
Default constructor
-
-
turnFeederOff() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Stop feeding balls into the multiSubsystem.
-
-
turnFeederOff() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
-
Stop feeding balls into the flywheel.
-
-
turnFeederOff() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel
-
-
Stop feeding balls into the flywheel.
-
-
turnFeederOn() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Start feeding balls into the multiSubsystem.
-
-
turnFeederOn() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
-
Start feeding balls into the flywheel.
-
-
turnFeederOn() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel
-
-
Start feeding balls into the flywheel.
-
-
turnFlywheelOff() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Turn the multiSubsystem off.
-
-
turnFlywheelOff() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
-
Turn the flywheel off.
-
-
turnFlywheelOff() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel
-
-
Turn the flywheel off.
-
-
turnFlywheelOn() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel
-
-
Turn the multiSubsystem on to a map-specified speed.
-
-
turnFlywheelOn() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple
-
-
Turn the flywheel on to a map-specified speed.
-
-
turnFlywheelOn() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel
-
-
Turn the flywheel on to a map-specified speed.
-
-
turnMotorOff() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
-
Turns the motor off.
-
-
turnMotorOff() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.BinaryMotorSimple
-
-
Turns the motor off.
-
-
TurnMotorOff - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-
-
Turns off the motor of the specified subsystem.
-
-
TurnMotorOff(SubsystemBinaryMotor) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff
-
-
Default constructor
-
-
turnMotorOff() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor
-
-
Turns the motor off.
-
-
TurnMotorOffWithRequires<T extends YamlSubsystem & SubsystemBinaryMotor> - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-
-
Turns off the motor of the subsystem, but does so while using requires() to interrupt any other commands currently - controlling the subsystem.
-
-
TurnMotorOffWithRequires(T) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOffWithRequires
-
-
Default constructor
-
-
turnMotorOn() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
-
Turns the motor on, and sets it to a map-specified speed.
-
-
turnMotorOn() - Method in class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.BinaryMotorSimple
-
-
Turns the motor on, and sets it to a map-specified speed.
-
-
TurnMotorOn - Class in org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-
-
Turns on the motor of the specified subsystem.
-
-
TurnMotorOn(SubsystemBinaryMotor) - Constructor for class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOn
-
-
Default constructor
-
-
turnMotorOn() - Method in interface org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor
-
-
Turns the motor on, and sets it to a map-specified speed.
-
-
- - - -

U

-
-
UnidirectionalNavXDefaultDrive<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS> - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
Drive with arcade drive setup, and when the driver isn't turning, use a NavX to stabilize the robot's alignment.
-
-
UnidirectionalNavXDefaultDrive(double, int, double, Double, double, Double, boolean, double, double, double, BufferTimer, T, OIUnidirectional) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
Default constructor
-
-
UnidirectionalNavXShiftingDefaultDrive<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS & DriveShiftable> - Class in org.usfirst.frc.team449.robot.commands.multiInterface.drive
-
-
Drive with arcade drive setup, autoshift, and when the driver isn't turning, use a NavX to stabilize the robot's - alignment.
-
-
UnidirectionalNavXShiftingDefaultDrive(double, int, double, Double, double, Double, boolean, double, double, double, BufferTimer, T, OIUnidirectional, AutoshiftComponent, Double) - Constructor for class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXShiftingDefaultDrive
-
-
Default constructor
-
-
UnidirectionalPoseEstimator<T extends SubsystemAHRS & DriveUnidirectional> - Class in org.usfirst.frc.team449.robot.other
-
-
A Runnable for pose estimation that can take absolute positions.
-
-
UnidirectionalPoseEstimator(T, double, double, double, double) - Constructor for class org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator
-
-
Default constructor.
-
-
Updatable - Interface in org.usfirst.frc.team449.robot.generalInterfaces.updatable
-
-
An interface for any object that caches values.
-
-
update() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Updates all cached values with current ones.
-
-
update() - Method in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple
-
-
Updates all cached values with current ones.
-
-
update() - Method in interface org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable
-
-
Updates all cached values with current ones.
-
-
update() - Method in class org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented
-
-
Updates all cached values with current ones.
-
-
update() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
-
-
Updates all cached values with current ones.
-
-
update() - Method in class org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum
-
-
Updates all cached values with current ones.
-
-
update() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
-
-
Updates all cached values with current ones.
-
-
update() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach
-
-
Updates all cached values with current ones.
-
-
update() - Method in class org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
-
-
Updates all cached values with current ones.
-
-
update() - Method in class org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited
-
-
Updates all cached values with current ones.
-
-
Updater - Class in org.usfirst.frc.team449.robot.other
-
-
A Runnable for updating cached variables.
-
-
Updater(Updatable[]) - Constructor for class org.usfirst.frc.team449.robot.other.Updater
-
-
Default constructor
-
-
updateTime() - Static method in class org.usfirst.frc.team449.robot.other.Clock
-
-
Updates the current time.
-
-
usePIDOutput(double) - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand
-
-
Give the correct output to the motors based on the PID output and velocity input.
-
-
usePIDOutput(double) - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommandShifting
-
-
Give the correct output to the motors based on the PID output and velocity input.
-
-
usePIDOutput(double) - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXDriveStraight
-
-
Give output to the drive based on the out of the PID loop.
-
-
usePIDOutput(double) - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.NavXTurnToAngle
-
-
Give output to the motors based on the output of the PID loop
-
-
usePIDOutput(double) - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXDefaultDrive
-
-
Give the correct output to the motors based on whether we're in free drive or drive straight.
-
-
usePIDOutput(double) - Method in class org.usfirst.frc.team449.robot.commands.multiInterface.drive.UnidirectionalNavXShiftingDefaultDrive
-
-
Give the correct output to the motors based on whether we're in free drive or drive straight.
-
-
- - - -

V

-
-
valueOf(String) - Static method in enum org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable.gear
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel.FlywheelState
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake.IntakeMode
-
-
Returns the enum constant of this type with the specified name.
-
-
values() - Static method in enum org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable.gear
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel.FlywheelState
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake.IntakeMode
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
VEL_SCALE - Variable in class org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster
-
-
Joystick scaling constant.
-
-
VoltageRamp - Class in org.usfirst.frc.team449.robot.drive.unidirectional.commands
-
-
A command to ramp up the motors to full power at a given voltage rate.
-
-
VoltageRamp(DriveUnidirectional, double) - Constructor for class org.usfirst.frc.team449.robot.drive.unidirectional.commands.VoltageRamp
-
-
Default constructor
-
-
- - - -

W

-
-
WaitForMillis - Class in org.usfirst.frc.team449.robot.commands.general
-
-
A command that does nothing and finishes after a set number of milliseconds.
-
-
WaitForMillis(long) - Constructor for class org.usfirst.frc.team449.robot.commands.general.WaitForMillis
-
-
Default constructor
-
-
- - - -

Y

-
-
YamlCommand - Interface in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A command that's constructable from YAML.
-
-
YamlCommandGroupWrapper - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A wrapper on CommandGroup with @JsonTypeInfo so we can use it in maps.
-
-
YamlCommandGroupWrapper() - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper
-
 
-
YamlCommandWrapper - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A wrapper on Command with @JsonTypeInfo so we can use it in maps.
-
-
YamlCommandWrapper() - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper
-
 
-
YamlSubsystem - Class in org.usfirst.frc.team449.robot.jacksonWrappers
-
-
A Jackson-compatible wrapper on Subsystem.
-
-
YamlSubsystem() - Constructor for class org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem
-
 
-
-A B C D E F G H I J L M N O P R S T U V W Y 
- -
- - - - - - - -
- - - - diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 12dbc759..00000000 --- a/docs/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - -RoboRIO 1.0 API - - - - - - - - - -<noscript> -<div>JavaScript is disabled on your browser.</div> -</noscript> -<h2>Frame Alert</h2> -<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> - - - diff --git a/docs/org/usfirst/frc/team449/robot/Robot.html b/docs/org/usfirst/frc/team449/robot/Robot.html deleted file mode 100644 index 26c181f8..00000000 --- a/docs/org/usfirst/frc/team449/robot/Robot.html +++ /dev/null @@ -1,492 +0,0 @@ - - - - - -Robot (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot
-

Class Robot

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.RobotBase
    • -
    • -
        -
      • edu.wpi.first.wpilibj.IterativeRobot
      • -
      • -
          -
        • org.usfirst.frc.team449.robot.Robot
        • -
        -
      • -
      -
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class Robot
    -extends edu.wpi.first.wpilibj.IterativeRobot
    -
    The main class of the robot, constructs all the subsystems and initializes default commands.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      static java.lang.StringRESOURCES_PATH -
      The absolute filepath to the resources folder containing the config files.
      -
      -
        -
      • - - -

        Fields inherited from class edu.wpi.first.wpilibj.RobotBase

        -m_ds, MAIN_THREAD_ID, ROBOT_TASK_PRIORITY
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      Robot() 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidautonomousInit() -
      Run when we first enable in autonomous
      -
      voidautonomousPeriodic() -
      Runs every tick in autonomous.
      -
      voiddisabledInit() -
      Run when we disable.
      -
      voiddisabledPeriodic() -
      Run every tic while disabled
      -
      voidrobotInit() -
      The method that runs when the robot is turned on.
      -
      voidteleopInit() -
      Run when we first enable in teleop.
      -
      voidteleopPeriodic() -
      Run every tick in teleop.
      -
      voidtestInit() -
      Run when we first enable in test mode.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.IterativeRobot

        -robotPeriodic, startCompetition, testPeriodic
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.RobotBase

        -free, getBooleanProperty, initializeHardwareConfiguration, isAutonomous, isDisabled, isEnabled, isNewDataAvailable, isOperatorControl, isReal, isSimulation, isTest, main
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        RESOURCES_PATH

        -
        @NotNull
        -public static final java.lang.String RESOURCES_PATH
        -
        The absolute filepath to the resources folder containing the config files.
        -
        -
        See Also:
        -
        Constant Field Values
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Robot

        -
        public Robot()
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        robotInit

        -
        public void robotInit()
        -
        The method that runs when the robot is turned on. Initializes all subsystems from the map.
        -
        -
        Overrides:
        -
        robotInit in class edu.wpi.first.wpilibj.IterativeRobot
        -
        -
      • -
      - - - -
        -
      • -

        teleopInit

        -
        public void teleopInit()
        -
        Run when we first enable in teleop.
        -
        -
        Overrides:
        -
        teleopInit in class edu.wpi.first.wpilibj.IterativeRobot
        -
        -
      • -
      - - - -
        -
      • -

        teleopPeriodic

        -
        public void teleopPeriodic()
        -
        Run every tick in teleop.
        -
        -
        Overrides:
        -
        teleopPeriodic in class edu.wpi.first.wpilibj.IterativeRobot
        -
        -
      • -
      - - - -
        -
      • -

        autonomousInit

        -
        public void autonomousInit()
        -
        Run when we first enable in autonomous
        -
        -
        Overrides:
        -
        autonomousInit in class edu.wpi.first.wpilibj.IterativeRobot
        -
        -
      • -
      - - - -
        -
      • -

        autonomousPeriodic

        -
        public void autonomousPeriodic()
        -
        Runs every tick in autonomous.
        -
        -
        Overrides:
        -
        autonomousPeriodic in class edu.wpi.first.wpilibj.IterativeRobot
        -
        -
      • -
      - - - -
        -
      • -

        disabledInit

        -
        public void disabledInit()
        -
        Run when we disable.
        -
        -
        Overrides:
        -
        disabledInit in class edu.wpi.first.wpilibj.IterativeRobot
        -
        -
      • -
      - - - -
        -
      • -

        testInit

        -
        public void testInit()
        -
        Run when we first enable in test mode.
        -
        -
        Overrides:
        -
        testInit in class edu.wpi.first.wpilibj.IterativeRobot
        -
        -
      • -
      - - - -
        -
      • -

        disabledPeriodic

        -
        public void disabledPeriodic()
        -
        Run every tic while disabled
        -
        -
        Overrides:
        -
        disabledPeriodic in class edu.wpi.first.wpilibj.IterativeRobot
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/RobotMap2017.html b/docs/org/usfirst/frc/team449/robot/RobotMap2017.html deleted file mode 100644 index bfb564fd..00000000 --- a/docs/org/usfirst/frc/team449/robot/RobotMap2017.html +++ /dev/null @@ -1,921 +0,0 @@ - - - - - -RobotMap2017 (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot
-

Class RobotMap2017

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.RobotMap2017
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class RobotMap2017
    -extends java.lang.Object
    -
    The Jackson-compatible object representing the entire robot.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        RobotMap2017

        -
        public RobotMap2017(@Nullable
        -                    java.util.List<CommandButton> buttons,
        -                    @NotNull
        -                    OI oi,
        -                    @NotNull
        -                    Logger logger,
        -                    @NotNull
        -                    DriveTalonCluster drive,
        -                    @NotNull
        -                    YamlCommand defaultDriveCommand,
        -                    @NotNull
        -                    MappedRunnable updater,
        -                    @Nullable
        -                    ClimberCurrentLimited climber,
        -                    @Nullable
        -                    LoggingFlywheel shooter,
        -                    @Nullable
        -                    CameraNetwork camera,
        -                    @Nullable
        -                    IntakeFixedAndActuated intake,
        -                    @Nullable
        -                    Pneumatics pneumatics,
        -                    @Nullable
        -                    SolenoidSimple gearHandler,
        -                    @Nullable
        -                    java.lang.Integer RIOduinoPort,
        -                    @Nullable
        -                    MappedDigitalInput allianceSwitch,
        -                    @Nullable
        -                    MappedDigitalInput dropGearSwitch,
        -                    @Nullable
        -                    MappedDigitalInput locationDial,
        -                    @Nullable
        -                    YamlCommand boilerAuto,
        -                    @Nullable
        -                    YamlCommand centerAuto,
        -                    @Nullable
        -                    YamlCommand feederAuto,
        -                    @Nullable
        -                    MotionProfileData leftTestProfile,
        -                    @Nullable
        -                    MotionProfileData rightTestProfile,
        -                    @Nullable
        -                    java.util.Map<java.lang.String,MotionProfileData> leftProfiles,
        -                    @Nullable
        -                    java.util.Map<java.lang.String,MotionProfileData> rightProfiles,
        -                    @Nullable
        -                    YamlCommand nonMPAutoCommand,
        -                    @Nullable
        -                    YamlCommand autoStartupCommand,
        -                    @Nullable
        -                    YamlCommand teleopStartupCommand,
        -                    @Nullable
        -                    YamlCommand startupCommand,
        -                    boolean testMP,
        -                    @Nullable
        -                    java.lang.Boolean doMP)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        buttons - The buttons for controlling this robot. Can be null for an empty list.
        -
        oi - The OI for controlling this robot's drive.
        -
        logger - The logger for recording events and telemetry data.
        -
        drive - The drive.
        -
        defaultDriveCommand - The command for the drive to run during the teleoperated period.
        -
        updater - A runnable that updates cached variables.
        -
        climber - The climber for boarding the airship. Can be null.
        -
        shooter - The multiSubsystem for shooting fuel. Can be null.
        -
        camera - The cameras on this robot. Can be null.
        -
        intake - The intake for picking up and agitating balls. Can be null.
        -
        pneumatics - The pneumatics on this robot. Can be null.
        -
        gearHandler - The gear handler on this robot. Can be null.
        -
        RIOduinoPort - The I2C port of the RIOduino plugged into this robot. Can be null.
        -
        allianceSwitch - The switch for selecting which alliance we're on. Can be null if doMP is false or - testMP is true, but otherwise must have a value.
        -
        dropGearSwitch - The switch for deciding whether or not to drop the gear. Can be null if doMP is false - or testMP is true, but otherwise must have a value.
        -
        locationDial - The dial for selecting which side of the field the robot is on. Can be null if doMP - is false or testMP is true, but otherwise must have a value.
        -
        boilerAuto - The command to run in autonomous on the boiler side of the field. Can be null if doMP - is false or testMP is true, but otherwise must have a value.
        -
        centerAuto - The command to run in autonomous on the center of the field. Can be null if doMP is - false or testMP is true, but otherwise must have a value.
        -
        feederAuto - The command to run in autonomous on the feeding station side of the field. Can be - null if doMP is false or testMP is true, but otherwise must have a value.
        -
        leftTestProfile - The profile for the left side of the drive to run in test mode. Can be null if either - testMP or doMP are false, but otherwise must have a value.
        -
        rightTestProfile - The profile for the right side of the drive to run in test mode. Can be null if - either testMP or doMP are false, but otherwise must have a value.
        -
        leftProfiles - The starting position to peg profiles for the left side. Should have options for - "red_right", "red_center", "red_left", "blue_right", "blue_center", and "blue_left". - Can be null if doMP is false or testMP is true, but otherwise must have a value.
        -
        rightProfiles - The starting position to peg profiles for the right side. Should have options for - "red_right", "red_center", "red_left", "blue_right", "blue_center", and "blue_left". - Can be null if doMP is false or testMP is true, but otherwise must have a value.
        -
        nonMPAutoCommand - The command to run during autonomous if doMP is false. Can be null, and if it is, no - command is run during autonomous.
        -
        autoStartupCommand - The command to be run when first enabled in autonomous mode.
        -
        teleopStartupCommand - The command to be run when first enabled in teleoperated mode.
        -
        startupCommand - The command to be run when first enabled.
        -
        testMP - Whether to run the test or real motion profile during autonomous. Defaults to false.
        -
        doMP - Whether to run a motion profile during autonomous. Defaults to true.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getButtons

        -
        @NotNull
        -public java.util.List<CommandButton> getButtons()
        -
        -
        Returns:
        -
        The buttons for controlling this robot.
        -
        -
      • -
      - - - -
        -
      • -

        getOI

        -
        @NotNull
        -public OI getOI()
        -
        -
        Returns:
        -
        The OI for controlling this robot's drive.
        -
        -
      • -
      - - - -
        -
      • -

        getLogger

        -
        @NotNull
        -public Logger getLogger()
        -
        -
        Returns:
        -
        The logger for recording events and telemetry data.
        -
        -
      • -
      - - - -
        -
      • -

        getDrive

        -
        @NotNull
        -public DriveTalonCluster getDrive()
        -
        -
        Returns:
        -
        The drive.
        -
        -
      • -
      - - - -
        -
      • -

        getDefaultDriveCommand

        -
        @NotNull
        -public edu.wpi.first.wpilibj.command.Command getDefaultDriveCommand()
        -
        -
        Returns:
        -
        The command for the drive to run during the teleoperated period.
        -
        -
      • -
      - - - -
        -
      • -

        getClimber

        -
        @Nullable
        -public ClimberCurrentLimited getClimber()
        -
        -
        Returns:
        -
        The climber for boarding the airship. Can be null.
        -
        -
      • -
      - - - -
        -
      • -

        getShooter

        -
        @Nullable
        -public LoggingFlywheel getShooter()
        -
        -
        Returns:
        -
        The multiSubsystem for shooting fuel. Can be null.
        -
        -
      • -
      - - - -
        -
      • -

        getCamera

        -
        @Nullable
        -public CameraNetwork getCamera()
        -
        -
        Returns:
        -
        The cameras on this robot. Can be null.
        -
        -
      • -
      - - - -
        -
      • -

        getIntake

        -
        @Nullable
        -public IntakeFixedAndActuated getIntake()
        -
        -
        Returns:
        -
        The intake for picking up and agitating balls. Can be null.
        -
        -
      • -
      - - - -
        -
      • -

        getPneumatics

        -
        @Nullable
        -public Pneumatics getPneumatics()
        -
        -
        Returns:
        -
        The pneumatics on this robot. Can be null.
        -
        -
      • -
      - - - -
        -
      • -

        getGearHandler

        -
        @Nullable
        -public SolenoidSimple getGearHandler()
        -
        -
        Returns:
        -
        The gear handler on this robot. Can be null.
        -
        -
      • -
      - - - -
        -
      • -

        getRIOduinoPort

        -
        @Nullable
        -public java.lang.Integer getRIOduinoPort()
        -
        -
        Returns:
        -
        The I2C port of the RIOduino plugged into this robot. Can be null.
        -
        -
      • -
      - - - -
        -
      • -

        getAllianceSwitch

        -
        @Nullable
        -public MappedDigitalInput getAllianceSwitch()
        -
        -
        Returns:
        -
        The switch for selecting which alliance we're on. Can be null if getDoMP returns false or getTestMP - returns true, but otherwise has a value.
        -
        -
      • -
      - - - -
        -
      • -

        getDropGearSwitch

        -
        @Nullable
        -public MappedDigitalInput getDropGearSwitch()
        -
        -
        Returns:
        -
        The switch for deciding whether or not to drop the gear. Can be null if getDoMP returns false or - getTestMP returns true, but otherwise has a value.
        -
        -
      • -
      - - - -
        -
      • -

        getLocationDial

        -
        @Nullable
        -public MappedDigitalInput getLocationDial()
        -
        -
        Returns:
        -
        The dial for selecting which side of the field the robot is on. Can be null if getDoMP returns false or - getTestMP returns true, but otherwise has a value.
        -
        -
      • -
      - - - -
        -
      • -

        getBoilerAuto

        -
        @Nullable
        -public edu.wpi.first.wpilibj.command.Command getBoilerAuto()
        -
        -
        Returns:
        -
        The command to run in autonomous on the boiler side of the field. Can be null if getDoMP returns false or - getTestMP returns true, but otherwise has a value.
        -
        -
      • -
      - - - -
        -
      • -

        getCenterAuto

        -
        @Nullable
        -public edu.wpi.first.wpilibj.command.Command getCenterAuto()
        -
        -
        Returns:
        -
        The command to run in autonomous on the center of the field. Can be null if getDoMP returns false or - getTestMP returns true, but otherwise has a value.
        -
        -
      • -
      - - - -
        -
      • -

        getFeederAuto

        -
        @Nullable
        -public edu.wpi.first.wpilibj.command.Command getFeederAuto()
        -
        -
        Returns:
        -
        The command to run in autonomous on the feeding station side of the field. Can be null if getDoMP returns - false or getTestMP returns true, but otherwise has a value.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftTestProfile

        -
        @Nullable
        -public MotionProfileData getLeftTestProfile()
        -
        -
        Returns:
        -
        The profile for the left side of the drive to run in test mode. Can be null if either getTestMP or - getDoMP return false, but otherwise has a value.
        -
        -
      • -
      - - - -
        -
      • -

        getRightTestProfile

        -
        @Nullable
        -public MotionProfileData getRightTestProfile()
        -
        -
        Returns:
        -
        The profile for the right side of the drive to run in test mode. Can be null if either getTestMP or - getDoMP return false, but otherwise has a value.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftProfiles

        -
        @Nullable
        -public java.util.Map<java.lang.String,MotionProfileData> getLeftProfiles()
        -
        -
        Returns:
        -
        The starting position to peg profiles for the left side. Can be null if getDoMP returns false or - getTestMP returns true, but otherwise has a value. If not null, has values for the keys "red_right", - "red_center", "red_left", "blue_right", "blue_center", and "blue_left".
        -
        -
      • -
      - - - -
        -
      • -

        getRightProfiles

        -
        @Nullable
        -public java.util.Map<java.lang.String,MotionProfileData> getRightProfiles()
        -
        -
        Returns:
        -
        The starting position to peg profiles for the right side. Can be null if getDoMP returns false or - getTestMP returns true, but otherwise has a value. If not null, has values for the keys "red_right", - "red_center", "red_left", "blue_right", "blue_center", and "blue_left".
        -
        -
      • -
      - - - -
        -
      • -

        getNonMPAutoCommand

        -
        @Nullable
        -public edu.wpi.first.wpilibj.command.Command getNonMPAutoCommand()
        -
        -
        Returns:
        -
        The command to run during autonomous if doMP is false. Can be null.
        -
        -
      • -
      - - - -
        -
      • -

        getTestMP

        -
        public boolean getTestMP()
        -
        -
        Returns:
        -
        Whether to run the test or real motion profile during autonomous.
        -
        -
      • -
      - - - -
        -
      • -

        getAutoStartupCommand

        -
        @Nullable
        -public edu.wpi.first.wpilibj.command.Command getAutoStartupCommand()
        -
        -
        Returns:
        -
        The command to be run when first enabled in autonomous mode.
        -
        -
      • -
      - - - -
        -
      • -

        getTeleopStartupCommand

        -
        @Nullable
        -public edu.wpi.first.wpilibj.command.Command getTeleopStartupCommand()
        -
        -
        Returns:
        -
        The command to be run when first enabled in teleoperated mode.
        -
        -
      • -
      - - - -
        -
      • -

        getDoMP

        -
        public boolean getDoMP()
        -
        -
        Returns:
        -
        Whether to run a motion profile during autonomous.
        -
        -
      • -
      - - - -
        -
      • -

        getStartupCommand

        -
        @Nullable
        -public edu.wpi.first.wpilibj.command.Command getStartupCommand()
        -
        -
        Returns:
        -
        The command to be run when first enabled.
        -
        -
      • -
      - - - -
        -
      • -

        getUpdater

        -
        @NotNull
        -public java.lang.Runnable getUpdater()
        -
        -
        Returns:
        -
        A runnable that updates cached variables.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Boiler.html b/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Boiler.html deleted file mode 100644 index 3fc0e95c..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Boiler.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -Auto2017Boiler (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.autonomous
-

Class Auto2017Boiler

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class Auto2017Boiler
    -extends YamlCommandGroupWrapper
    -
    The autonomous routine to deliver a gear to the center gear.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Auto2017Boiler

        -
        public Auto2017Boiler(@NotNull
        -                      RunLoadedProfile runWallToPegProfile,
        -                      @NotNull
        -                      YamlCommand dropGear,
        -                      @NotNull
        -                      MappedDigitalInput dropGearSwitch,
        -                      @NotNull
        -                      MappedDigitalInput allianceSwitch,
        -                      @NotNull
        -                      RunProfileTwoSides runRedPegToKeyProfile,
        -                      @NotNull
        -                      RunProfileTwoSides runBluePegToKeyProfile,
        -                      @Nullable
        -                      YamlCommand spinUpShooter,
        -                      @Nullable
        -                      YamlCommand fireShooter,
        -                      long waitBetweenProfilesMillis)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        runWallToPegProfile - The command for running the profile for going from the wall to the peg, which - has already been loaded.
        -
        dropGear - The command for dropping the held gear.
        -
        dropGearSwitch - The switch deciding whether or not to drop the gear.
        -
        allianceSwitch - The switch indicating which alliance we're on.
        -
        runRedPegToKeyProfile - The command for moving from the peg to the key, on the red side of the field.
        -
        runBluePegToKeyProfile - The command for moving from the peg to the key, on the blue side of the field.
        -
        spinUpShooter - The command for revving up the flywheel. Can be null.
        -
        fireShooter - The command for firing the flywheel. Can be null.
        -
        waitBetweenProfilesMillis - How long to wait between each motion profile. Defaults to 50 if less than 50.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Center.html b/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Center.html deleted file mode 100644 index 4414face..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Center.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - - -Auto2017Center (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.autonomous
-

Class Auto2017Center

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class Auto2017Center
    -extends YamlCommandGroupWrapper
    -
    The autonomous routine to deliver a gear to the center gear.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Auto2017Center

        -
        public Auto2017Center(@NotNull
        -                      RunLoadedProfile runWallToPegProfile,
        -                      @NotNull
        -                      YamlCommand dropGear,
        -                      @NotNull
        -                      MappedDigitalInput dropGearSwitch,
        -                      @NotNull
        -                      YamlCommand driveBack)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        runWallToPegProfile - The command for running the profile for going from the wall to the peg, which has - already been loaded.
        -
        dropGear - The command for dropping the held gear.
        -
        dropGearSwitch - The switch deciding whether or not to drop the gear.
        -
        driveBack - The command for backing up away from the peg.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Feeder.html b/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Feeder.html deleted file mode 100644 index c2ee99d7..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/autonomous/Auto2017Feeder.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -Auto2017Feeder (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.autonomous
-

Class Auto2017Feeder

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class Auto2017Feeder
    -extends YamlCommandGroupWrapper
    -
    The autonomous routine to deliver a gear to the center gear.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Auto2017Feeder

        -
        public Auto2017Feeder(@NotNull
        -                      RunLoadedProfile runWallToPegProfile,
        -                      @NotNull
        -                      YamlCommand dropGear,
        -                      @NotNull
        -                      MappedDigitalInput dropGearSwitch,
        -                      @NotNull
        -                      MappedDigitalInput allianceSwitch,
        -                      @NotNull
        -                      RunProfileTwoSides runRedBackupProfile,
        -                      @NotNull
        -                      RunProfileTwoSides runBlueBackupProfile,
        -                      @NotNull
        -                      YamlCommand driveForwardsRed,
        -                      @NotNull
        -                      YamlCommand driveForwardsBlue,
        -                      long waitBetweenProfilesMillis)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        runWallToPegProfile - The command for running the profile for going from the wall to the peg, which - has already been loaded.
        -
        dropGear - The command for dropping the held gear.
        -
        dropGearSwitch - The switch deciding whether or not to drop the gear.
        -
        allianceSwitch - The switch indicating which alliance we're on.
        -
        runRedBackupProfile - The command for away from the peg, on the red side of the field.
        -
        runBlueBackupProfile - The command for moving away from the peg, on the blue side of the field.
        -
        driveForwardsRed - The command for moving forwards towards the feeder station on the red side.
        -
        driveForwardsBlue - The command for moving forwards towards the feeder station on the blue side.
        -
        waitBetweenProfilesMillis - How long to wait between each motion profile. Defaults to 50 if less than 50.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-frame.html b/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-frame.html deleted file mode 100644 index 11ef3d00..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-frame.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.autonomous (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.commands.autonomous

- - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-summary.html b/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-summary.html deleted file mode 100644 index 1de3acc8..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-summary.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.autonomous (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.commands.autonomous

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    Auto2017Boiler -
    The autonomous routine to deliver a gear to the center gear.
    -
    Auto2017Center -
    The autonomous routine to deliver a gear to the center gear.
    -
    Auto2017Feeder -
    The autonomous routine to deliver a gear to the center gear.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-tree.html b/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-tree.html deleted file mode 100644 index b0a23b19..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/autonomous/package-tree.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.autonomous Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.commands.autonomous

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup - -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/general/CommandSequence.html b/docs/org/usfirst/frc/team449/robot/commands/general/CommandSequence.html deleted file mode 100644 index 0ffdc752..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/general/CommandSequence.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - -CommandSequence (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.general
-

Class CommandSequence

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class CommandSequence
    -extends YamlCommandGroupWrapper
    -
    A command group that takes a list of commands and runs them in the order given.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      CommandSequence(java.util.List<YamlCommand> commandList) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        CommandSequence

        -
        public CommandSequence(@NotNull
        -                       java.util.List<YamlCommand> commandList)
        -
        Default constructor
        -
        -
        Parameters:
        -
        commandList - The commands to run, in order.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/general/ParallelCommandGroup.html b/docs/org/usfirst/frc/team449/robot/commands/general/ParallelCommandGroup.html deleted file mode 100644 index 902ea5c8..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/general/ParallelCommandGroup.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - -ParallelCommandGroup (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.general
-

Class ParallelCommandGroup

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ParallelCommandGroup
    -extends YamlCommandGroupWrapper
    -
    A command group for running many commands in parallel.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ParallelCommandGroup

        -
        public ParallelCommandGroup(@NotNull
        -                            java.util.Set<YamlCommand> commandSet)
        -
        Default constructor
        -
        -
        Parameters:
        -
        commandSet - The commands to run.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/general/RunRunnables.html b/docs/org/usfirst/frc/team449/robot/commands/general/RunRunnables.html deleted file mode 100644 index b861c446..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/general/RunRunnables.html +++ /dev/null @@ -1,392 +0,0 @@ - - - - - -RunRunnables (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.general
-

Class RunRunnables

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class RunRunnables
    -extends YamlCommandWrapper
    -
    A command that runs any number of Runnable objects every tic.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      RunRunnables(MappedRunnable[] runnables) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log on exit.
      -
      protected voidexecute() -
      Run all the runnables in the order they were given.
      -
      protected voidinitialize() -
      Log on init
      -
      protected voidinterrupted() -
      Log when interrupted.
      -
      protected booleanisFinished() 
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        RunRunnables

        -
        public RunRunnables(@NotNull
        -                    MappedRunnable[] runnables)
        -
        Default constructor
        -
        -
        Parameters:
        -
        runnables - The runnables to run.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log on init
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Run all the runnables in the order they were given.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        false
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log on exit.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/general/WaitForMillis.html b/docs/org/usfirst/frc/team449/robot/commands/general/WaitForMillis.html deleted file mode 100644 index ca02b551..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/general/WaitForMillis.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -WaitForMillis (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.general
-

Class WaitForMillis

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class WaitForMillis
    -extends YamlCommandWrapper
    -
    A command that does nothing and finishes after a set number of milliseconds. For use to create a delay in sequential - CommandGroups.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      WaitForMillis(long time) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidinitialize() -
      Store the start time.
      -
      protected booleanisFinished() -
      Finish if the specified amount of time has passed.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, end, execute, getGroup, getName, getSmartDashboardType, getTable, initTable, interrupted, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        WaitForMillis

        -
        public WaitForMillis(long time)
        -
        Default constructor
        -
        -
        Parameters:
        -
        time - How long this command will take to finish, in milliseconds.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Store the start time.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish if the specified amount of time has passed.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true if the specified number of milliseconds have passed since this command started, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/general/package-frame.html b/docs/org/usfirst/frc/team449/robot/commands/general/package-frame.html deleted file mode 100644 index 19a9bd30..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/general/package-frame.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.general (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.commands.general

- - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/general/package-summary.html b/docs/org/usfirst/frc/team449/robot/commands/general/package-summary.html deleted file mode 100644 index f7d3cd56..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/general/package-summary.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.general (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.commands.general

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    CommandSequence -
    A command group that takes a list of commands and runs them in the order given.
    -
    ParallelCommandGroup -
    A command group for running many commands in parallel.
    -
    RunRunnables -
    A command that runs any number of Runnable objects every tic.
    -
    WaitForMillis -
    A command that does nothing and finishes after a set number of milliseconds.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/general/package-tree.html b/docs/org/usfirst/frc/team449/robot/commands/general/package-tree.html deleted file mode 100644 index 0ff159c9..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/general/package-tree.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.general Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.commands.general

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/RunMotorWhileConditonMet.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/RunMotorWhileConditonMet.html deleted file mode 100644 index 4f3e5ffe..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/RunMotorWhileConditonMet.html +++ /dev/null @@ -1,397 +0,0 @@ - - - - - -RunMotorWhileConditonMet (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface
-

Class RunMotorWhileConditonMet<T extends YamlSubsystem & SubsystemBinaryMotor & SubsystemConditional>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      RunMotorWhileConditonMet(T subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Stop the motor and log that the command has ended.
      -
      protected voidexecute() -
      Run the motor
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Stop the motor and log that the command has been interrupted.
      -
      protected booleanisFinished() -
      Stop when the condition is met.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        RunMotorWhileConditonMet

        -
        public RunMotorWhileConditonMet(@NotNull
        -                                T subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Run the motor
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Stop when the condition is met.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true if the condition is met, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Stop the motor and log that the command has ended.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Stop the motor and log that the command has been interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint.html deleted file mode 100644 index 16f75f3d..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - - -FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint
    • -
    -
  • -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      AngularSnapPoint(double snapTo, - double upperBound, - double lowerBound) -
      Default constructor.
      -
      -
    • -
    - - -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        AngularSnapPoint

        -
        public AngularSnapPoint(double snapTo,
        -                        double upperBound,
        -                        double lowerBound)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        snapTo - The angle to snap the setpoint to, in degrees.
        -
        upperBound - The upper bound, below which all angles above snapTo are changed to snapTo. Measured in - degrees.
        -
        lowerBound - The lower bound, above which all angles below snapTo are changed to snapTo. Measured in - degrees.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getSnapTo

        -
        public double getSnapTo()
        -
        -
        Returns:
        -
        The angle to snap the setpoint to, in degrees.
        -
        -
      • -
      - - - -
        -
      • -

        getUpperBound

        -
        public double getUpperBound()
        -
        -
        Returns:
        -
        The upper bound, below which all angles above snapTo are changed to snapTo. Measured in degrees.
        -
        -
      • -
      - - - -
        -
      • -

        getLowerBound

        -
        public double getLowerBound()
        -
        -
        Returns:
        -
        The lower bound, above which all angles below snapTo are changed to snapTo. Measured in degrees.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.html deleted file mode 100644 index 0e01d3eb..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommand.html +++ /dev/null @@ -1,559 +0,0 @@ - - - - - -FieldOrientedUnidirectionalDriveCommand (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class FieldOrientedUnidirectionalDriveCommand<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS>

-
-
- -
- -
-
-
    -
  • - - - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected OIFieldOrientedoi -
      The OI giving the input stick values.
      -
      protected Tsubsystem -
      The drive this command is controlling.
      -
      -
    • -
    - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Set PID setpoint to processed controller setpoint.
      -
      protected voidinitialize() -
      Initialize PIDController and variables.
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Run constantly because this is a defaultDrive
      -
      protected voidusePIDOutput(double output) -
      Give the correct output to the motors based on the PID output and velocity input.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.PIDCommand

        -getPIDController, getPosition, getSetpoint, getSmartDashboardType, initTable, setInputRange, setSetpoint, setSetpointRelative
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        -getTable
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        FieldOrientedUnidirectionalDriveCommand

        -
        public FieldOrientedUnidirectionalDriveCommand(double absoluteTolerance,
        -                                               int toleranceBuffer,
        -                                               double minimumOutput,
        -                                               @Nullable
        -                                               java.lang.Double maximumOutput,
        -                                               double deadband,
        -                                               boolean inverted,
        -                                               double kP,
        -                                               double kI,
        -                                               double kD,
        -                                               @NotNull
        -                                               T subsystem,
        -                                               @NotNull
        -                                               OIFieldOriented oi,
        -                                               @Nullable
        -                                               java.util.List<FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint> snapPoints)
        -
        Default constructor
        -
        -
        Parameters:
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be considered on - target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0.
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be considered within - tolerance.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given to the - motors. Defaults to zero.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        subsystem - The drive to execute this command on.
        -
        oi - The OI controlling the robot.
        -
        snapPoints - The points to snap the PID controller input to.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Initialize PIDController and variables.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Set PID setpoint to processed controller setpoint.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Run constantly because this is a defaultDrive
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        false
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        usePIDOutput

        -
        protected void usePIDOutput(double output)
        -
        Give the correct output to the motors based on the PID output and velocity input.
        -
        -
        Specified by:
        -
        usePIDOutput in class edu.wpi.first.wpilibj.command.PIDCommand
        -
        Parameters:
        -
        output - The output of the angular PID loop.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommandShifting.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommandShifting.html deleted file mode 100644 index 94815f30..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/FieldOrientedUnidirectionalDriveCommandShifting.html +++ /dev/null @@ -1,517 +0,0 @@ - - - - - -FieldOrientedUnidirectionalDriveCommandShifting (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class FieldOrientedUnidirectionalDriveCommandShifting<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS & DriveShiftable>

-
-
- -
- -
-
-
    -
  • - - - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected Tsubsystem -
      The drive to execute this command on.
      -
      - -
    • -
    - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Set PID setpoint to processed controller setpoint and autoshift.
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected voidusePIDOutput(double output) -
      Give the correct output to the motors based on the PID output and velocity input.
      -
      - - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.PIDCommand

        -getPIDController, getPosition, getSetpoint, getSmartDashboardType, initTable, setInputRange, setSetpoint, setSetpointRelative
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        -getTable
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        FieldOrientedUnidirectionalDriveCommandShifting

        -
        public FieldOrientedUnidirectionalDriveCommandShifting(double absoluteTolerance,
        -                                                       int toleranceBuffer,
        -                                                       double minimumOutput,
        -                                                       @Nullable
        -                                                       java.lang.Double maximumOutput,
        -                                                       double deadband,
        -                                                       boolean inverted,
        -                                                       double kP,
        -                                                       double kI,
        -                                                       double kD,
        -                                                       @NotNull
        -                                                       T subsystem,
        -                                                       @NotNull
        -                                                       OIFieldOriented oi,
        -                                                       @Nullable
        -                                                       java.util.List<FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint> snapPoints,
        -                                                       @NotNull
        -                                                       AutoshiftComponent autoshiftComponent,
        -                                                       @Nullable
        -                                                       java.lang.Double highGearAngularCoefficient)
        -
        Default constructor
        -
        -
        Parameters:
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be considered on - target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0.
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be considered within - tolerance.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given to the - motors. Defaults to zero.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        subsystem - The drive to execute this command on.
        -
        oi - The OI controlling the robot.
        -
        snapPoints - The points to snap the PID controller input to.
        -
        autoshiftComponent - The helper object for autoshifting.
        -
        highGearAngularCoefficient - The coefficient to multiply the loop output by in high gear. Defaults to 1.
        -
        -
      • -
      -
    • -
    - - -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/JiggleRobot.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/JiggleRobot.html deleted file mode 100644 index 4aedd709..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/JiggleRobot.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - -JiggleRobot (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class JiggleRobot<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      JiggleRobot(double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, - java.lang.Double maximumOutput, - double deadband, - boolean inverted, - int kP, - int kI, - int kD, - T subsystem) -
      Instantiate the CommandGroup
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        JiggleRobot

        -
        public JiggleRobot(double absoluteTolerance,
        -                   int toleranceBuffer,
        -                   double minimumOutput,
        -                   @Nullable
        -                   java.lang.Double maximumOutput,
        -                   double deadband,
        -                   boolean inverted,
        -                   int kP,
        -                   int kI,
        -                   int kD,
        -                   @NotNull
        -                   T subsystem)
        -
        Instantiate the CommandGroup
        -
        -
        Parameters:
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be considered on - target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0.
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be considered within - tolerance.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given to the - motors. Defaults to zero.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        subsystem - The drive to execute this command on.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXDriveStraight.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXDriveStraight.html deleted file mode 100644 index c9340254..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXDriveStraight.html +++ /dev/null @@ -1,497 +0,0 @@ - - - - - -NavXDriveStraight (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class NavXDriveStraight<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected Tsubsystem -
      The drive subsystem to give output to.
      -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      NavXDriveStraight(double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, - java.lang.Double maximumOutput, - double deadband, - boolean inverted, - int kP, - int kI, - int kD, - T subsystem, - OITank oi, - boolean useLeft) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidinitialize() -
      Set the setpoint of the angle PID.
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Never finishes.
      -
      protected voidusePIDOutput(double output) -
      Give output to the drive based on the out of the PID loop.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.PIDCommand

        -getPIDController, getPosition, getSetpoint, getSmartDashboardType, initTable, setInputRange, setSetpoint, setSetpointRelative
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, execute, getGroup, getName, getTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        -getTable
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        NavXDriveStraight

        -
        public NavXDriveStraight(double absoluteTolerance,
        -                         int toleranceBuffer,
        -                         double minimumOutput,
        -                         @Nullable
        -                         java.lang.Double maximumOutput,
        -                         double deadband,
        -                         boolean inverted,
        -                         int kP,
        -                         int kI,
        -                         int kD,
        -                         @NotNull
        -                         T subsystem,
        -                         @NotNull
        -                         OITank oi,
        -                         boolean useLeft)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be considered on - target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0.
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be considered within - tolerance.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given to the - motors. Defaults to zero.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        subsystem - The drive to execute this command on.
        -
        oi - The tank OI to take input from.
        -
        useLeft - Which joystick to use to get the forward component to drive straight. True for left, - false for right.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        usePIDOutput

        -
        protected void usePIDOutput(double output)
        -
        Give output to the drive based on the out of the PID loop.
        -
        -
        Specified by:
        -
        usePIDOutput in class edu.wpi.first.wpilibj.command.PIDCommand
        -
        Parameters:
        -
        output - the value the PID loop calculated
        -
        -
      • -
      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Set the setpoint of the angle PID.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Never finishes.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        false
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngle.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngle.html deleted file mode 100644 index a19df8b9..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngle.html +++ /dev/null @@ -1,555 +0,0 @@ - - - - - -NavXTurnToAngle (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class NavXTurnToAngle<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected doublesetpoint -
      The angle to turn to.
      -
      protected longstartTime -
      The time this command was initiated
      -
      protected Tsubsystem -
      The drive subsystem to execute this command on and to get the gyro reading from.
      -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      NavXTurnToAngle(double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, - java.lang.Double maximumOutput, - double deadband, - boolean inverted, - int kP, - int kI, - int kD, - double setpoint, - T subsystem, - double timeout) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected static doubleclipTo180(double theta) -
      Clip a degree number to the NavX's -180 to 180 system.
      -
      protected voidend() -
      Log when the command ends.
      -
      protected voidinitialize() -
      Set up the start time and setpoint.
      -
      protected voidinterrupted() -
      Log when the command is interrupted.
      -
      protected booleanisFinished() -
      Exit when the robot reaches the setpoint or enough time has passed.
      -
      protected voidusePIDOutput(double output) -
      Give output to the motors based on the output of the PID loop
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.PIDCommand

        -getPIDController, getPosition, getSetpoint, getSmartDashboardType, initTable, setInputRange, setSetpoint, setSetpointRelative
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, execute, getGroup, getName, getTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        -getTable
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - - - - - -
        -
      • -

        setpoint

        -
        protected final double setpoint
        -
        The angle to turn to.
        -
      • -
      - - - -
        -
      • -

        startTime

        -
        protected long startTime
        -
        The time this command was initiated
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        NavXTurnToAngle

        -
        public NavXTurnToAngle(double absoluteTolerance,
        -                       int toleranceBuffer,
        -                       double minimumOutput,
        -                       @Nullable
        -                       java.lang.Double maximumOutput,
        -                       double deadband,
        -                       boolean inverted,
        -                       int kP,
        -                       int kI,
        -                       int kD,
        -                       double setpoint,
        -                       @NotNull
        -                       T subsystem,
        -                       double timeout)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be considered on - target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0.
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be considered within - tolerance.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given to the - motors. Defaults to zero.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        setpoint - The setpoint, in degrees from 180 to -180.
        -
        subsystem - The drive subsystem to execute this command on.
        -
        timeout - How long this command is allowed to run for, in seconds. Needed because sometimes - floating-point errors prevent termination.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        clipTo180

        -
        @Contract(pure=true)
        -protected static double clipTo180(double theta)
        -
        Clip a degree number to the NavX's -180 to 180 system.
        -
        -
        Parameters:
        -
        theta - The angle to clip, in degrees.
        -
        Returns:
        -
        The equivalent of that number, clipped to be between -180 and 180.
        -
        -
      • -
      - - - -
        -
      • -

        usePIDOutput

        -
        protected void usePIDOutput(double output)
        -
        Give output to the motors based on the output of the PID loop
        -
        -
        Specified by:
        -
        usePIDOutput in class edu.wpi.first.wpilibj.command.PIDCommand
        -
        Parameters:
        -
        output - The output of the angle PID loop
        -
        -
      • -
      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Set up the start time and setpoint.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Exit when the robot reaches the setpoint or enough time has passed.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        True if timeout seconds have passed or the robot is on target, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when the command ends.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when the command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngleRelative.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngleRelative.html deleted file mode 100644 index 5950e160..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/NavXTurnToAngleRelative.html +++ /dev/null @@ -1,439 +0,0 @@ - - - - - -NavXTurnToAngleRelative (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class NavXTurnToAngleRelative<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS>

-
-
- -
- -
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      NavXTurnToAngleRelative(double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, - java.lang.Double maximumOutput, - double deadband, - boolean inverted, - int kP, - int kI, - int kD, - double setpoint, - T drive, - double timeout) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when the command ends.
      -
      protected voidinitialize() -
      Set up the start time and setpoint.
      -
      protected voidinterrupted() -
      Log when the command is interrupted.
      -
      - - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.PIDCommand

        -getPIDController, getPosition, getSetpoint, getSmartDashboardType, initTable, setInputRange, setSetpoint, setSetpointRelative
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, execute, getGroup, getName, getTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        -getTable
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        NavXTurnToAngleRelative

        -
        public NavXTurnToAngleRelative(double absoluteTolerance,
        -                               int toleranceBuffer,
        -                               double minimumOutput,
        -                               @Nullable
        -                               java.lang.Double maximumOutput,
        -                               double deadband,
        -                               boolean inverted,
        -                               int kP,
        -                               int kI,
        -                               int kD,
        -                               double setpoint,
        -                               @NotNull
        -                               T drive,
        -                               double timeout)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be considered on - target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0.
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be considered within - tolerance.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given to the - motors. Defaults to zero.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        setpoint - The setpoint, in degrees from 180 to -180.
        -
        drive - The drive subsystem to execute this command on.
        -
        timeout - How long this command is allowed to run for, in seconds. Needed because sometimes - floating-point errors prevent termination.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Set up the start time and setpoint.
        -
        -
        Overrides:
        -
        initialize in class NavXTurnToAngle
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when the command ends.
        -
        -
        Overrides:
        -
        end in class NavXTurnToAngle
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when the command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class NavXTurnToAngle
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXDefaultDrive.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXDefaultDrive.html deleted file mode 100644 index 51349fd6..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXDefaultDrive.html +++ /dev/null @@ -1,545 +0,0 @@ - - - - - -UnidirectionalNavXDefaultDrive (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class UnidirectionalNavXDefaultDrive<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected OIUnidirectionaloi -
      The OI giving the input stick values.
      -
      protected Tsubsystem -
      The drive this command is controlling.
      -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      UnidirectionalNavXDefaultDrive(double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, - java.lang.Double maximumOutput, - double deadband, - java.lang.Double maxAngularVelToEnterLoop, - boolean inverted, - double kP, - double kI, - double kD, - BufferTimer driveStraightLoopEntryTimer, - T subsystem, - OIUnidirectional oi) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Decide whether or not we should be in free drive or straight drive.
      -
      protected voidinitialize() -
      Initialize PIDController and variables.
      -
      protected voidinterrupted() -
      Stop the motors and log when this command is interrupted.
      -
      protected booleanisFinished() -
      Run constantly because this is a defaultDrive
      -
      protected voidusePIDOutput(double output) -
      Give the correct output to the motors based on whether we're in free drive or drive straight.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.PIDCommand

        -getPIDController, getPosition, getSetpoint, getSmartDashboardType, initTable, setInputRange, setSetpoint, setSetpointRelative
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        -getTable
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        UnidirectionalNavXDefaultDrive

        -
        public UnidirectionalNavXDefaultDrive(double absoluteTolerance,
        -                                      int toleranceBuffer,
        -                                      double minimumOutput,
        -                                      @Nullable
        -                                      java.lang.Double maximumOutput,
        -                                      double deadband,
        -                                      @Nullable
        -                                      java.lang.Double maxAngularVelToEnterLoop,
        -                                      boolean inverted,
        -                                      double kP,
        -                                      double kI,
        -                                      double kD,
        -                                      @NotNull
        -                                      BufferTimer driveStraightLoopEntryTimer,
        -                                      @NotNull
        -                                      T subsystem,
        -                                      @NotNull
        -                                      OIUnidirectional oi)
        -
        Default constructor
        -
        -
        Parameters:
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be - considered on target. Multiply by loop period of ~20 milliseconds for time. - Defaults to 0.
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be - considered within tolerance.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output - is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given - to the motors. Defaults to zero.
        -
        maxAngularVelToEnterLoop - The maximum angular velocity, in degrees/sec, at which the loop will be - entered. Defaults to 180.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        driveStraightLoopEntryTimer - The buffer timer for starting to drive straight.
        -
        subsystem - The drive to execute this command on.
        -
        oi - The OI controlling the robot.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Initialize PIDController and variables.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Decide whether or not we should be in free drive or straight drive.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Run constantly because this is a defaultDrive
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        false
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Stop the motors and log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        usePIDOutput

        -
        protected void usePIDOutput(double output)
        -
        Give the correct output to the motors based on whether we're in free drive or drive straight.
        -
        -
        Specified by:
        -
        usePIDOutput in class edu.wpi.first.wpilibj.command.PIDCommand
        -
        Parameters:
        -
        output - The output of the angular PID loop.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXShiftingDefaultDrive.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXShiftingDefaultDrive.html deleted file mode 100644 index 11ed4f30..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/UnidirectionalNavXShiftingDefaultDrive.html +++ /dev/null @@ -1,527 +0,0 @@ - - - - - -UnidirectionalNavXShiftingDefaultDrive (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiInterface.drive
-

Class UnidirectionalNavXShiftingDefaultDrive<T extends YamlSubsystem & DriveUnidirectional & SubsystemAHRS & DriveShiftable>

-
-
- -
- -
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      UnidirectionalNavXShiftingDefaultDrive(double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, - java.lang.Double maximumOutput, - double deadband, - java.lang.Double maxAngularVelToEnterLoop, - boolean inverted, - double kP, - double kI, - double kD, - BufferTimer driveStraightLoopEntryTimer, - T subsystem, - OIUnidirectional oi, - AutoshiftComponent autoshiftComponent, - java.lang.Double highGearAngularCoefficient) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      voidexecute() -
      Autoshift and decide whether or not we should be in free drive or straight drive
      -
      protected voidinterrupted() -
      Stop the motors and log when this command is interrupted.
      -
      protected voidusePIDOutput(double output) -
      Give the correct output to the motors based on whether we're in free drive or drive straight.
      -
      - - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.PIDCommand

        -getPIDController, getPosition, getSetpoint, getSmartDashboardType, initTable, setInputRange, setSetpoint, setSetpointRelative
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        -getTable
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        UnidirectionalNavXShiftingDefaultDrive

        -
        public UnidirectionalNavXShiftingDefaultDrive(double absoluteTolerance,
        -                                              int toleranceBuffer,
        -                                              double minimumOutput,
        -                                              @Nullable
        -                                              java.lang.Double maximumOutput,
        -                                              double deadband,
        -                                              @Nullable
        -                                              java.lang.Double maxAngularVelToEnterLoop,
        -                                              boolean inverted,
        -                                              double kP,
        -                                              double kI,
        -                                              double kD,
        -                                              @NotNull
        -                                              BufferTimer driveStraightLoopEntryTimer,
        -                                              @NotNull
        -                                              T subsystem,
        -                                              @NotNull
        -                                              OIUnidirectional oi,
        -                                              @NotNull
        -                                              AutoshiftComponent autoshiftComponent,
        -                                              @Nullable
        -                                              java.lang.Double highGearAngularCoefficient)
        -
        Default constructor
        -
        -
        Parameters:
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be - considered on target. Multiply by loop period of ~20 milliseconds for time. - Defaults to 0.
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be - considered within tolerance.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output - is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given - to the motors. Defaults to zero.
        -
        maxAngularVelToEnterLoop - The maximum angular velocity, in degrees/sec, at which the loop will be - entered. Defaults to 180.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        driveStraightLoopEntryTimer - The buffer timer for starting to drive straight.
        -
        subsystem - The drive to execute this command on.
        -
        oi - The OI controlling the robot.
        -
        autoshiftComponent - The helper object for autoshifting.
        -
        highGearAngularCoefficient - The coefficient to multiply the loop output by in high gear. Defaults to 1.
        -
        -
      • -
      -
    • -
    - - -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-frame.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-frame.html deleted file mode 100644 index b46475c5..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-frame.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiInterface.drive (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.commands.multiInterface.drive

- - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-summary.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-summary.html deleted file mode 100644 index 64603a88..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-summary.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiInterface.drive (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.commands.multiInterface.drive

-
-
- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-tree.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-tree.html deleted file mode 100644 index a0bbe501..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/drive/package-tree.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiInterface.drive Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.commands.multiInterface.drive

-Package Hierarchies: - -
-
-

Class Hierarchy

- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-frame.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-frame.html deleted file mode 100644 index b3966c44..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiInterface (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.commands.multiInterface

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-summary.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-summary.html deleted file mode 100644 index 1cb40b0e..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiInterface (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.commands.multiInterface

-
-
- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-tree.html b/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-tree.html deleted file mode 100644 index b212c107..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiInterface/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiInterface Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.commands.multiInterface

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/FireShooter.html b/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/FireShooter.html deleted file mode 100644 index 66b41791..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/FireShooter.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - -FireShooter (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiSubsystem
-

Class FireShooter

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class FireShooter
    -extends YamlCommandGroupWrapper
    -
    Command group for firing the flywheel. Runs flywheel, runs static intake, stops dynamic intake, raises intake, and - runs feeder.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        FireShooter

        -
        public FireShooter(@Nullable
        -                   SubsystemFlywheel subsystemFlywheel,
        -                   @Nullable
        -                   SubsystemIntake subsystemIntake)
        -
        Constructs a FireShooter command group
        -
        -
        Parameters:
        -
        subsystemFlywheel - flywheel subsystem. Can be null.
        -
        subsystemIntake - intake subsystem. Can be null.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/LoadShooter.html b/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/LoadShooter.html deleted file mode 100644 index c31f5e42..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/LoadShooter.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -LoadShooter (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiSubsystem
-

Class LoadShooter<T extends SubsystemIntake & SubsystemSolenoid>

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class LoadShooter<T extends SubsystemIntake & SubsystemSolenoid>
    -extends YamlCommandGroupWrapper
    -
    Command group for intaking balls from the ground. Stops flywheel, runs static intake, runs dynamic intake, lowers - intake, and stops feeder.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      LoadShooter(SubsystemFlywheel subsystemFlywheel, - T subsystemIntake) -
      Constructs a LoadShooter command group
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        LoadShooter

        -
        public LoadShooter(@Nullable
        -                   SubsystemFlywheel subsystemFlywheel,
        -                   @Nullable
        -                   T subsystemIntake)
        -
        Constructs a LoadShooter command group
        -
        -
        Parameters:
        -
        subsystemFlywheel - flywheel subsystem. Can be null.
        -
        subsystemIntake - intake subsystem. Can be null.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/RackShooter.html b/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/RackShooter.html deleted file mode 100644 index 70c47261..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/RackShooter.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -RackShooter (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiSubsystem
-

Class RackShooter<T extends SubsystemIntake & SubsystemSolenoid>

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class RackShooter<T extends SubsystemIntake & SubsystemSolenoid>
    -extends YamlCommandGroupWrapper
    -
    Command group for preparing the flywheel to fire. Starts flywheel, runs static intake, stops dynamic intake, raises - intake, and stops feeder.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      RackShooter(SubsystemFlywheel subsystemFlywheel, - T subsystemIntake) -
      Constructs a RackShooter command group
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        RackShooter

        -
        public RackShooter(@Nullable
        -                   SubsystemFlywheel subsystemFlywheel,
        -                   @Nullable
        -                   T subsystemIntake)
        -
        Constructs a RackShooter command group
        -
        -
        Parameters:
        -
        subsystemFlywheel - flywheel subsystem. Can be null.
        -
        subsystemIntake - intake subsystem. Can be null.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/ResetShooter.html b/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/ResetShooter.html deleted file mode 100644 index 367de5eb..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/ResetShooter.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - -ResetShooter (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.commands.multiSubsystem
-

Class ResetShooter<T extends SubsystemIntake & SubsystemSolenoid>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ResetShooter(SubsystemFlywheel subsystemFlywheel, - T subsystemIntake) -
      Constructs a ResetShooter command group
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        ResetShooter

        -
        public ResetShooter(@Nullable
        -                    SubsystemFlywheel subsystemFlywheel,
        -                    @Nullable
        -                    T subsystemIntake)
        -
        Constructs a ResetShooter command group
        -
        -
        Parameters:
        -
        subsystemFlywheel - flywheel subsystem. Can be null.
        -
        subsystemIntake - intake subsystem. Can be null.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-frame.html b/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-frame.html deleted file mode 100644 index dad345bc..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-frame.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiSubsystem (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.commands.multiSubsystem

- - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-summary.html b/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-summary.html deleted file mode 100644 index bde19614..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-summary.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiSubsystem (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.commands.multiSubsystem

-
-
- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-tree.html b/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-tree.html deleted file mode 100644 index ae8c3e24..00000000 --- a/docs/org/usfirst/frc/team449/robot/commands/multiSubsystem/package-tree.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.commands.multiSubsystem Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.commands.multiSubsystem

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
            -
          • org.usfirst.frc.team449.robot.commands.multiSubsystem.FireShooter
          • -
          • org.usfirst.frc.team449.robot.commands.multiSubsystem.LoadShooter<T>
          • -
          • org.usfirst.frc.team449.robot.commands.multiSubsystem.RackShooter<T>
          • -
          • org.usfirst.frc.team449.robot.commands.multiSubsystem.ResetShooter<T>
          • -
          -
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/components/AHRSRumbleComponent.html b/docs/org/usfirst/frc/team449/robot/components/AHRSRumbleComponent.html deleted file mode 100644 index c9165e25..00000000 --- a/docs/org/usfirst/frc/team449/robot/components/AHRSRumbleComponent.html +++ /dev/null @@ -1,308 +0,0 @@ - - - - - -AHRSRumbleComponent (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.components
-

Class AHRSRumbleComponent

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.components.AHRSRumbleComponent
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    java.lang.Runnable, MappedRunnable
    -
    -
    -
    -
    public class AHRSRumbleComponent
    -extends java.lang.Object
    -implements MappedRunnable
    -
    A component to rumble controllers based off the jerk measurements from an AHRS.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      AHRSRumbleComponent(MappedAHRS ahrs, - java.util.List<Rumbleable> rumbleables, - double minJerk, - double maxJerk, - boolean yIsFrontBack, - boolean invertLeftRight) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidrun() -
      Read the NavX jerk data and rumble the joysticks based off of it.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        AHRSRumbleComponent

        -
        public AHRSRumbleComponent(@NotNull
        -                           MappedAHRS ahrs,
        -                           @NotNull
        -                           java.util.List<Rumbleable> rumbleables,
        -                           double minJerk,
        -                           double maxJerk,
        -                           boolean yIsFrontBack,
        -                           boolean invertLeftRight)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        ahrs - The NavX to get jerk measurements from.
        -
        rumbleables - The things to rumble.
        -
        minJerk - The minimum jerk that will trigger rumbling, in feet/(sec^3).
        -
        maxJerk - The jerk, in feet/(sec^3), that's scaled to maximum rumble. All jerks of greater magnitude - are capped at 1.
        -
        yIsFrontBack - Whether the NavX Y-axis measures forwards-back jerk or left-right jerk. Defaults to - false.
        -
        invertLeftRight - Whether to invert the left-right jerk measurement. Defaults to false.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        run

        -
        public void run()
        -
        Read the NavX jerk data and rumble the joysticks based off of it.
        -
        -
        Specified by:
        -
        run in interface java.lang.Runnable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/components/AutoshiftComponent.html b/docs/org/usfirst/frc/team449/robot/components/AutoshiftComponent.html deleted file mode 100644 index 14f8006d..00000000 --- a/docs/org/usfirst/frc/team449/robot/components/AutoshiftComponent.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -AutoshiftComponent (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.components
-

Class AutoshiftComponent

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.components.AutoshiftComponent
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class AutoshiftComponent
    -extends java.lang.Object
    -
    A component class for autoshifting.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      AutoshiftComponent(double upshiftSpeed, - double downshiftSpeed, - BufferTimer upshiftBufferTimer, - BufferTimer downshiftBufferTimer, - double upshiftFwdThresh, - double cooldownAfterUpshift, - double cooldownAfterDownshift) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidautoshift(double forwardThrottle, - double leftVel, - double rightVel, - java.util.function.Consumer<java.lang.Integer> shift) -
      Determine if the subsystem should shift, and if yes, do the shifting.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        AutoshiftComponent

        -
        public AutoshiftComponent(double upshiftSpeed,
        -                          double downshiftSpeed,
        -                          @NotNull
        -                          BufferTimer upshiftBufferTimer,
        -                          @NotNull
        -                          BufferTimer downshiftBufferTimer,
        -                          double upshiftFwdThresh,
        -                          double cooldownAfterUpshift,
        -                          double cooldownAfterDownshift)
        -
        Default constructor
        -
        -
        Parameters:
        -
        upshiftSpeed - The minimum speed both sides the drive must be going at to shift to high gear.
        -
        downshiftSpeed - The maximum speed both sides must be going at to shift to low gear.
        -
        upshiftBufferTimer - Buffer timer for upshifting.
        -
        downshiftBufferTimer - Buffer timer for downshifting.
        -
        cooldownAfterDownshift - The minimum time, in seconds, between downshifting and then upshifting again. - Defaults to 0.
        -
        cooldownAfterUpshift - The minimum time, in seconds, between upshifting and then downshifting again. - Defaults to 0.
        -
        upshiftFwdThresh - The minimum amount the forward joystick must be pushed forward in order to upshift, - on [0, 1]. Defaults to 0.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        autoshift

        -
        public void autoshift(double forwardThrottle,
        -                      double leftVel,
        -                      double rightVel,
        -                      java.util.function.Consumer<java.lang.Integer> shift)
        -
        Determine if the subsystem should shift, and if yes, do the shifting.
        -
        -
        Parameters:
        -
        forwardThrottle - The forwards throttle, on [-1, 1].
        -
        leftVel - The velocity of the left side of the drive.
        -
        rightVel - The velocity of the right side of the drive.
        -
        shift - The function to actually shift gears.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/components/ShiftComponent.html b/docs/org/usfirst/frc/team449/robot/components/ShiftComponent.html deleted file mode 100644 index 639e45dd..00000000 --- a/docs/org/usfirst/frc/team449/robot/components/ShiftComponent.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -ShiftComponent (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.components
-

Class ShiftComponent

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.components.ShiftComponent
    • -
    -
  • -
-
-
    -
  • -
    -
    Direct Known Subclasses:
    -
    ShiftWithSensorComponent
    -
    -
    -
    -
    public class ShiftComponent
    -extends java.lang.Object
    -
    A component that a subsystem can use to handle shifting gears.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected intcurrentGear -
      The gear this component is currently in.
      -
      protected java.util.List<Shiftable>otherShiftables -
      All objects that should be shifted when this component's piston is.
      -
      -
    • -
    - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      intgetCurrentGear() 
      protected voidshiftPiston(int gear) -
      Shifts the piston to the given gear.
      -
      voidshiftToGear(int gear) -
      Shifts to a given gear.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        otherShiftables

        -
        @NotNull
        -protected final java.util.List<Shiftable> otherShiftables
        -
        All objects that should be shifted when this component's piston is.
        -
      • -
      - - - -
        -
      • -

        currentGear

        -
        protected int currentGear
        -
        The gear this component is currently in.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ShiftComponent

        -
        public ShiftComponent(@NotNull
        -                      java.util.List<Shiftable> otherShiftables,
        -                      @NotNull
        -                      MappedDoubleSolenoid piston,
        -                      @Nullable
        -                      edu.wpi.first.wpilibj.DoubleSolenoid.Value lowGearPistonPos,
        -                      @Nullable
        -                      Shiftable.gear startingGear)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        otherShiftables - All objects that should be shifted when this component's piston is.
        -
        piston - The piston that shifts.
        -
        lowGearPistonPos - The piston position for low gear. Defaults to Forward.
        -
        startingGear - The gear to start in. Can be null, and if it is, the starting gear is gotten from the - piston's position.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        shiftToGear

        -
        public void shiftToGear(int gear)
        -
        Shifts to a given gear.
        -
        -
        Parameters:
        -
        gear - The gear to shift to.
        -
        -
      • -
      - - - -
        -
      • -

        getCurrentGear

        -
        public int getCurrentGear()
        -
        -
        Returns:
        -
        The gear the shifter is currently in.
        -
        -
      • -
      - - - -
        -
      • -

        shiftPiston

        -
        protected void shiftPiston(int gear)
        -
        Shifts the piston to the given gear.
        -
        -
        Parameters:
        -
        gear - The gear to shift to
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/components/ShiftWithSensorComponent.html b/docs/org/usfirst/frc/team449/robot/components/ShiftWithSensorComponent.html deleted file mode 100644 index 2ec77caa..00000000 --- a/docs/org/usfirst/frc/team449/robot/components/ShiftWithSensorComponent.html +++ /dev/null @@ -1,348 +0,0 @@ - - - - - -ShiftWithSensorComponent (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.components
-

Class ShiftWithSensorComponent

-
-
- -
-
    -
  • -
    -
    -
    public class ShiftWithSensorComponent
    -extends ShiftComponent
    -
    A component that a subsystem can use for shifting when the pistons have sensor to detect position.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ShiftWithSensorComponent

        -
        public ShiftWithSensorComponent(@NotNull
        -                                java.util.List<Shiftable> otherShiftables,
        -                                @NotNull
        -                                MappedDoubleSolenoid piston,
        -                                @Nullable
        -                                edu.wpi.first.wpilibj.DoubleSolenoid.Value lowGearPistonPos,
        -                                @Nullable
        -                                Shiftable.gear startingGear,
        -                                @NotNull
        -                                MappedDigitalInput highGearSensors,
        -                                @NotNull
        -                                MappedDigitalInput lowGearSensors,
        -                                @NotNull
        -                                java.util.List<SimpleMotor> motorsToDisable,
        -                                @NotNull
        -                                BufferTimer motorDisableTimer,
        -                                double sensorCheckerPeriodSecs)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        otherShiftables - All objects that should be shifted when this component's piston is.
        -
        piston - The piston that shifts.
        -
        lowGearPistonPos - The piston position for low gear. Defaults to Forward.
        -
        startingGear - The gear to start in. Can be null, and if it is, the starting gear is gotten from - the piston's position.
        -
        highGearSensors - The reed switches that detect if the shifter pistons are in high gear.
        -
        lowGearSensors - The reed switches that detect if the shifter pistons are in low gear.
        -
        motorsToDisable - The motors that should be disabled while the piston is shifting.
        -
        motorDisableTimer - The timer for how long the piston can be considered shifting before we ignore the - sensors and re-enable the motors.
        -
        sensorCheckerPeriodSecs - The period for the loop that checks the sensors and enables/disables the motors, - in seconds.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        shiftToGear

        -
        public void shiftToGear(int gear)
        -
        Shifts to a given gear.
        -
        -
        Overrides:
        -
        shiftToGear in class ShiftComponent
        -
        Parameters:
        -
        gear - The gear to shift to.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/components/package-frame.html b/docs/org/usfirst/frc/team449/robot/components/package-frame.html deleted file mode 100644 index 7b36936d..00000000 --- a/docs/org/usfirst/frc/team449/robot/components/package-frame.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.components (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.components

- - - diff --git a/docs/org/usfirst/frc/team449/robot/components/package-summary.html b/docs/org/usfirst/frc/team449/robot/components/package-summary.html deleted file mode 100644 index 3f0f537a..00000000 --- a/docs/org/usfirst/frc/team449/robot/components/package-summary.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.components (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.components

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    AHRSRumbleComponent -
    A component to rumble controllers based off the jerk measurements from an AHRS.
    -
    AutoshiftComponent -
    A component class for autoshifting.
    -
    ShiftComponent -
    A component that a subsystem can use to handle shifting gears.
    -
    ShiftWithSensorComponent -
    A component that a subsystem can use for shifting when the pistons have sensor to detect position.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/components/package-tree.html b/docs/org/usfirst/frc/team449/robot/components/package-tree.html deleted file mode 100644 index fbf805ef..00000000 --- a/docs/org/usfirst/frc/team449/robot/components/package-tree.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.components Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.components

-Package Hierarchies: - -
-
-

Class Hierarchy

- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/DriveSubsystem.html b/docs/org/usfirst/frc/team449/robot/drive/DriveSubsystem.html deleted file mode 100644 index 0958a052..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/DriveSubsystem.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - -DriveSubsystem (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive
-

Interface DriveSubsystem

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      voidenableMotors() -
      If this drive uses motors that can be disabled, enable them.
      -
      voidfullStop() -
      Completely stop the robot by setting the voltage to each side to be 0.
      -
      voidresetPosition() -
      Reset the position of the drive if it has encoders.
      -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        fullStop

        -
        void fullStop()
        -
        Completely stop the robot by setting the voltage to each side to be 0.
        -
      • -
      - - - -
        -
      • -

        enableMotors

        -
        void enableMotors()
        -
        If this drive uses motors that can be disabled, enable them.
        -
      • -
      - - - -
        -
      • -

        resetPosition

        -
        void resetPosition()
        -
        Reset the position of the drive if it has encoders.
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/commands/EnableMotors.html b/docs/org/usfirst/frc/team449/robot/drive/commands/EnableMotors.html deleted file mode 100644 index b0413138..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/commands/EnableMotors.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -EnableMotors (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.commands
-

Class EnableMotors

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class EnableMotors
    -extends YamlCommandWrapper
    -
    Enables the motors of the given drive subsystem.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      EnableMotors(DriveSubsystem subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Do the state change.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        EnableMotors

        -
        public EnableMotors(@NotNull
        -                    DriveSubsystem subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Do the state change.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/commands/ResetPosition.html b/docs/org/usfirst/frc/team449/robot/drive/commands/ResetPosition.html deleted file mode 100644 index db2fdfa5..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/commands/ResetPosition.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -ResetPosition (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.commands
-

Class ResetPosition

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ResetPosition
    -extends YamlCommandWrapper
    -
    Resets the positions of the motors of the given drive subsystem.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Do the state change.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ResetPosition

        -
        public ResetPosition(@NotNull
        -                     DriveSubsystem subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Do the state change.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/drive/commands/package-frame.html deleted file mode 100644 index a1e2ed4a..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/commands/package-frame.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.drive.commands

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/drive/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/drive/commands/package-summary.html deleted file mode 100644 index cd23386a..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/commands/package-summary.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.drive.commands

-
-
-
    -
  • - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    EnableMotors -
    Enables the motors of the given drive subsystem.
    -
    ResetPosition -
    Resets the positions of the motors of the given drive subsystem.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/drive/commands/package-tree.html deleted file mode 100644 index f61f7412..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/commands/package-tree.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.drive.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/package-frame.html b/docs/org/usfirst/frc/team449/robot/drive/package-frame.html deleted file mode 100644 index 31fd8d85..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.drive

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/drive/package-summary.html b/docs/org/usfirst/frc/team449/robot/drive/package-summary.html deleted file mode 100644 index 46604b8e..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.drive

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    DriveSubsystem -
    Any locomotion device for the robot.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/package-tree.html b/docs/org/usfirst/frc/team449/robot/drive/package-tree.html deleted file mode 100644 index 3ed52a9b..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/package-tree.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.drive

-Package Hierarchies: - -
-
-

Interface Hierarchy

- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/DriveShiftable.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/DriveShiftable.html deleted file mode 100644 index 82d741ec..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/DriveShiftable.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - -DriveShiftable (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.shifting
-

Interface DriveShiftable

-
-
-
-
    -
  • -
    -
    All Superinterfaces:
    -
    Shiftable
    -
    -
    -
    All Known Implementing Classes:
    -
    DriveTalonClusterShiftable
    -
    -
    -
    -
    public interface DriveShiftable
    -extends Shiftable
    -
    A drive that has a high gear and a low gear and can switch between them.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getOverrideAutoshift

        -
        boolean getOverrideAutoshift()
        -
        -
        Returns:
        -
        true if currently overriding autoshifting, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        setOverrideAutoshift

        -
        void setOverrideAutoshift(boolean override)
        -
        -
        Parameters:
        -
        override - Whether or not to override autoshifting.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/OverrideAutoShift.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/OverrideAutoShift.html deleted file mode 100644 index 6248c7ee..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/OverrideAutoShift.html +++ /dev/null @@ -1,398 +0,0 @@ - - - - - -OverrideAutoShift (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.shifting.commands
-

Class OverrideAutoShift

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class OverrideAutoShift
    -extends YamlCommandWrapper
    -
    Override or unoverride whether we're autoshifting. Used to stay in low gear for pushing matches and more!
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends.
      -
      protected voidexecute() -
      Override autoshifting.
      -
      protected voidinitialize() -
      Log on initialization
      -
      protected voidinterrupted() -
      Log when interrupted
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OverrideAutoShift

        -
        public OverrideAutoShift(@NotNull
        -                         DriveShiftable drive,
        -                         boolean override)
        -
        Default constructor
        -
        -
        Parameters:
        -
        drive - The drive subsystem to execute this command on.
        -
        override - Whether or not to override autoshifting.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log on initialization
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Override autoshifting.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when interrupted
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/ToggleOverrideAutoShift.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/ToggleOverrideAutoShift.html deleted file mode 100644 index 01d11906..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/ToggleOverrideAutoShift.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -ToggleOverrideAutoShift (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.shifting.commands
-

Class ToggleOverrideAutoShift

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ToggleOverrideAutoShift
    -extends YamlCommandWrapper
    -
    Override or unoverride whether we're autoshifting. Used to stay in low gear for pushing matches and more!
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends.
      -
      protected voidexecute() -
      Toggle overriding autoshifting.
      -
      protected voidinitialize() -
      Log on initialization
      -
      protected voidinterrupted() -
      Log when interrupted
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ToggleOverrideAutoShift

        -
        public ToggleOverrideAutoShift(@NotNull
        -                               DriveShiftable drive)
        -
        Default constructor
        -
        -
        Parameters:
        -
        drive - The drive subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log on initialization
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Toggle overriding autoshifting.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when interrupted
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-frame.html deleted file mode 100644 index 9a9b2e46..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-frame.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.shifting.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.drive.shifting.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-summary.html deleted file mode 100644 index da6515a6..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-summary.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.shifting.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.drive.shifting.commands

-
-
-
    -
  • - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    OverrideAutoShift -
    Override or unoverride whether we're autoshifting.
    -
    ToggleOverrideAutoShift -
    Override or unoverride whether we're autoshifting.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-tree.html deleted file mode 100644 index b59476cc..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/commands/package-tree.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.shifting.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.drive.shifting.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/package-frame.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/package-frame.html deleted file mode 100644 index cd13391c..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.shifting (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.drive.shifting

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/package-summary.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/package-summary.html deleted file mode 100644 index 6a990cbf..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.shifting (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.drive.shifting

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    DriveShiftable -
    A drive that has a high gear and a low gear and can switch between them.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/shifting/package-tree.html b/docs/org/usfirst/frc/team449/robot/drive/shifting/package-tree.html deleted file mode 100644 index 93ac2e79..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/shifting/package-tree.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.shifting Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.drive.shifting

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable - -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonCluster.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonCluster.html deleted file mode 100644 index 45ec6ee1..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonCluster.html +++ /dev/null @@ -1,1147 +0,0 @@ - - - - - -DriveTalonCluster (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional
-

Class DriveTalonCluster

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected FPSTalonleftMaster -
      Left master Talon
      -
      protected FPSTalonrightMaster -
      Right master Talon
      -
      protected doubleVEL_SCALE -
      Joystick scaling constant.
      -
      -
    • -
    - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voiddisable() -
      Disable the motors.
      -
      voidenableMotors() -
      If this drive uses motors that can be disabled, enable them.
      -
      voidfullStop() -
      Completely stop the robot by setting the voltage to each side to be 0.
      -
      doublegetAngularDisplacement() -
      Get the robot's angular displacement since being turned on.
      -
      doublegetAngularDisplacementCached() -
      Get the robot's cached angular displacement since being turned on.
      -
      doublegetAngularVel() -
      Get the robot's angular velocity.
      -
      doublegetAngularVelCached() -
      Get the robot's cached angular velocity.
      -
      java.lang.Object[]getData() -
      Get the data this subsystem logs every loop.
      -
      java.lang.String[]getHeader() -
      Get the headers for the data this subsystem logs every loop.
      -
      doublegetHeading() -
      Get the robot's heading using the AHRS
      -
      doublegetHeadingCached() -
      Get the robot's cached heading.
      -
      java.lang.DoublegetLeftPos() -
      Get the position of the left side of the drive.
      -
      java.lang.DoublegetLeftPosCached() -
      Get the cached position of the left side of the drive.
      -
      java.lang.DoublegetLeftVel() -
      Get the velocity of the left side of the drive.
      -
      java.lang.DoublegetLeftVelCached() -
      Get the cached velocity of the left side of the drive.
      -
      java.lang.StringgetName() -
      Get the name of this object.
      -
      booleangetOverrideGyro() 
      java.lang.DoublegetRightPos() -
      Get the position of the right side of the drive.
      -
      java.lang.DoublegetRightPosCached() -
      Get the cached position of the right side of the drive.
      -
      java.lang.DoublegetRightVel() -
      Get the velocity of the right side of the drive.
      -
      java.lang.DoublegetRightVelCached() -
      Get the cached velocity of the right side of the drive.
      -
      voidholdPosition() -
      Hold the current position.
      -
      protected voidinitDefaultCommand() -
      Stuff run on first enable.
      -
      voidloadMotionProfile(MotionProfileData profile) -
      Loads a profile into the MP buffer.
      -
      voidloadMotionProfile(MotionProfileData left, - MotionProfileData right) -
      Loads given profiles into the left and right sides of the drive.
      -
      booleanprofileFinished() -
      Get whether this subsystem has finished running the profile loaded in it.
      -
      booleanreadyToRunProfile() -
      Get whether the subsystem is ready to run the loaded profile.
      -
      voidresetPosition() -
      Reset the position of the drive if it has encoders.
      -
      voidsetDefaultCommandManual(edu.wpi.first.wpilibj.command.Command defaultCommand) -
      Set the default command.
      -
      voidsetHeading(double heading) -
      Set the robot's heading.
      -
      voidsetOutput(double left, - double right) -
      Set the output of each side of the drive.
      -
      voidsetOverrideGyro(boolean override) 
      voidstartRunningLoadedProfile() -
      Start running the profile that's currently loaded into the MP buffer.
      -
      voidstopMPProcesses() -
      Stops any MP-related threads currently running.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getSmartDashboardType, getTable, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        VEL_SCALE

        -
        protected final double VEL_SCALE
        -
        Joystick scaling constant. Joystick output is scaled by this before being handed to the motors.
        -
      • -
      - - - -
        -
      • -

        rightMaster

        -
        @NotNull
        -protected final FPSTalon rightMaster
        -
        Right master Talon
        -
      • -
      - - - -
        -
      • -

        leftMaster

        -
        @NotNull
        -protected final FPSTalon leftMaster
        -
        Left master Talon
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        DriveTalonCluster

        -
        public DriveTalonCluster(@NotNull
        -                         FPSTalon leftMaster,
        -                         @NotNull
        -                         FPSTalon rightMaster,
        -                         @NotNull
        -                         MappedAHRS ahrs,
        -                         @Nullable
        -                         java.lang.Double VelScale)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        leftMaster - The master talon on the left side of the drive.
        -
        rightMaster - The master talon on the right side of the drive.
        -
        ahrs - The NavX gyro for calculating this drive's heading and angular velocity.
        -
        VelScale - The amount to scale the output to the motor by. Defaults to 1.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setOutput

        -
        public void setOutput(double left,
        -                      double right)
        -
        Set the output of each side of the drive.
        -
        -
        Specified by:
        -
        setOutput in interface DriveUnidirectional
        -
        Parameters:
        -
        left - The output for the left side of the drive, from [-1, 1]
        -
        right - the output for the right side of the drive, from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getLeftVel

        -
        @Nullable
        -public java.lang.Double getLeftVel()
        -
        Get the velocity of the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftVel in interface DriveUnidirectional
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightVel

        -
        @Nullable
        -public java.lang.Double getRightVel()
        -
        Get the velocity of the right side of the drive.
        -
        -
        Specified by:
        -
        getRightVel in interface DriveUnidirectional
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftPos

        -
        @Nullable
        -public java.lang.Double getLeftPos()
        -
        Get the position of the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftPos in interface DriveUnidirectional
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightPos

        -
        @Nullable
        -public java.lang.Double getRightPos()
        -
        Get the position of the right side of the drive.
        -
        -
        Specified by:
        -
        getRightPos in interface DriveUnidirectional
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftVelCached

        -
        @Nullable
        -public java.lang.Double getLeftVelCached()
        -
        Get the cached velocity of the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftVelCached in interface DriveUnidirectional
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightVelCached

        -
        @Nullable
        -public java.lang.Double getRightVelCached()
        -
        Get the cached velocity of the right side of the drive.
        -
        -
        Specified by:
        -
        getRightVelCached in interface DriveUnidirectional
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftPosCached

        -
        @Nullable
        -public java.lang.Double getLeftPosCached()
        -
        Get the cached position of the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftPosCached in interface DriveUnidirectional
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightPosCached

        -
        @Nullable
        -public java.lang.Double getRightPosCached()
        -
        Get the cached position of the right side of the drive.
        -
        -
        Specified by:
        -
        getRightPosCached in interface DriveUnidirectional
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        fullStop

        -
        public void fullStop()
        -
        Completely stop the robot by setting the voltage to each side to be 0.
        -
        -
        Specified by:
        -
        fullStop in interface DriveSubsystem
        -
        -
      • -
      - - - -
        -
      • -

        enableMotors

        -
        public void enableMotors()
        -
        If this drive uses motors that can be disabled, enable them.
        -
        -
        Specified by:
        -
        enableMotors in interface DriveSubsystem
        -
        -
      • -
      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Stuff run on first enable.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - -
        -
      • -

        setDefaultCommandManual

        -
        public void setDefaultCommandManual(edu.wpi.first.wpilibj.command.Command defaultCommand)
        -
        Set the default command. Done here instead of in initDefaultCommand so we don't have a defaultCommand during - auto.
        -
        -
        Parameters:
        -
        defaultCommand - The command to have run by default. Must require this subsystem.
        -
        -
      • -
      - - - -
        -
      • -

        getHeading

        -
        public double getHeading()
        -
        Get the robot's heading using the AHRS
        -
        -
        Specified by:
        -
        getHeading in interface SubsystemAHRS
        -
        Returns:
        -
        robot heading, in degrees, on [-180, 180]
        -
        -
      • -
      - - - -
        -
      • -

        setHeading

        -
        public void setHeading(double heading)
        -
        Set the robot's heading.
        -
        -
        Specified by:
        -
        setHeading in interface SubsystemAHRS
        -
        Parameters:
        -
        heading - The heading to set to, in degrees on [-180, 180].
        -
        -
      • -
      - - - -
        -
      • -

        getHeadingCached

        -
        public double getHeadingCached()
        -
        Get the robot's cached heading.
        -
        -
        Specified by:
        -
        getHeadingCached in interface SubsystemAHRS
        -
        Returns:
        -
        robot heading, in degrees, on [-180, 180].
        -
        -
      • -
      - - - -
        -
      • -

        getAngularVel

        -
        public double getAngularVel()
        -
        Get the robot's angular velocity.
        -
        -
        Specified by:
        -
        getAngularVel in interface SubsystemAHRS
        -
        Returns:
        -
        Angular velocity in degrees/sec
        -
        -
      • -
      - - - -
        -
      • -

        getAngularVelCached

        -
        public double getAngularVelCached()
        -
        Get the robot's cached angular velocity.
        -
        -
        Specified by:
        -
        getAngularVelCached in interface SubsystemAHRS
        -
        Returns:
        -
        Angular velocity in degrees/sec
        -
        -
      • -
      - - - -
        -
      • -

        getAngularDisplacement

        -
        public double getAngularDisplacement()
        -
        Get the robot's angular displacement since being turned on.
        -
        -
        Specified by:
        -
        getAngularDisplacement in interface SubsystemAHRS
        -
        Returns:
        -
        Angular displacement in degrees.
        -
        -
      • -
      - - - -
        -
      • -

        getAngularDisplacementCached

        -
        public double getAngularDisplacementCached()
        -
        Get the robot's cached angular displacement since being turned on.
        -
        -
        Specified by:
        -
        getAngularDisplacementCached in interface SubsystemAHRS
        -
        Returns:
        -
        Angular displacement in degrees.
        -
        -
      • -
      - - - -
        -
      • -

        getOverrideGyro

        -
        public boolean getOverrideGyro()
        -
        -
        Specified by:
        -
        getOverrideGyro in interface SubsystemAHRS
        -
        Returns:
        -
        true if the NavX is currently overriden, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        setOverrideGyro

        -
        public void setOverrideGyro(boolean override)
        -
        -
        Specified by:
        -
        setOverrideGyro in interface SubsystemAHRS
        -
        Parameters:
        -
        override - true to override the NavX, false to un-override it.
        -
        -
      • -
      - - - -
        -
      • -

        getHeader

        -
        @NotNull
        - @Contract(pure=true)
        -public java.lang.String[] getHeader()
        -
        Get the headers for the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getHeader in interface Loggable
        -
        Returns:
        -
        An N-length array of String labels for data, where N is the length of the Object[] returned by getData().
        -
        -
      • -
      - - - -
        -
      • -

        getData

        -
        @NotNull
        -public java.lang.Object[] getData()
        -
        Get the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getData in interface Loggable
        -
        Returns:
        -
        An N-length array of Objects, where N is the number of labels given by getHeader.
        -
        -
      • -
      - - - -
        -
      • -

        getName

        -
        @NotNull
        - @Contract(pure=true)
        -public java.lang.String getName()
        -
        Get the name of this object.
        -
        -
        Specified by:
        -
        getName in interface edu.wpi.first.wpilibj.NamedSendable
        -
        Specified by:
        -
        getName in interface Loggable
        -
        Overrides:
        -
        getName in class edu.wpi.first.wpilibj.command.Subsystem
        -
        Returns:
        -
        A string that will identify this object in the log file.
        -
        -
      • -
      - - - -
        -
      • -

        loadMotionProfile

        -
        public void loadMotionProfile(@NotNull
        -                              MotionProfileData profile)
        -
        Loads a profile into the MP buffer.
        -
        -
        Specified by:
        -
        loadMotionProfile in interface SubsystemMP
        -
        Parameters:
        -
        profile - The profile to be loaded.
        -
        -
      • -
      - - - -
        -
      • -

        loadMotionProfile

        -
        public void loadMotionProfile(@NotNull
        -                              MotionProfileData left,
        -                              @NotNull
        -                              MotionProfileData right)
        -
        Loads given profiles into the left and right sides of the drive.
        -
        -
        Specified by:
        -
        loadMotionProfile in interface SubsystemMPTwoSides
        -
        Parameters:
        -
        left - The profile to load into the left side.
        -
        right - The profile to load into the right side.
        -
        -
      • -
      - - - -
        -
      • -

        startRunningLoadedProfile

        -
        public void startRunningLoadedProfile()
        -
        Start running the profile that's currently loaded into the MP buffer.
        -
        -
        Specified by:
        -
        startRunningLoadedProfile in interface SubsystemMP
        -
        -
      • -
      - - - -
        -
      • -

        profileFinished

        -
        public boolean profileFinished()
        -
        Get whether this subsystem has finished running the profile loaded in it.
        -
        -
        Specified by:
        -
        profileFinished in interface SubsystemMP
        -
        Returns:
        -
        true if there's no profile loaded and no profile running, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        disable

        -
        public void disable()
        -
        Disable the motors.
        -
        -
        Specified by:
        -
        disable in interface SubsystemMP
        -
        -
      • -
      - - - -
        -
      • -

        holdPosition

        -
        public void holdPosition()
        -
        Hold the current position.
        -
        -
        Specified by:
        -
        holdPosition in interface SubsystemMP
        -
        -
      • -
      - - - -
        -
      • -

        readyToRunProfile

        -
        public boolean readyToRunProfile()
        -
        Get whether the subsystem is ready to run the loaded profile.
        -
        -
        Specified by:
        -
        readyToRunProfile in interface SubsystemMP
        -
        Returns:
        -
        true if a profile is loaded and ready to run, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        stopMPProcesses

        -
        public void stopMPProcesses()
        -
        Stops any MP-related threads currently running. Normally called at the start of teleop.
        -
        -
        Specified by:
        -
        stopMPProcesses in interface SubsystemMP
        -
        -
      • -
      - - - -
        -
      • -

        resetPosition

        -
        public void resetPosition()
        -
        Reset the position of the drive if it has encoders.
        -
        -
        Specified by:
        -
        resetPosition in interface DriveSubsystem
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonClusterShiftable.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonClusterShiftable.html deleted file mode 100644 index 69b790f1..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveTalonClusterShiftable.html +++ /dev/null @@ -1,454 +0,0 @@ - - - - - -DriveTalonClusterShiftable (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional
-

Class DriveTalonClusterShiftable

-
-
- -
- -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        DriveTalonClusterShiftable

        -
        public DriveTalonClusterShiftable(@NotNull
        -                                  FPSTalon leftMaster,
        -                                  @NotNull
        -                                  FPSTalon rightMaster,
        -                                  @NotNull
        -                                  MappedAHRS ahrs,
        -                                  @Nullable
        -                                  java.lang.Double VelScale,
        -                                  @NotNull
        -                                  ShiftComponent shiftComponent,
        -                                  boolean startingOverrideAutoshift)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        leftMaster - The master talon on the left side of the drive.
        -
        rightMaster - The master talon on the right side of the drive.
        -
        ahrs - The NavX on this drive.
        -
        VelScale - The amount to scale the output to the motor by. Defaults to 1.
        -
        shiftComponent - The component that controls shifting.
        -
        startingOverrideAutoshift - Whether to start with autoshift disabled. Defaults to false.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getOverrideAutoshift

        -
        public boolean getOverrideAutoshift()
        -
        -
        Specified by:
        -
        getOverrideAutoshift in interface DriveShiftable
        -
        Returns:
        -
        true if currently overriding autoshifting, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        setOverrideAutoshift

        -
        public void setOverrideAutoshift(boolean override)
        -
        -
        Specified by:
        -
        setOverrideAutoshift in interface DriveShiftable
        -
        Parameters:
        -
        override - Whether or not to override autoshifting.
        -
        -
      • -
      - - - -
        -
      • -

        setOutput

        -
        public void setOutput(double left,
        -                      double right)
        -
        Set the output of each side of the drive.
        -
        -
        Specified by:
        -
        setOutput in interface DriveUnidirectional
        -
        Overrides:
        -
        setOutput in class DriveTalonCluster
        -
        Parameters:
        -
        left - The output for the left side of the drive, from [-1, 1]
        -
        right - the output for the right side of the drive, from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getGear

        -
        public int getGear()
        -
        -
        Specified by:
        -
        getGear in interface Shiftable
        -
        Returns:
        -
        The gear this subsystem is currently in.
        -
        -
      • -
      - - - -
        -
      • -

        setGear

        -
        public void setGear(int gear)
        -
        Shift to a specific gear.
        -
        -
        Specified by:
        -
        setGear in interface Shiftable
        -
        Parameters:
        -
        gear - Which gear to shift to.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectional.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectional.html deleted file mode 100644 index a5f07776..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectional.html +++ /dev/null @@ -1,422 +0,0 @@ - - - - - -DriveUnidirectional (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional
-

Interface DriveUnidirectional

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      java.lang.DoublegetLeftPos() -
      Get the position of the left side of the drive.
      -
      java.lang.DoublegetLeftPosCached() -
      Get the cached position of the left side of the drive.
      -
      java.lang.DoublegetLeftVel() -
      Get the velocity of the left side of the drive.
      -
      java.lang.DoublegetLeftVelCached() -
      Get the cached velocity of the left side of the drive.
      -
      java.lang.DoublegetRightPos() -
      Get the position of the right side of the drive.
      -
      java.lang.DoublegetRightPosCached() -
      Get the cached position of the right side of the drive.
      -
      java.lang.DoublegetRightVel() -
      Get the velocity of the right side of the drive.
      -
      java.lang.DoublegetRightVelCached() -
      Get the cached velocity of the right side of the drive.
      -
      voidsetOutput(double left, - double right) -
      Set the output of each side of the drive.
      -
      - -
        -
      • - - -

        Methods inherited from interface org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable

        -update
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setOutput

        -
        void setOutput(double left,
        -               double right)
        -
        Set the output of each side of the drive.
        -
        -
        Parameters:
        -
        left - The output for the left side of the drive, from [-1, 1]
        -
        right - the output for the right side of the drive, from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getLeftVel

        -
        @Nullable
        -java.lang.Double getLeftVel()
        -
        Get the velocity of the left side of the drive.
        -
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightVel

        -
        @Nullable
        -java.lang.Double getRightVel()
        -
        Get the velocity of the right side of the drive.
        -
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftPos

        -
        @Nullable
        -java.lang.Double getLeftPos()
        -
        Get the position of the left side of the drive.
        -
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightPos

        -
        @Nullable
        -java.lang.Double getRightPos()
        -
        Get the position of the right side of the drive.
        -
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftVelCached

        -
        @Nullable
        -java.lang.Double getLeftVelCached()
        -
        Get the cached velocity of the left side of the drive.
        -
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightVelCached

        -
        @Nullable
        -java.lang.Double getRightVelCached()
        -
        Get the cached velocity of the right side of the drive.
        -
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftPosCached

        -
        @Nullable
        -java.lang.Double getLeftPosCached()
        -
        Get the cached position of the left side of the drive.
        -
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightPosCached

        -
        @Nullable
        -java.lang.Double getRightPosCached()
        -
        Get the cached position of the right side of the drive.
        -
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectionalSimple.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectionalSimple.html deleted file mode 100644 index 65c22480..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/DriveUnidirectionalSimple.html +++ /dev/null @@ -1,602 +0,0 @@ - - - - - -DriveUnidirectionalSimple (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional
-

Class DriveUnidirectionalSimple

-
-
- -
- -
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidenableMotors() -
      If this drive uses motors that can be disabled, enable them.
      -
      voidfullStop() -
      Completely stop the robot by setting the voltage to each side to be 0.
      -
      java.lang.DoublegetLeftPos() -
      Get the position of the left side of the drive.
      -
      java.lang.DoublegetLeftPosCached() -
      Get the cached position of the left side of the drive.
      -
      java.lang.DoublegetLeftVel() -
      Get the velocity of the left side of the drive.
      -
      java.lang.DoublegetLeftVelCached() -
      Get the cached velocity of the left side of the drive.
      -
      java.lang.DoublegetRightPos() -
      Get the position of the right side of the drive.
      -
      java.lang.DoublegetRightPosCached() -
      Get the cached position of the right side of the drive.
      -
      java.lang.DoublegetRightVel() -
      Get the velocity of the right side of the drive.
      -
      java.lang.DoublegetRightVelCached() -
      Get the cached velocity of the right side of the drive.
      -
      protected voidinitDefaultCommand() -
      Initialize the default command for a subsystem.
      -
      voidresetPosition() -
      Reset the position of the drive if it has encoders.
      -
      voidsetOutput(double left, - double right) -
      Set the output of each side of the drive.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getName, getSmartDashboardType, getTable, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        DriveUnidirectionalSimple

        -
        public DriveUnidirectionalSimple(@NotNull
        -                                 SimpleMotor leftMotor,
        -                                 @NotNull
        -                                 SimpleMotor rightMotor)
        -
        Default constructor
        -
        -
        Parameters:
        -
        leftMotor - The motor for the left side of the drive.
        -
        rightMotor - The motor for the right side of the drive.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - after all the Subsystems are created.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - -
        -
      • -

        setOutput

        -
        public void setOutput(double left,
        -                      double right)
        -
        Set the output of each side of the drive.
        -
        -
        Specified by:
        -
        setOutput in interface DriveUnidirectional
        -
        Parameters:
        -
        left - The output for the left side of the drive, from [-1, 1]
        -
        right - the output for the right side of the drive, from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getLeftVel

        -
        @Nullable
        -public java.lang.Double getLeftVel()
        -
        Get the velocity of the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftVel in interface DriveUnidirectional
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightVel

        -
        @Nullable
        -public java.lang.Double getRightVel()
        -
        Get the velocity of the right side of the drive.
        -
        -
        Specified by:
        -
        getRightVel in interface DriveUnidirectional
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftPos

        -
        @Nullable
        -public java.lang.Double getLeftPos()
        -
        Get the position of the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftPos in interface DriveUnidirectional
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightPos

        -
        @Nullable
        -public java.lang.Double getRightPos()
        -
        Get the position of the right side of the drive.
        -
        -
        Specified by:
        -
        getRightPos in interface DriveUnidirectional
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftVelCached

        -
        @Nullable
        -public java.lang.Double getLeftVelCached()
        -
        Get the cached velocity of the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftVelCached in interface DriveUnidirectional
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightVelCached

        -
        @Nullable
        -public java.lang.Double getRightVelCached()
        -
        Get the cached velocity of the right side of the drive.
        -
        -
        Specified by:
        -
        getRightVelCached in interface DriveUnidirectional
        -
        Returns:
        -
        The signed velocity in feet per second, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftPosCached

        -
        @Nullable
        -public java.lang.Double getLeftPosCached()
        -
        Get the cached position of the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftPosCached in interface DriveUnidirectional
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        getRightPosCached

        -
        @Nullable
        -public java.lang.Double getRightPosCached()
        -
        Get the cached position of the right side of the drive.
        -
        -
        Specified by:
        -
        getRightPosCached in interface DriveUnidirectional
        -
        Returns:
        -
        The signed position in feet, or null if the drive doesn't have encoders.
        -
        -
      • -
      - - - -
        -
      • -

        fullStop

        -
        public void fullStop()
        -
        Completely stop the robot by setting the voltage to each side to be 0.
        -
        -
        Specified by:
        -
        fullStop in interface DriveSubsystem
        -
        -
      • -
      - - - -
        -
      • -

        enableMotors

        -
        public void enableMotors()
        -
        If this drive uses motors that can be disabled, enable them.
        -
        -
        Specified by:
        -
        enableMotors in interface DriveSubsystem
        -
        -
      • -
      - - - -
        -
      • -

        resetPosition

        -
        public void resetPosition()
        -
        Reset the position of the drive if it has encoders.
        -
        -
        Specified by:
        -
        resetPosition in interface DriveSubsystem
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineNominalVoltage.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineNominalVoltage.html deleted file mode 100644 index b71337b6..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineNominalVoltage.html +++ /dev/null @@ -1,400 +0,0 @@ - - - - - -DetermineNominalVoltage (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands
-

Class DetermineNominalVoltage<T extends YamlSubsystem & DriveUnidirectional>

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class DetermineNominalVoltage<T extends YamlSubsystem & DriveUnidirectional>
    -extends YamlCommandWrapper
    -
    Run the motors until they move, slowly increasing the voltage up from 0.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      DetermineNominalVoltage(T subsystem, - double minSpeed) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Stop the drive and log when the command ends.
      -
      protected voidexecute() -
      Send output to motors
      -
      protected voidinitialize() -
      Log initialization
      -
      protected voidinterrupted() -
      Log and stop the drive when the command is interrupted.
      -
      protected booleanisFinished() -
      Exit if the motors are moving.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        DetermineNominalVoltage

        -
        public DetermineNominalVoltage(@NotNull
        -                               T subsystem,
        -                               double minSpeed)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on
        -
        minSpeed - The minimum speed, in RPS, at which the drive is considered to be moving.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log initialization
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Send output to motors
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Exit if the motors are moving.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        True if the motors are moving, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Stop the drive and log when the command ends.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log and stop the drive when the command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineVelVsVoltage.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineVelVsVoltage.html deleted file mode 100644 index a3f1dfc1..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DetermineVelVsVoltage.html +++ /dev/null @@ -1,406 +0,0 @@ - - - - - -DetermineVelVsVoltage (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands
-

Class DetermineVelVsVoltage<T extends YamlSubsystem & DriveUnidirectional>

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class DetermineVelVsVoltage<T extends YamlSubsystem & DriveUnidirectional>
    -extends YamlCommandWrapper
    -
    A command to run the robot at a range of voltages and record the velocity.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      DetermineVelVsVoltage(T subsystem, - double distanceToDrive, - int numTrials, - double[] voltagesToTest) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Do nothing, no logging because we want to be able to use R's subset method to find the max speeds.
      -
      protected voidexecute() -
      Update the max speed for this trial and check if this trial is finished.
      -
      protected voidinitialize() -
      Reset the encoder position and variables.
      -
      protected voidinterrupted() -
      Log when interrupted.
      -
      protected booleanisFinished() -
      Finish when all trials have been run.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        DetermineVelVsVoltage

        -
        public DetermineVelVsVoltage(@NotNull
        -                             T subsystem,
        -                             double distanceToDrive,
        -                             int numTrials,
        -                             double[] voltagesToTest)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        distanceToDrive - How far, in feet, to drive for each trial.
        -
        numTrials - How many trials to do for each voltage.
        -
        voltagesToTest - A list of all the voltages to be tested, from (0, 12].
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Reset the encoder position and variables.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Update the max speed for this trial and check if this trial is finished.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish when all trials have been run.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true if all trials have be run, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Do nothing, no logging because we want to be able to use R's subset method to find the max speeds.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveAtSpeed.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveAtSpeed.html deleted file mode 100644 index 30845f99..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveAtSpeed.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - - -DriveAtSpeed (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands
-

Class DriveAtSpeed<T extends YamlSubsystem & DriveUnidirectional>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      DriveAtSpeed(T subsystem, - double velocity, - double seconds) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Stop the drive when the command ends.
      -
      protected voidexecute() -
      Send output to motors and log data
      -
      protected voidinitialize() -
      Set up start time.
      -
      protected voidinterrupted() -
      Log and stop the drive when the command is interrupted.
      -
      protected booleanisFinished() -
      Exit after the command's been running for long enough
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        DriveAtSpeed

        -
        public DriveAtSpeed(@NotNull
        -                    T subsystem,
        -                    double velocity,
        -                    double seconds)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The drive to execute this command on
        -
        velocity - How fast to go, in RPS
        -
        seconds - How long to drive for.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Set up start time.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Send output to motors and log data
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Exit after the command's been running for long enough
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        True if timeout has been reached, false otherwise
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Stop the drive when the command ends.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log and stop the drive when the command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveStraight.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveStraight.html deleted file mode 100644 index ff0850f3..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/DriveStraight.html +++ /dev/null @@ -1,384 +0,0 @@ - - - - - -DriveStraight (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands
-

Class DriveStraight<T extends YamlSubsystem & DriveUnidirectional>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      DriveStraight(T subsystem, - OITank oi, - boolean useLeft) -
      Drive straight without NavX stabilization.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidexecute() -
      Give output to the motors based on the joystick input.
      -
      protected voidinitialize() -
      Stop the drive for safety reasons.
      -
      protected voidinterrupted() -
      Log and brake when interrupted.
      -
      protected booleanisFinished() -
      Runs constantly because this is a drive command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, end, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        DriveStraight

        -
        public DriveStraight(@NotNull
        -                     T subsystem,
        -                     @NotNull
        -                     OITank oi,
        -                     boolean useLeft)
        -
        Drive straight without NavX stabilization.
        -
        -
        Parameters:
        -
        subsystem - The drive subsystem to execute this command on.
        -
        oi - The oi to get input from.
        -
        useLeft - true to use the left stick to drive straight, false to use the right.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Stop the drive for safety reasons.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Give output to the motors based on the joystick input.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Runs constantly because this is a drive command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        false
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log and brake when interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDBackAndForth.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDBackAndForth.html deleted file mode 100644 index a23a7196..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDBackAndForth.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -PIDBackAndForth (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands
-

Class PIDBackAndForth<T extends YamlSubsystem & DriveUnidirectional>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      PIDBackAndForth(T subsystem, - double speed, - double timeInSecs) -
      Instantiate the CommandGroup
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        PIDBackAndForth

        -
        public PIDBackAndForth(@NotNull
        -                       T subsystem,
        -                       double speed,
        -                       double timeInSecs)
        -
        Instantiate the CommandGroup
        -
        -
        Parameters:
        -
        subsystem - the drive to execute this command on.
        -
        speed - The speed to drive forwards and backwards at, from [0, 1].
        -
        timeInSecs - How long to drive in each direction for, in seconds.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDTest.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDTest.html deleted file mode 100644 index a1dcfc27..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/PIDTest.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -PIDTest (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands
-

Class PIDTest<T extends YamlSubsystem & DriveUnidirectional>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      PIDTest(T subsystem, - double driveTime, - double speed) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        PIDTest

        -
        public PIDTest(@NotNull
        -               T subsystem,
        -               double driveTime,
        -               double speed)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - the subsystem to execute this command on
        -
        driveTime - How long to drive forwards for, in seconds.
        -
        speed - The speed to drive at, from [0, 1].
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/SimpleUnidirectionalDrive.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/SimpleUnidirectionalDrive.html deleted file mode 100644 index d913f7f8..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/SimpleUnidirectionalDrive.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - -SimpleUnidirectionalDrive (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands
-

Class SimpleUnidirectionalDrive<T extends YamlSubsystem & DriveUnidirectional>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      OIUnidirectionaloi -
      The OI used for input.
      -
      -
    • -
    - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidexecute() -
      Give output to the motors based on the stick inputs.
      -
      protected voidinitialize() -
      Stop the drive for safety reasons.
      -
      protected voidinterrupted() -
      Log and brake when interrupted.
      -
      protected booleanisFinished() -
      Run constantly because this is a default drive
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, end, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        SimpleUnidirectionalDrive

        -
        public SimpleUnidirectionalDrive(@NotNull
        -                                 T subsystem,
        -                                 @NotNull
        -                                 OIUnidirectional oi)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on
        -
        oi - The OI that gives the input to this command.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Stop the drive for safety reasons.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Give output to the motors based on the stick inputs.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Run constantly because this is a default drive
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        false
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log and brake when interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/VoltageRamp.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/VoltageRamp.html deleted file mode 100644 index 69bd7782..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/VoltageRamp.html +++ /dev/null @@ -1,398 +0,0 @@ - - - - - -VoltageRamp (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.drive.unidirectional.commands
-

Class VoltageRamp

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class VoltageRamp
    -extends YamlCommandWrapper
    -
    A command to ramp up the motors to full power at a given voltage rate.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      VoltageRamp(DriveUnidirectional subsystem, - double voltsPerSecond) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log and stop on end.
      -
      protected voidexecute() -
      Update the output based on how long it's been since execute() was last run.
      -
      protected voidinitialize() -
      Reset the output
      -
      protected voidinterrupted() -
      Log on interrupt.
      -
      protected booleanisFinished() -
      Exit if the output is greater than the motors can produce.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        VoltageRamp

        -
        public VoltageRamp(@NotNull
        -                   DriveUnidirectional subsystem,
        -                   double voltsPerSecond)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on
        -
        voltsPerSecond - How many volts to increase the output by per second.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Reset the output
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Update the output based on how long it's been since execute() was last run.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Exit if the output is greater than the motors can produce.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true if the output is greater than or equal to 1, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log and stop on end.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log on interrupt.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-frame.html deleted file mode 100644 index acea1b5d..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-frame.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.unidirectional.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.drive.unidirectional.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-summary.html deleted file mode 100644 index c4eba78a..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-summary.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.unidirectional.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.drive.unidirectional.commands

-
-
- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-tree.html deleted file mode 100644 index f57cc72d..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/commands/package-tree.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.unidirectional.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.drive.unidirectional.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
            -
          • org.usfirst.frc.team449.robot.drive.unidirectional.commands.PIDBackAndForth<T>
          • -
          • org.usfirst.frc.team449.robot.drive.unidirectional.commands.PIDTest<T>
          • -
          -
        • -
        -
      • -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) - -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-frame.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-frame.html deleted file mode 100644 index 33a1d362..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-frame.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.unidirectional (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.drive.unidirectional

- - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-summary.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-summary.html deleted file mode 100644 index 026167e9..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-summary.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.unidirectional (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.drive.unidirectional

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    DriveUnidirectional -
    A drive with a left side and a right side.
    -
    -
  • -
  • - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    DriveTalonCluster -
    A drive with a cluster of any number of CANTalonSRX controlled motors on each side.
    -
    DriveTalonClusterShiftable -
    A drive with a cluster of any number of CANTalonSRX controlled motors on each side and a high and low gear.
    -
    DriveUnidirectionalSimple -
    A generic example of a subsystem.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-tree.html b/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-tree.html deleted file mode 100644 index 42b1b2a2..00000000 --- a/docs/org/usfirst/frc/team449/robot/drive/unidirectional/package-tree.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.drive.unidirectional Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.drive.unidirectional

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    -
  • -
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.drive.DriveSubsystem -
      -
    • org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional (also extends org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable)
    • -
    -
  • -
  • org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable - -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/Loggable.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/Loggable.html deleted file mode 100644 index 0b4efe6c..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/Loggable.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - -Loggable (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.loggable
-

Interface Loggable

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      java.lang.Object[]getData() -
      Get the data this subsystem logs every loop.
      -
      java.lang.String[]getHeader() -
      Get the headers for the data this subsystem logs every loop.
      -
      java.lang.StringgetName() -
      Get the name of this object.
      -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getHeader

        -
        @NotNull
        -java.lang.String[] getHeader()
        -
        Get the headers for the data this subsystem logs every loop.
        -
        -
        Returns:
        -
        An N-length array of String labels for data, where N is the length of the Object[] returned by getData().
        -
        -
      • -
      - - - -
        -
      • -

        getData

        -
        @NotNull
        -java.lang.Object[] getData()
        -
        Get the data this subsystem logs every loop.
        -
        -
        Returns:
        -
        An N-length array of Objects, where N is the number of labels given by getHeader.
        -
        -
      • -
      - - - -
        -
      • -

        getName

        -
        @NotNull
        -java.lang.String getName()
        -
        Get the name of this object.
        -
        -
        Returns:
        -
        A string that will identify this object in the log file.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-frame.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-frame.html deleted file mode 100644 index 6d21014d..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.loggable (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.generalInterfaces.loggable

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-summary.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-summary.html deleted file mode 100644 index f359b658..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.loggable (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.generalInterfaces.loggable

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    Loggable -
    An object that logs telemetry data every loop.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-tree.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-tree.html deleted file mode 100644 index e5bf88a7..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/loggable/package-tree.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.loggable Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.generalInterfaces.loggable

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/Rumbleable.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/Rumbleable.html deleted file mode 100644 index 2f56a1f8..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/Rumbleable.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - - -Rumbleable (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.rumbleable
-

Interface Rumbleable

-
-
-
-
    -
  • -
    -
    All Known Implementing Classes:
    -
    MappedJoystick
    -
    -
    -
    -
    public interface Rumbleable
    -
    An interface for any sort of OI device that can rumble to give feedback to the driver.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      voidrumble(double left, - double right) -
      Rumble at a given strength on each side of the device.
      -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        rumble

        -
        void rumble(double left,
        -            double right)
        -
        Rumble at a given strength on each side of the device.
        -
        -
        Parameters:
        -
        left - The strength to rumble the left side, on [-1, 1]
        -
        right - The strength to rumble the right side, on [-1, 1]
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-frame.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-frame.html deleted file mode 100644 index e71f502f..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.rumbleable (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.generalInterfaces.rumbleable

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-summary.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-summary.html deleted file mode 100644 index b2b5c366..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.rumbleable (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.generalInterfaces.rumbleable

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    Rumbleable -
    An interface for any sort of OI device that can rumble to give feedback to the driver.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-tree.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-tree.html deleted file mode 100644 index bcb5bd0d..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/rumbleable/package-tree.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.rumbleable Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.generalInterfaces.rumbleable

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.rumbleable.Rumbleable
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.gear.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.gear.html deleted file mode 100644 index 42263b89..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.gear.html +++ /dev/null @@ -1,356 +0,0 @@ - - - - - -Shiftable.gear (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.shiftable
-

Enum Shiftable.gear

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • java.lang.Enum<Shiftable.gear>
    • -
    • -
        -
      • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable.gear
      • -
      -
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    java.io.Serializable, java.lang.Comparable<Shiftable.gear>
    -
    -
    -
    Enclosing interface:
    -
    Shiftable
    -
    -
    -
    -
    public static enum Shiftable.gear
    -extends java.lang.Enum<Shiftable.gear>
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      HIGH 
      LOW 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      intgetNumVal() 
      static Shiftable.gearvalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static Shiftable.gear[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static Shiftable.gear[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (Shiftable.gear c : Shiftable.gear.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static Shiftable.gear valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      - - - -
        -
      • -

        getNumVal

        -
        public int getNumVal()
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.html deleted file mode 100644 index d5dc43f0..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/Shiftable.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - -Shiftable (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.shiftable
-

Interface Shiftable

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      - - - - - - - - - - -
      Nested Classes 
      Modifier and TypeInterface and Description
      static class Shiftable.gear 
      -
    • -
    - - -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getGear

        -
        int getGear()
        -
        -
        Returns:
        -
        The gear this subsystem is currently in.
        -
        -
      • -
      - - - -
        -
      • -

        setGear

        -
        void setGear(int gear)
        -
        Shift to a specific gear.
        -
        -
        Parameters:
        -
        gear - Which gear to shift to.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/ShiftGears.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/ShiftGears.html deleted file mode 100644 index 329d17f6..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/ShiftGears.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -ShiftGears (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-

Class ShiftGears

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ShiftGears
    -extends YamlCommandWrapper
    -
    Shifts gears. Basically a "ToggleGear" command.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ShiftGears(Shiftable subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Switch gears
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ShiftGears

        -
        public ShiftGears(@NotNull
        -                  Shiftable subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The drive to execute this command on
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Switch gears
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToGear.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToGear.html deleted file mode 100644 index d24a4e77..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToGear.html +++ /dev/null @@ -1,402 +0,0 @@ - - - - - -SwitchToGear (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-

Class SwitchToGear

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SwitchToGear
    -extends YamlCommandWrapper
    -
    Switches to a specified gear.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      SwitchToGear(Shiftable subsystem, - int switchToNum, - Shiftable.gear switchTo) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Switch to the specified gear
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SwitchToGear

        -
        public SwitchToGear(@NotNull
        -                    Shiftable subsystem,
        -                    int switchToNum,
        -                    @Nullable
        -                    Shiftable.gear switchTo)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The drive to execute this command on.
        -
        switchToNum - The number of the gear to switch to. Is ignored if switchTo isn't null.
        -
        switchTo - The gear to switch to. Can be null, and if it is, switchToNum is used instead.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Switch to the specified gear
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToHighGear.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToHighGear.html deleted file mode 100644 index 6e6d69b5..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToHighGear.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -SwitchToHighGear (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-

Class SwitchToHighGear

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SwitchToHighGear
    -extends YamlCommandWrapper
    -
    A command that switches to high gear.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      SwitchToHighGear(Shiftable subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Switch to high gear
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SwitchToHighGear

        -
        public SwitchToHighGear(@NotNull
        -                        Shiftable subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Switch to high gear
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToLowGear.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToLowGear.html deleted file mode 100644 index 5409d3b7..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/SwitchToLowGear.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -SwitchToLowGear (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands
-

Class SwitchToLowGear

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SwitchToLowGear
    -extends YamlCommandWrapper
    -
    A command that switches to low gear.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      SwitchToLowGear(Shiftable subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Switch to low gear
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SwitchToLowGear

        -
        public SwitchToLowGear(@NotNull
        -                       Shiftable subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The drive subsystem to execute this command on
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Switch to low gear
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-frame.html deleted file mode 100644 index 340d5d5f..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-frame.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-summary.html deleted file mode 100644 index 2de11790..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-summary.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    ShiftGears -
    Shifts gears.
    -
    SwitchToGear -
    Switches to a specified gear.
    -
    SwitchToHighGear -
    A command that switches to high gear.
    -
    SwitchToLowGear -
    A command that switches to low gear.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-tree.html deleted file mode 100644 index 8dbbeb25..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/commands/package-tree.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.ShiftGears
        • -
        • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToGear
        • -
        • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToHighGear
        • -
        • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToLowGear
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-frame.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-frame.html deleted file mode 100644 index 9efbd7bb..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.shiftable (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.generalInterfaces.shiftable

-
-

Interfaces

- -

Enums

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-summary.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-summary.html deleted file mode 100644 index acff0964..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-summary.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.shiftable (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.generalInterfaces.shiftable

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    Shiftable -
    An interface for any object that different settings for different gears
    -
    -
  • -
  • - - - - - - - - - - - - -
    Enum Summary 
    EnumDescription
    Shiftable.gear 
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-tree.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-tree.html deleted file mode 100644 index 6d8ea7e5..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/shiftable/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.shiftable Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.generalInterfaces.shiftable

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable
  • -
-

Enum Hierarchy

-
    -
  • java.lang.Object -
      -
    • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) -
        -
      • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable.gear
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/SimpleMotor.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/SimpleMotor.html deleted file mode 100644 index cb88e08d..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/SimpleMotor.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - -SimpleMotor (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor
-

Interface SimpleMotor

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      voiddisable() -
      Disables the motor, if applicable.
      -
      voidenable() -
      Enables the motor, if applicable.
      -
      voidsetVelocity(double velocity) -
      Set the velocity for the motor to go at.
      -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setVelocity

        -
        void setVelocity(double velocity)
        -
        Set the velocity for the motor to go at.
        -
        -
        Parameters:
        -
        velocity - the desired velocity, on [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        enable

        -
        void enable()
        -
        Enables the motor, if applicable.
        -
      • -
      - - - -
        -
      • -

        disable

        -
        void disable()
        -
        Disables the motor, if applicable.
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-frame.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-frame.html deleted file mode 100644 index 26fe6a6a..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-summary.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-summary.html deleted file mode 100644 index 2b494217..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-summary.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SimpleMotor 
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-tree.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-tree.html deleted file mode 100644 index 4f3db92b..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/simpleMotor/package-tree.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/Updatable.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/Updatable.html deleted file mode 100644 index 44aa0905..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/Updatable.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - -Updatable (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.generalInterfaces.updatable
-

Interface Updatable

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        update

        -
        void update()
        -
        Updates all cached values with current ones.
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-frame.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-frame.html deleted file mode 100644 index be6f1ea2..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.updatable (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.generalInterfaces.updatable

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-summary.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-summary.html deleted file mode 100644 index c0277962..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.updatable (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.generalInterfaces.updatable

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    Updatable -
    An interface for any object that caches values.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-tree.html b/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-tree.html deleted file mode 100644 index 1a3f7518..00000000 --- a/docs/org/usfirst/frc/team449/robot/generalInterfaces/updatable/package-tree.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.generalInterfaces.updatable Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.generalInterfaces.updatable

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.PerGearSettings.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.PerGearSettings.html deleted file mode 100644 index 18651b1c..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.PerGearSettings.html +++ /dev/null @@ -1,729 +0,0 @@ - - - - - -FPSTalon.PerGearSettings (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class FPSTalon.PerGearSettings

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
    • -
    -
  • -
-
-
    -
  • -
    -
    Enclosing class:
    -
    FPSTalon
    -
    -
    -
    -
    protected static class FPSTalon.PerGearSettings
    -extends java.lang.Object
    -
    An object representing the CANTalon settings that are different for each gear.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        PerGearSettings

        -
        public PerGearSettings(int gearNum,
        -                       @Nullable
        -                       Shiftable.gear gear,
        -                       @Nullable
        -                       java.lang.Double fwdPeakOutputVoltage,
        -                       @Nullable
        -                       java.lang.Double revPeakOutputVoltage,
        -                       @Nullable
        -                       java.lang.Double fwdNominalOutputVoltage,
        -                       @Nullable
        -                       java.lang.Double revNominalOutputVoltage,
        -                       @Nullable
        -                       java.lang.Double closedLoopRampRate,
        -                       @Nullable
        -                       java.lang.Double maxSpeed,
        -                       double kP,
        -                       double kI,
        -                       double kD,
        -                       double motionProfilePFwd,
        -                       double motionProfileIFwd,
        -                       double motionProfileDFwd,
        -                       java.lang.Double motionProfilePRev,
        -                       java.lang.Double motionProfileIRev,
        -                       java.lang.Double motionProfileDRev,
        -                       @Nullable
        -                       java.lang.Double maxAccelFwd,
        -                       @Nullable
        -                       java.lang.Double maxAccelRev,
        -                       @Nullable
        -                       java.lang.Double maxSpeedMPFwd,
        -                       double frictionCompFPSFwd,
        -                       @Nullable
        -                       java.lang.Double maxSpeedMPRev,
        -                       @Nullable
        -                       java.lang.Double frictionCompFPSRev)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        gearNum - The gear number this is the settings for. Ignored if gear isn't null.
        -
        gear - The gear this is the settings for. Can be null.
        -
        fwdPeakOutputVoltage - The peak output voltage for closed-loop modes in the forwards direction, in - volts. Defaults to 12.
        -
        revPeakOutputVoltage - The peak output voltage for closed-loop modes in the reverse direction, in - volts. Defaults to -fwdPeakOutputVoltage.
        -
        fwdNominalOutputVoltage - The minimum output voltage for closed-loop modes in the forwards direction. - This does not rescale, it just sets any output below this voltage to this - voltage. Defaults to 0.
        -
        revNominalOutputVoltage - The minimum output voltage for closed-loop modes in the reverse direction. - This does not rescale, it just sets any output below this voltage to this - voltage. Defaults to -fwdNominalOutputVoltage.
        -
        closedLoopRampRate - The closed loop ramp rate, in volts/sec. Can be null, and if it is, no ramp - rate is used..
        -
        maxSpeed - The maximum speed of the motor in this gear, in FPS. Can be null if not using - PID in this gear.
        -
        kP - The proportional PID constant for the motor in this gear. Ignored if maxSpeed - is null. Defaults to 0.
        -
        kI - The integral PID constant for the motor in this gear. Ignored if maxSpeed is - null. Defaults to 0.
        -
        kD - The derivative PID constant for the motor in this gear. Ignored if maxSpeed is - null. Defaults to 0.
        -
        motionProfilePFwd - The proportional PID constant for forwards motion profiles in this gear. - Ignored if maxSpeed is null. Defaults to 0.
        -
        motionProfileIFwd - The integral PID constant for forwards motion profiles in this gear. Ignored - if maxSpeed is null. Defaults to 0.
        -
        motionProfileDFwd - The derivative PID constant for forwards motion profiles in this gear. Ignored - if maxSpeed is null. Defaults to 0.
        -
        motionProfilePRev - The proportional PID constant for reverse motion profiles in this gear. - Ignored if maxSpeed is null. Defaults to motionProfilePFwd.
        -
        motionProfileIRev - The integral PID constant for reverse motion profiles in this gear. Ignored if - maxSpeed is null. Defaults to motionProfileIFwd.
        -
        motionProfileDRev - The derivative PID constant for reverse motion profiles in this gear. Ignored - if maxSpeed is null. Defaults to motionProfileDFwd.
        -
        maxAccelFwd - The maximum forwards acceleration the robot is capable of in this gear, - theoretically stall torque of the drive output * wheel radius / (robot - mass/2). Can be null to not use acceleration feed-forward.
        -
        maxAccelRev - The maximum reverse acceleration the robot is capable of in this gear, - theoretically stall torque of the drive output * wheel radius / (robot - mass/2). Defaults to maxAccelFwd.
        -
        maxSpeedMPFwd - The "fake" maximum speed to use for the forwards direction of MP mode, - maxVoltage*(slope of vel vs. voltage curve). Defaults to regular max speed.
        -
        maxSpeedMPRev - The "fake" maximum speed to use for the reverse direction of MP mode, - maxVoltage*(slope of vel vs. voltage curve). Defaults to maxSpeedMPFwd.
        -
        frictionCompFPSFwd - The speed, in FPS, to add to all MP velocity setpoints in the forwards - direction to account for friction. Defaults to 0.
        -
        frictionCompFPSRev - The speed, in FPS, to add to all MP velocity setpoints in the reverse - direction to account for friction. Defaults to frictionCompFPSFwd.
        -
        -
      • -
      - - - -
        -
      • -

        PerGearSettings

        -
        public PerGearSettings()
        -
        Empty constructor that uses all default options.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getGear

        -
        public int getGear()
        -
        -
        Returns:
        -
        The gear number this is the settings for.
        -
        -
      • -
      - - - -
        -
      • -

        getFwdPeakOutputVoltage

        -
        public double getFwdPeakOutputVoltage()
        -
        -
        Returns:
        -
        The peak output voltage for closed-loop modes in the forwards direction, in volts.
        -
        -
      • -
      - - - -
        -
      • -

        getRevPeakOutputVoltage

        -
        public double getRevPeakOutputVoltage()
        -
        -
        Returns:
        -
        The peak output voltage for closed-loop modes in the reverse direction, in volts.
        -
        -
      • -
      - - - -
        -
      • -

        getFwdNominalOutputVoltage

        -
        public double getFwdNominalOutputVoltage()
        -
        -
        Returns:
        -
        The minimum output voltage for closed-loop modes in the forwards direction. This does not rescale, it - just sets any output below this voltage to this voltage.
        -
        -
      • -
      - - - -
        -
      • -

        getRevNominalOutputVoltage

        -
        public double getRevNominalOutputVoltage()
        -
        -
        Returns:
        -
        The minimum output voltage for closed-loop modes in the reverse direction. This does not rescale, it - just sets any output below this voltage to this voltage.
        -
        -
      • -
      - - - -
        -
      • -

        getClosedLoopRampRate

        -
        public double getClosedLoopRampRate()
        -
        -
        Returns:
        -
        The closed loop ramp rate, in volts/sec.
        -
        -
      • -
      - - - -
        -
      • -

        getMaxSpeed

        -
        @Nullable
        -public java.lang.Double getMaxSpeed()
        -
        -
        Returns:
        -
        The maximum speed of the motor in this gear, in FPS.
        -
        -
      • -
      - - - -
        -
      • -

        getkP

        -
        public double getkP()
        -
        -
        Returns:
        -
        The proportional PID constant for the motor in this gear.
        -
        -
      • -
      - - - -
        -
      • -

        getkI

        -
        public double getkI()
        -
        -
        Returns:
        -
        The integral PID constant for the motor in this gear.
        -
        -
      • -
      - - - -
        -
      • -

        getkD

        -
        public double getkD()
        -
        -
        Returns:
        -
        The derivative PID constant for the motor in this gear.
        -
        -
      • -
      - - - -
        -
      • -

        getMotionProfilePFwd

        -
        public double getMotionProfilePFwd()
        -
        -
        Returns:
        -
        The proportional PID constant for motion profiles in this gear.
        -
        -
      • -
      - - - -
        -
      • -

        getMotionProfileIFwd

        -
        public double getMotionProfileIFwd()
        -
        -
        Returns:
        -
        The integral PID constant for motion profiles in this gear.
        -
        -
      • -
      - - - -
        -
      • -

        getMotionProfileDFwd

        -
        public double getMotionProfileDFwd()
        -
        -
        Returns:
        -
        The derivative PID constant for motion profiles in this gear.
        -
        -
      • -
      - - - -
        -
      • -

        getKaOverKvFwd

        -
        public double getKaOverKvFwd()
        -
      • -
      - - - -
        -
      • -

        getMaxSpeedMPFwd

        -
        @Nullable
        -public java.lang.Double getMaxSpeedMPFwd()
        -
      • -
      - - - -
        -
      • -

        getMaxSpeedMPRev

        -
        @Nullable
        -public java.lang.Double getMaxSpeedMPRev()
        -
      • -
      - - - -
        -
      • -

        getFrictionCompFPSFwd

        -
        public double getFrictionCompFPSFwd()
        -
      • -
      - - - -
        -
      • -

        getFrictionCompFPSRev

        -
        public double getFrictionCompFPSRev()
        -
      • -
      - - - -
        -
      • -

        getMotionProfilePRev

        -
        public double getMotionProfilePRev()
        -
      • -
      - - - -
        -
      • -

        getMotionProfileIRev

        -
        public double getMotionProfileIRev()
        -
      • -
      - - - -
        -
      • -

        getMotionProfileDRev

        -
        public double getMotionProfileDRev()
        -
      • -
      - - - -
        -
      • -

        getKaOverKvRev

        -
        public double getKaOverKvRev()
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.SlaveTalon.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.SlaveTalon.html deleted file mode 100644 index 8afe5e87..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.SlaveTalon.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - -FPSTalon.SlaveTalon (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class FPSTalon.SlaveTalon

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.SlaveTalon
    • -
    -
  • -
-
-
    -
  • -
    -
    Enclosing class:
    -
    FPSTalon
    -
    -
    -
    -
    protected static class FPSTalon.SlaveTalon
    -extends java.lang.Object
    -
    An object representing a slave CANTalon for use in the map.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      SlaveTalon(int port, - boolean inverted) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      intgetPort() 
      booleanisInverted() 
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SlaveTalon

        -
        public SlaveTalon(int port,
        -                  boolean inverted)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        port - The port number of this Talon.
        -
        inverted - Whether this Talon is inverted compared to its master.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getPort

        -
        public int getPort()
        -
        -
        Returns:
        -
        The port number of this Talon.
        -
        -
      • -
      - - - -
        -
      • -

        isInverted

        -
        public boolean isInverted()
        -
        -
        Returns:
        -
        true if this Talon is inverted compared to its master, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.html deleted file mode 100644 index 6336140d..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/FPSTalon.html +++ /dev/null @@ -1,991 +0,0 @@ - - - - - -FPSTalon (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class FPSTalon

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    Shiftable, SimpleMotor
    -
    -
    -
    -
    public class FPSTalon
    -extends java.lang.Object
    -implements SimpleMotor, Shiftable
    -
    Component wrapper on the CTRE CANTalon, with unit conversions to/from FPS built in. Every non-unit-conversion - in this class takes arguments in post-gearing FPS.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      - - - - - - - - - - - - - - -
      Nested Classes 
      Modifier and TypeClass and Description
      protected static class FPSTalon.PerGearSettings -
      An object representing the CANTalon settings that are different for each gear.
      -
      protected static class FPSTalon.SlaveTalon -
      An object representing a slave CANTalon for use in the map.
      -
      -
        -
      • - - -

        Nested classes/interfaces inherited from interface org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable

        -Shiftable.gear
      • -
      -
    • -
    - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected com.ctre.CANTaloncanTalon -
      The CTRE CAN Talon SRX that this class is a wrapper on
      -
      protected FPSTalon.PerGearSettingscurrentGearSettings -
      The settings currently being used by this Talon.
      -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      FPSTalon(int port, - boolean invertInVoltage, - boolean reverseOutput, - boolean enableBrakeMode, - java.lang.Boolean fwdLimitSwitchNormallyOpen, - java.lang.Boolean revLimitSwitchNormallyOpen, - java.lang.Double fwdSoftLimit, - java.lang.Double revSoftLimit, - java.lang.Double postEncoderGearing, - java.lang.Double feetPerRotation, - java.lang.Integer currentLimit, - double maxClosedLoopVoltage, - com.ctre.CANTalon.FeedbackDevice feedbackDevice, - java.lang.Integer encoderCPR, - boolean reverseSensor, - java.util.List<FPSTalon.PerGearSettings> perGearSettings, - Shiftable.gear startingGear, - java.lang.Integer startingGearNum, - java.lang.Integer minNumPointsInBottomBuffer, - java.lang.Double updaterProcessPeriodSecs, - java.util.Map<com.ctre.CANTalon.StatusFrameRate,java.lang.Integer> statusFrameRatesMillis, - java.lang.Integer controlFrameRateMillis, - java.util.List<FPSTalon.SlaveTalon> slaves) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voiddisable() -
      Disables the motor, if applicable.
      -
      voidenable() -
      Enables the motor, if applicable.
      -
      protected java.lang.DoubleencoderToFeet(double nativeUnits) -
      Convert from native units read by an encoder to feet moved.
      -
      protected java.lang.DoubleencoderToFPS(double encoderReading) -
      Converts the velocity read by the talon's getVelocity() method to the FPS of the output shaft.
      -
      protected java.lang.DoublefeetToEncoder(double feet) -
      Convert a distance from feet to encoder reading in native units.
      -
      protected java.lang.DoubleFPSToEncoder(double FPS) -
      Converts from the velocity of the output shaft to what the talon's getVelocity() method would read at that - velocity.
      -
      java.lang.DoublegetError() -
      Get the current closed-loop velocity error in FPS.
      -
      intgetGear() 
      doublegetOutputCurrent() -
      Get the current the Talon is currently drawing from the PDP.
      -
      doublegetOutputVoltage() -
      Get the voltage the Talon is currently drawing from the PDP.
      -
      java.lang.DoublegetPositionFeet() 
      java.lang.DoublegetSetpoint() -
      Get the current velocity setpoint of the Talon in FPS.
      -
      java.lang.DoublegetVelocity() -
      Get the velocity of the CANTalon in FPS.
      -
      voidholdPositionMP() -
      Holds the current position point in MP mode.
      -
      voidloadProfile(MotionProfileData data) -
      Disables the talon and loads the given profile into the talon.
      -
      booleanMPIsFinished() -
      Whether this talon has finished running a profile.
      -
      booleanreadyForMP() -
      Whether this talon is ready to start running a profile.
      -
      voidresetPosition() -
      Resets the position of the Talon to 0.
      -
      voidsetGear(int gear) -
      Shift to a specific gear.
      -
      voidsetGearScaledVelocity(double velocity, - int gear) -
      Set the velocity scaled to a given gear's max velocity.
      -
      voidsetGearScaledVelocity(double velocity, - Shiftable.gear gear) -
      Set the velocity scaled to a given gear's max velocity.
      -
      voidsetPercentVoltage(double percentVoltage) -
      Set the motor output voltage to a given percent of available voltage.
      -
      voidsetVelocity(double velocity) -
      Set the velocity for the motor to go at.
      -
      protected voidsetVelocityFPS(double velocity) -
      Give a velocity closed loop setpoint in FPS.
      -
      voidstartRunningMP() -
      Starts running the loaded motion profile.
      -
      voidstopMPProcesses() -
      Stops all MP-related threads to save on CPU power.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        canTalon

        -
        @NotNull
        -protected final com.ctre.CANTalon canTalon
        -
        The CTRE CAN Talon SRX that this class is a wrapper on
        -
      • -
      - - - -
        -
      • -

        currentGearSettings

        -
        @NotNull
        -protected FPSTalon.PerGearSettings currentGearSettings
        -
        The settings currently being used by this Talon.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        FPSTalon

        -
        public FPSTalon(int port,
        -                boolean invertInVoltage,
        -                boolean reverseOutput,
        -                boolean enableBrakeMode,
        -                @Nullable
        -                java.lang.Boolean fwdLimitSwitchNormallyOpen,
        -                @Nullable
        -                java.lang.Boolean revLimitSwitchNormallyOpen,
        -                @Nullable
        -                java.lang.Double fwdSoftLimit,
        -                @Nullable
        -                java.lang.Double revSoftLimit,
        -                @Nullable
        -                java.lang.Double postEncoderGearing,
        -                @Nullable
        -                java.lang.Double feetPerRotation,
        -                @Nullable
        -                java.lang.Integer currentLimit,
        -                double maxClosedLoopVoltage,
        -                @Nullable
        -                com.ctre.CANTalon.FeedbackDevice feedbackDevice,
        -                @Nullable
        -                java.lang.Integer encoderCPR,
        -                boolean reverseSensor,
        -                @Nullable
        -                java.util.List<FPSTalon.PerGearSettings> perGearSettings,
        -                @Nullable
        -                Shiftable.gear startingGear,
        -                @Nullable
        -                java.lang.Integer startingGearNum,
        -                @Nullable
        -                java.lang.Integer minNumPointsInBottomBuffer,
        -                @Nullable
        -                java.lang.Double updaterProcessPeriodSecs,
        -                @Nullable
        -                java.util.Map<com.ctre.CANTalon.StatusFrameRate,java.lang.Integer> statusFrameRatesMillis,
        -                @Nullable
        -                java.lang.Integer controlFrameRateMillis,
        -                @Nullable
        -                java.util.List<FPSTalon.SlaveTalon> slaves)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        port - CAN port of this Talon.
        -
        invertInVoltage - Whether or not to invert the motor in voltage mode.
        -
        reverseOutput - Whether to reverse the output (identical effect to inverting outside of - position PID)
        -
        enableBrakeMode - Whether to brake or coast when stopped.
        -
        fwdLimitSwitchNormallyOpen - Whether the forward limit switch is normally open or closed. If this is null, - the forward limit switch is disabled.
        -
        revLimitSwitchNormallyOpen - Whether the reverse limit switch is normally open or closed. If this is null, - the reverse limit switch is disabled.
        -
        fwdSoftLimit - The forward software limit, in feet. If this is null, the forward software - limit is disabled.
        -
        revSoftLimit - The reverse software limit, in feet. If this is null, the reverse software - limit is disabled.
        -
        postEncoderGearing - The coefficient the output changes by after being measured by the encoder, e.g. - this would be 1/70 if there was a 70:1 gearing between the encoder and the - final output. Defaults to 1.
        -
        feetPerRotation - The number of feet travelled per rotation of the motor this is attached to. - Defaults to 1.
        -
        currentLimit - The max amps this device can draw. If this is null, no current limit is used.
        -
        maxClosedLoopVoltage - The voltage to scale closed-loop output based on, e.g. closed-loop output of 1 - will produce this voltage, output of 0.5 will produce half, etc. This feature - compensates for low battery voltage.
        -
        feedbackDevice - The type of encoder used to measure the output velocity of this motor. Can be - null if there is no encoder attached to this Talon.
        -
        encoderCPR - The counts per rotation of the encoder on this Talon. Can be null if - feedbackDevice is, but otherwise must have a value.
        -
        reverseSensor - Whether or not to reverse the reading from the encoder on this Talon. Ignored - if feedbackDevice is null. Defaults to false.
        -
        perGearSettings - The settings for each gear this motor has. Can be null to use default values - and gear # of zero. Gear numbers can't be repeated.
        -
        startingGear - The gear to start in. Can be null to use startingGearNum instead.
        -
        startingGearNum - The number of the gear to start in. Ignored if startingGear isn't null. - Defaults to the lowest gear.
        -
        minNumPointsInBottomBuffer - The minimum number of points that must be in the bottom-level MP buffer before - starting a profile. Defaults to 20.
        -
        updaterProcessPeriodSecs - The period for the Notifier that moves points between the MP buffers, in - seconds. Defaults to 0.005.
        -
        statusFrameRatesMillis - The update rates, in millis, for each of the Talon status frames.
        -
        controlFrameRateMillis - The update rate, in milliseconds, for the control frame. Defaults to 10.
        -
        slaves - The other CANTalons that are slaved to this one.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setPercentVoltage

        -
        public void setPercentVoltage(double percentVoltage)
        -
        Set the motor output voltage to a given percent of available voltage.
        -
        -
        Parameters:
        -
        percentVoltage - percent of total voltage from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getGear

        -
        public int getGear()
        -
        -
        Specified by:
        -
        getGear in interface Shiftable
        -
        Returns:
        -
        The gear this subsystem is currently in.
        -
        -
      • -
      - - - -
        -
      • -

        setGear

        -
        public void setGear(int gear)
        -
        Shift to a specific gear.
        -
        -
        Specified by:
        -
        setGear in interface Shiftable
        -
        Parameters:
        -
        gear - Which gear to shift to.
        -
        -
      • -
      - - - -
        -
      • -

        encoderToFeet

        -
        @Nullable
        -protected java.lang.Double encoderToFeet(double nativeUnits)
        -
        Convert from native units read by an encoder to feet moved. Note this DOES account for post-encoder gearing.
        -
        -
        Parameters:
        -
        nativeUnits - A distance native units as measured by the encoder.
        -
        Returns:
        -
        That distance in feet, or null if no encoder CPR was given.
        -
        -
      • -
      - - - -
        -
      • -

        feetToEncoder

        -
        @Nullable
        -protected java.lang.Double feetToEncoder(double feet)
        -
        Convert a distance from feet to encoder reading in native units. Note this DOES account for post-encoder - gearing.
        -
        -
        Parameters:
        -
        feet - A distance in feet.
        -
        Returns:
        -
        That distance in native units as measured by the encoder, or null if no encoder CPR was given.
        -
        -
      • -
      - - - -
        -
      • -

        encoderToFPS

        -
        @Nullable
        -protected java.lang.Double encoderToFPS(double encoderReading)
        -
        Converts the velocity read by the talon's getVelocity() method to the FPS of the output shaft. Note this DOES - account for post-encoder gearing.
        -
        -
        Parameters:
        -
        encoderReading - The velocity read from the encoder with no conversions.
        -
        Returns:
        -
        The velocity of the output shaft, in FPS, when the encoder has that reading, or null if no encoder CPR - was given.
        -
        -
      • -
      - - - -
        -
      • -

        FPSToEncoder

        -
        @Nullable
        -protected java.lang.Double FPSToEncoder(double FPS)
        -
        Converts from the velocity of the output shaft to what the talon's getVelocity() method would read at that - velocity. Note this DOES account for post-encoder gearing.
        -
        -
        Parameters:
        -
        FPS - The velocity of the output shaft, in FPS.
        -
        Returns:
        -
        What the raw encoder reading would be at that velocity, or null if no encoder CPR was given.
        -
        -
      • -
      - - - -
        -
      • -

        getVelocity

        -
        @Nullable
        -public java.lang.Double getVelocity()
        -
        Get the velocity of the CANTalon in FPS.
        -
        -
        Returns:
        -
        The CANTalon's velocity in FPS, or null if no encoder CPR was given.
        -
        -
      • -
      - - - -
        -
      • -

        setVelocity

        -
        public void setVelocity(double velocity)
        -
        Set the velocity for the motor to go at.
        -
        -
        Specified by:
        -
        setVelocity in interface SimpleMotor
        -
        Parameters:
        -
        velocity - the desired velocity, on [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        setVelocityFPS

        -
        protected void setVelocityFPS(double velocity)
        -
        Give a velocity closed loop setpoint in FPS.
        -
        -
        Parameters:
        -
        velocity - velocity setpoint in FPS.
        -
        -
      • -
      - - - -
        -
      • -

        getError

        -
        @Nullable
        -public java.lang.Double getError()
        -
        Get the current closed-loop velocity error in FPS. WARNING: will give garbage if not in velocity mode.
        -
        -
        Returns:
        -
        The closed-loop error in FPS, or null if no encoder CPR was given.
        -
        -
      • -
      - - - -
        -
      • -

        getSetpoint

        -
        @Nullable
        -public java.lang.Double getSetpoint()
        -
        Get the current velocity setpoint of the Talon in FPS. WARNING: will give garbage if not in velocity mode.
        -
        -
        Returns:
        -
        The closed-loop velocity setpoint in FPS, or null if no encoder CPR was given.
        -
        -
      • -
      - - - -
        -
      • -

        getOutputVoltage

        -
        public double getOutputVoltage()
        -
        Get the voltage the Talon is currently drawing from the PDP.
        -
        -
        Returns:
        -
        Voltage in volts.
        -
        -
      • -
      - - - -
        -
      • -

        getOutputCurrent

        -
        public double getOutputCurrent()
        -
        Get the current the Talon is currently drawing from the PDP.
        -
        -
        Returns:
        -
        Current in amps.
        -
        -
      • -
      - - - -
        -
      • -

        enable

        -
        public void enable()
        -
        Enables the motor, if applicable.
        -
        -
        Specified by:
        -
        enable in interface SimpleMotor
        -
        -
      • -
      - - - -
        -
      • -

        disable

        -
        public void disable()
        -
        Disables the motor, if applicable.
        -
        -
        Specified by:
        -
        disable in interface SimpleMotor
        -
        -
      • -
      - - - -
        -
      • -

        setGearScaledVelocity

        -
        public void setGearScaledVelocity(double velocity,
        -                                  int gear)
        -
        Set the velocity scaled to a given gear's max velocity. Used mostly when autoshifting.
        -
        -
        Parameters:
        -
        velocity - The velocity to go at, from [-1, 1], where 1 is the max speed of the given gear.
        -
        gear - The number of the gear to use the max speed from to scale the velocity.
        -
        -
      • -
      - - - -
        -
      • -

        setGearScaledVelocity

        -
        public void setGearScaledVelocity(double velocity,
        -                                  Shiftable.gear gear)
        -
        Set the velocity scaled to a given gear's max velocity. Used mostly when autoshifting.
        -
        -
        Parameters:
        -
        velocity - The velocity to go at, from [-1, 1], where 1 is the max speed of the given gear.
        -
        gear - The gear to use the max speed from to scale the velocity.
        -
        -
      • -
      - - - -
        -
      • -

        getPositionFeet

        -
        public java.lang.Double getPositionFeet()
        -
        -
        Returns:
        -
        the position of the talon in feet, or null of inches per rotation wasn't given.
        -
        -
      • -
      - - - -
        -
      • -

        resetPosition

        -
        public void resetPosition()
        -
        Resets the position of the Talon to 0.
        -
      • -
      - - - -
        -
      • -

        readyForMP

        -
        public boolean readyForMP()
        -
        Whether this talon is ready to start running a profile.
        -
        -
        Returns:
        -
        True if minNumPointsInBottomBuffer points have been loaded or the top buffer is empty, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        MPIsFinished

        -
        public boolean MPIsFinished()
        -
        Whether this talon has finished running a profile.
        -
        -
        Returns:
        -
        True if the active point in the talon is the last point, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        startRunningMP

        -
        public void startRunningMP()
        -
        Starts running the loaded motion profile.
        -
      • -
      - - - -
        -
      • -

        holdPositionMP

        -
        public void holdPositionMP()
        -
        Holds the current position point in MP mode.
        -
      • -
      - - - -
        -
      • -

        loadProfile

        -
        public void loadProfile(MotionProfileData data)
        -
        Disables the talon and loads the given profile into the talon.
        -
        -
        Parameters:
        -
        data - The profile to load.
        -
        -
      • -
      - - - -
        -
      • -

        stopMPProcesses

        -
        public void stopMPProcesses()
        -
        Stops all MP-related threads to save on CPU power. Run at the beginning of teleop.
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedAHRS.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedAHRS.html deleted file mode 100644 index 46ef20f8..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedAHRS.html +++ /dev/null @@ -1,485 +0,0 @@ - - - - - -MappedAHRS (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class MappedAHRS

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class MappedAHRS
    -extends java.lang.Object
    -
    A Jackson-compatible, invertible wrapper for the NavX.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected com.kauailabs.navx.frc.AHRSahrs -
      The AHRS this class is a wrapper on.
      -
      protected intinvertYaw -
      A multiplier for the yaw angle.
      -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      MappedAHRS(edu.wpi.first.wpilibj.SPI.Port port, - java.lang.Boolean invertYaw) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      doubleget9AxisHeading() -
      Uses the gyro axes, magnetometer, and compass to get the most accurate possible yaw value for the robot.
      -
      doublegetAngularDisplacement() -
      Get the current total angular displacement.
      -
      doublegetAngularVelocity() -
      Get the current angular yaw velocity.
      -
      doublegetHeading() -
      Get the current yaw value.
      -
      doublegetXAccel() -
      Get the absolute X acceleration of the robot, relative to the field.
      -
      doublegetYAccel() -
      Get the absolute Y acceleration of the robot, relative to the field.
      -
      protected static doublegsToFeetPerSecondSquared(double accelGs) -
      Convert from gs (acceleration due to gravity) to feet/(second^2).
      -
      voidsetHeading(double headingDegrees) -
      Set the current yaw value.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        ahrs

        -
        protected final com.kauailabs.navx.frc.AHRS ahrs
        -
        The AHRS this class is a wrapper on.
        -
      • -
      - - - -
        -
      • -

        invertYaw

        -
        protected final int invertYaw
        -
        A multiplier for the yaw angle. -1 to invert, 1 to not.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MappedAHRS

        -
        public MappedAHRS(edu.wpi.first.wpilibj.SPI.Port port,
        -                  java.lang.Boolean invertYaw)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        port - The port the NavX is plugged into. It seems like only kMXP (the port on the RIO) works.
        -
        invertYaw - Whether or not to invert the yaw axis. Defaults to true.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        gsToFeetPerSecondSquared

        -
        @Contract(pure=true)
        -protected static double gsToFeetPerSecondSquared(double accelGs)
        -
        Convert from gs (acceleration due to gravity) to feet/(second^2).
        -
        -
        Parameters:
        -
        accelGs - An acceleration in gs.
        -
        Returns:
        -
        That acceleration in feet/(sec^2)
        -
        -
      • -
      - - - -
        -
      • -

        getHeading

        -
        public double getHeading()
        -
        Get the current yaw value.
        -
        -
        Returns:
        -
        The heading, in degrees from [-180, 180]
        -
        -
      • -
      - - - -
        -
      • -

        setHeading

        -
        public void setHeading(double headingDegrees)
        -
        Set the current yaw value.
        -
        -
        Parameters:
        -
        headingDegrees - An angle in degrees, from [-180, 180], to set the heading to.
        -
        -
      • -
      - - - -
        -
      • -

        getAngularDisplacement

        -
        public double getAngularDisplacement()
        -
        Get the current total angular displacement. Differs from getHeading because it doesn't limit angle.
        -
        -
        Returns:
        -
        The angular displacement, in degrees.
        -
        -
      • -
      - - - -
        -
      • -

        get9AxisHeading

        -
        public double get9AxisHeading()
        -
        Uses the gyro axes, magnetometer, and compass to get the most accurate possible yaw value for the robot.
        -
        -
        Returns:
        -
        The heading, in degrees from [-180, 180]
        -
        -
      • -
      - - - -
        -
      • -

        getAngularVelocity

        -
        public double getAngularVelocity()
        -
        Get the current angular yaw velocity.
        -
        -
        Returns:
        -
        The angular yaw velocity, in degrees/sec.
        -
        -
      • -
      - - - -
        -
      • -

        getXAccel

        -
        public double getXAccel()
        -
        Get the absolute X acceleration of the robot, relative to the field.
        -
        -
        Returns:
        -
        Linear X acceleration, in feet/(sec^2)
        -
        -
      • -
      - - - -
        -
      • -

        getYAccel

        -
        public double getYAccel()
        -
        Get the absolute Y acceleration of the robot, relative to the field.
        -
        -
        Returns:
        -
        Linear Y acceleration, in feet/(sec^2)
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedButton.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedButton.html deleted file mode 100644 index 68480e44..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedButton.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - - -MappedButton (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class MappedButton

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.buttons.Trigger
    • -
    • -
        -
      • edu.wpi.first.wpilibj.buttons.Button
      • -
      • -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.MappedButton
        • -
        -
      • -
      -
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.Sendable
    -
    -
    -
    Direct Known Subclasses:
    -
    dPadButton, SimpleButton, TriggerButton
    -
    -
    -
    -
    public abstract class MappedButton
    -extends edu.wpi.first.wpilibj.buttons.Button
    -
    A jackson-compatible wrapper on WPILib's Button.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.first.wpilibj.buttons.Trigger

        -edu.wpi.first.wpilibj.buttons.Trigger.ButtonScheduler
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      MappedButton() 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.buttons.Button

        -cancelWhenPressed, toggleWhenPressed, whenPressed, whenReleased, whileHeld
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.buttons.Trigger

        -cancelWhenActive, get, getSmartDashboardType, getTable, initTable, toggleWhenActive, whenActive, whenInactive, whileActive
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MappedButton

        -
        public MappedButton()
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDigitalInput.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDigitalInput.html deleted file mode 100644 index 5eb9fc0e..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDigitalInput.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -MappedDigitalInput (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class MappedDigitalInput

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class MappedDigitalInput
    -extends java.lang.Object
    -
    A series of roboRIO digital input pins.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      MappedDigitalInput(int[] ports) -
      Construct a MappedDigitalInput.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.util.List<java.lang.Boolean>getStatus() -
      Get the status of each pin specified in the map, in the order they were specified.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MappedDigitalInput

        -
        public MappedDigitalInput(@NotNull
        -                          int[] ports)
        -
        Construct a MappedDigitalInput.
        -
        -
        Parameters:
        -
        ports - The ports to read from, in order.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getStatus

        -
        @NotNull
        -public java.util.List<java.lang.Boolean> getStatus()
        -
        Get the status of each pin specified in the map, in the order they were specified.
        -
        -
        Returns:
        -
        A list of booleans where 1 represents the input receiving a signal and 0 represents no signal.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDoubleSolenoid.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDoubleSolenoid.html deleted file mode 100644 index 0f8e798f..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedDoubleSolenoid.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - -MappedDoubleSolenoid (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class MappedDoubleSolenoid

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.SensorBase
    • -
    • -
        -
      • edu.wpi.first.wpilibj.SolenoidBase
      • -
      • -
          -
        • edu.wpi.first.wpilibj.DoubleSolenoid
        • -
        • -
            -
          • org.usfirst.frc.team449.robot.jacksonWrappers.MappedDoubleSolenoid
          • -
          -
        • -
        -
      • -
      -
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.livewindow.LiveWindowSendable, edu.wpi.first.wpilibj.Sendable
    -
    -
    -
    -
    public class MappedDoubleSolenoid
    -extends edu.wpi.first.wpilibj.DoubleSolenoid
    -
    A Jackson-compatible wrapper on the DoubleSolenoid.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.first.wpilibj.DoubleSolenoid

        -edu.wpi.first.wpilibj.DoubleSolenoid.Value
      • -
      -
    • -
    - -
      -
    • - - -

      Field Summary

      -
        -
      • - - -

        Fields inherited from class edu.wpi.first.wpilibj.SolenoidBase

        -m_moduleNumber
      • -
      -
        -
      • - - -

        Fields inherited from class edu.wpi.first.wpilibj.SensorBase

        -kAnalogInputChannels, kAnalogOutputChannels, kDigitalChannels, kPCMModules, kPDPChannels, kPDPModules, kPwmChannels, kRelayChannels, kSolenoidChannels, kSystemClockTicksPerMicrosecond
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      MappedDoubleSolenoid(int module, - int forward, - int reverse) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.DoubleSolenoid

        -free, get, getSmartDashboardType, getTable, initTable, isFwdSolenoidBlackListed, isRevSolenoidBlackListed, set, startLiveWindowMode, stopLiveWindowMode, updateTable
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.SolenoidBase

        -clearAllPCMStickyFaults, getAll, getPCMSolenoidBlackList, getPCMSolenoidVoltageFault, getPCMSolenoidVoltageStickyFault
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.SensorBase

        -checkAnalogInputChannel, checkAnalogOutputChannel, checkDigitalChannel, checkPDPChannel, checkPDPModule, checkPWMChannel, checkRelayChannel, checkSolenoidChannel, checkSolenoidModule, getDefaultSolenoidModule, setDefaultSolenoidModule
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MappedDoubleSolenoid

        -
        public MappedDoubleSolenoid(int module,
        -                            int forward,
        -                            int reverse)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        module - The module number of the PCM. Defaults to 0.
        -
        forward - The forward port on the PCM.
        -
        reverse - The reverse port on the PCM.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedJoystick.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedJoystick.html deleted file mode 100644 index ea6d95e5..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedJoystick.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - -MappedJoystick (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class MappedJoystick

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.GenericHID
    • -
    • -
        -
      • edu.wpi.first.wpilibj.JoystickBase
      • -
      • -
          -
        • edu.wpi.first.wpilibj.Joystick
        • -
        • -
            -
          • org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick
          • -
          -
        • -
        -
      • -
      -
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    Rumbleable
    -
    -
    -
    -
    public class MappedJoystick
    -extends edu.wpi.first.wpilibj.Joystick
    -implements Rumbleable
    -
    A Jackson-compatible wrapper on a Joystick.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.first.wpilibj.Joystick

        -edu.wpi.first.wpilibj.Joystick.AxisType, edu.wpi.first.wpilibj.Joystick.ButtonType
      • -
      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.first.wpilibj.GenericHID

        -edu.wpi.first.wpilibj.GenericHID.Hand, edu.wpi.first.wpilibj.GenericHID.HIDType, edu.wpi.first.wpilibj.GenericHID.RumbleType
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      MappedJoystick(int port) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidrumble(double left, - double right) -
      Rumble at a given strength on each side of the device.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.Joystick

        -getAxis, getAxisChannel, getAxisCount, getAxisType, getBumper, getButton, getButtonCount, getDirectionDegrees, getDirectionRadians, getIsXbox, getMagnitude, getName, getPOV, getPOVCount, getRawAxis, getRawButton, getThrottle, getTop, getTrigger, getTwist, getType, getX, getY, getZ, setAxisChannel, setOutput, setOutputs, setRumble
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.JoystickBase

        -getTop, getTrigger, getZ
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.GenericHID

        -getPort, getPOV, getX, getY
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MappedJoystick

        -
        public MappedJoystick(int port)
        -
        Default constructor
        -
        -
        Parameters:
        -
        port - The USB port of this joystick, on [0, 5].
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        rumble

        -
        public void rumble(double left,
        -                   double right)
        -
        Rumble at a given strength on each side of the device.
        -
        -
        Specified by:
        -
        rumble in interface Rumbleable
        -
        Parameters:
        -
        left - The strength to rumble the left side, on [-1, 1]
        -
        right - The strength to rumble the right side, on [-1, 1]
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedRunnable.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedRunnable.html deleted file mode 100644 index c3573c2f..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedRunnable.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - -MappedRunnable (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Interface MappedRunnable

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      -
        -
      • - - -

        Methods inherited from interface java.lang.Runnable

        -run
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedUsbCamera.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedUsbCamera.html deleted file mode 100644 index 67d55434..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedUsbCamera.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - -MappedUsbCamera (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class MappedUsbCamera

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.cscore.VideoSource
    • -
    • -
        -
      • edu.wpi.cscore.VideoCamera
      • -
      • -
          -
        • edu.wpi.cscore.UsbCamera
        • -
        • -
            -
          • org.usfirst.frc.team449.robot.jacksonWrappers.MappedUsbCamera
          • -
          -
        • -
        -
      • -
      -
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class MappedUsbCamera
    -extends edu.wpi.cscore.UsbCamera
    -
    A Jackson-compatible wrapper on the UsbCamera.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.cscore.VideoCamera

        -edu.wpi.cscore.VideoCamera.WhiteBalance
      • -
      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.cscore.VideoSource

        -edu.wpi.cscore.VideoSource.Kind
      • -
      -
    • -
    - -
      -
    • - - -

      Field Summary

      -
        -
      • - - -

        Fields inherited from class edu.wpi.cscore.VideoSource

        -m_handle
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      MappedUsbCamera(java.lang.String name, - int devAddress, - int width, - int height, - int fps) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      -
        -
      • - - -

        Methods inherited from class edu.wpi.cscore.UsbCamera

        -enumerateUsbCameras, getPath
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.cscore.VideoCamera

        -getBrightness, setBrightness, setExposureAuto, setExposureHoldCurrent, setExposureManual, setWhiteBalanceAuto, setWhiteBalanceHoldCurrent, setWhiteBalanceManual
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.cscore.VideoSource

        -enumerateProperties, enumerateSinks, enumerateSources, enumerateVideoModes, equals, free, getDescription, getHandle, getKind, getKindFromInt, getLastFrameTime, getName, getProperty, getVideoMode, hashCode, isConnected, isValid, setFPS, setPixelFormat, setResolution, setVideoMode, setVideoMode
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MappedUsbCamera

        -
        public MappedUsbCamera(@NotNull
        -                       java.lang.String name,
        -                       int devAddress,
        -                       int width,
        -                       int height,
        -                       int fps)
        -
        Default constructor
        -
        -
        Parameters:
        -
        name - The human-friendly name for this camera.
        -
        devAddress - The address of this device in /dev/, e.g. this would be 0 for /dev/video0, 1 for /dev/video1.
        -
        width - The width of this camera's output, in pixels. There's a minimum value for this that WPILib - won't let us go below, but I don't know what it is.
        -
        height - The height of this camera's output, in pixels. There's a minimum value for this that WPILib - won't let us go below, but I don't know what it is.
        -
        fps - The frames per second this camera tries to transmit. There's a minimum value for this that - WPILib won't let us go below, but I don't know what it is.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedVictor.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedVictor.html deleted file mode 100644 index 8b4462a0..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/MappedVictor.html +++ /dev/null @@ -1,418 +0,0 @@ - - - - - -MappedVictor (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class MappedVictor

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.SensorBase
    • -
    • -
        -
      • edu.wpi.first.wpilibj.PWM
      • -
      • -
          -
        • edu.wpi.first.wpilibj.SafePWM
        • -
        • -
            -
          • edu.wpi.first.wpilibj.PWMSpeedController
          • -
          • -
              -
            • edu.wpi.first.wpilibj.VictorSP
            • -
            • -
                -
              • org.usfirst.frc.team449.robot.jacksonWrappers.MappedVictor
              • -
              -
            • -
            -
          • -
          -
        • -
        -
      • -
      -
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.livewindow.LiveWindowSendable, edu.wpi.first.wpilibj.MotorSafety, edu.wpi.first.wpilibj.PIDOutput, edu.wpi.first.wpilibj.Sendable, edu.wpi.first.wpilibj.SpeedController, SimpleMotor
    -
    -
    -
    -
    public class MappedVictor
    -extends edu.wpi.first.wpilibj.VictorSP
    -implements SimpleMotor
    -
    A wrapper for a VictorSP allowing it to be easily constructed from a map object.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.first.wpilibj.PWM

        -edu.wpi.first.wpilibj.PWM.PeriodMultiplier
      • -
      -
    • -
    - -
      -
    • - - -

      Field Summary

      -
        -
      • - - -

        Fields inherited from class edu.wpi.first.wpilibj.SensorBase

        -kAnalogInputChannels, kAnalogOutputChannels, kDigitalChannels, kPCMModules, kPDPChannels, kPDPModules, kPwmChannels, kRelayChannels, kSolenoidChannels, kSystemClockTicksPerMicrosecond
      • -
      -
        -
      • - - -

        Fields inherited from interface edu.wpi.first.wpilibj.MotorSafety

        -DEFAULT_SAFETY_EXPIRATION
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      MappedVictor(int port, - boolean inverted) -
      Json constructor using a port and inversion.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidenable() -
      Enables the motor, if applicable.
      -
      voidsetVelocity(double velocity) -
      Set the velocity for the motor to go at.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.PWMSpeedController

        -get, getInverted, pidWrite, set, setInverted
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.SafePWM

        -disable, Feed, getDescription, getExpiration, isAlive, isSafetyEnabled, setExpiration, setSafetyEnabled, stopMotor
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.PWM

        -enableDeadbandElimination, free, getChannel, getPosition, getRaw, getRawBounds, getSmartDashboardType, getSpeed, getTable, initTable, setBounds, setDisabled, setPeriodMultiplier, setPosition, setRaw, setRawBounds, setSpeed, setZeroLatch, startLiveWindowMode, stopLiveWindowMode, updateTable
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.SensorBase

        -checkAnalogInputChannel, checkAnalogOutputChannel, checkDigitalChannel, checkPDPChannel, checkPDPModule, checkPWMChannel, checkRelayChannel, checkSolenoidChannel, checkSolenoidModule, getDefaultSolenoidModule, setDefaultSolenoidModule
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor

        -disable
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.SpeedController

        -disable, stopMotor
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MappedVictor

        -
        public MappedVictor(int port,
        -                    boolean inverted)
        -
        Json constructor using a port and inversion.
        -
        -
        Parameters:
        -
        port - The port number of the Victor.
        -
        inverted - Whether the motor is inverted. Defaults to false.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setVelocity

        -
        public void setVelocity(double velocity)
        -
        Set the velocity for the motor to go at.
        -
        -
        Specified by:
        -
        setVelocity in interface SimpleMotor
        -
        Parameters:
        -
        velocity - the desired velocity, on [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        enable

        -
        public void enable()
        -
        Enables the motor, if applicable.
        -
        -
        Specified by:
        -
        enable in interface SimpleMotor
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/PressureSensor.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/PressureSensor.html deleted file mode 100644 index 3fe0410d..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/PressureSensor.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - -PressureSensor (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class PressureSensor

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.jacksonWrappers.PressureSensor
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class PressureSensor
    -extends java.lang.Object
    -
    Wrapper for an AnalogInput pressure sensor that returns a voltage linearly proportional to pressure.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      PressureSensor(int port, - int oversampleBits, - int averageBits) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      doublegetPressure() -
      Returns the pressure measured by the sensor.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        PressureSensor

        -
        public PressureSensor(int port,
        -                      int oversampleBits,
        -                      int averageBits)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        port - The port of the sensor.
        -
        oversampleBits - The number of oversample bits.
        -
        averageBits - The number of averaging bits.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getPressure

        -
        public double getPressure()
        -
        Returns the pressure measured by the sensor.
        -
        -
        Returns:
        -
        pressure in PSI
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/SimpleMotorCluster.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/SimpleMotorCluster.html deleted file mode 100644 index 802df732..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/SimpleMotorCluster.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - -SimpleMotorCluster (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class SimpleMotorCluster

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.jacksonWrappers.SimpleMotorCluster
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    SimpleMotor
    -
    -
    -
    -
    public class SimpleMotorCluster
    -extends java.lang.Object
    -implements SimpleMotor
    -
    A cluster of simple motors that act as a single simple motor. Don't use this for talons, use master-slave instead.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      SimpleMotorCluster(java.util.List<SimpleMotor> motors) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voiddisable() -
      Disables the motor, if applicable.
      -
      voidenable() -
      Enables the motor, if applicable.
      -
      voidsetVelocity(double velocity) -
      Set the velocity for the motor to go at.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SimpleMotorCluster

        -
        public SimpleMotorCluster(@NotNull
        -                          java.util.List<SimpleMotor> motors)
        -
        Default constructor
        -
        -
        Parameters:
        -
        motors - The motors in this cluster. Must have at least 1 element.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setVelocity

        -
        public void setVelocity(double velocity)
        -
        Set the velocity for the motor to go at.
        -
        -
        Specified by:
        -
        setVelocity in interface SimpleMotor
        -
        Parameters:
        -
        velocity - the desired velocity, on [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        enable

        -
        public void enable()
        -
        Enables the motor, if applicable.
        -
        -
        Specified by:
        -
        enable in interface SimpleMotor
        -
        -
      • -
      - - - -
        -
      • -

        disable

        -
        public void disable()
        -
        Disables the motor, if applicable.
        -
        -
        Specified by:
        -
        disable in interface SimpleMotor
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommand.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommand.html deleted file mode 100644 index 8f02e1fb..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommand.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - - -YamlCommand (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Interface YamlCommand

-
-
- -
-
    -
  • - - -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getCommand

        -
        @NotNull
        -edu.wpi.first.wpilibj.command.Command getCommand()
        -
        Get the command object this object is.
        -
        -
        Returns:
        -
        this.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandGroupWrapper.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandGroupWrapper.html deleted file mode 100644 index 6b1882d1..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandGroupWrapper.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - -YamlCommandGroupWrapper (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class YamlCommandGroupWrapper

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.command.Command
    • -
    • -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup
      • -
      • -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper
        • -
        -
      • -
      -
    • -
    -
  • -
-
- -
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      edu.wpi.first.wpilibj.command.CommandgetCommand() -
      Return the Command this is a wrapper on.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        YamlCommandGroupWrapper

        -
        public YamlCommandGroupWrapper()
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getCommand

        -
        @NotNull
        -public edu.wpi.first.wpilibj.command.Command getCommand()
        -
        Return the Command this is a wrapper on.
        -
        -
        Specified by:
        -
        getCommand in interface YamlCommand
        -
        Returns:
        -
        this.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandWrapper.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandWrapper.html deleted file mode 100644 index 5d478799..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlCommandWrapper.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - -YamlCommandWrapper (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class YamlCommandWrapper

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.command.Command
    • -
    • -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper
      • -
      -
    • -
    -
  • -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      YamlCommandWrapper() 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      edu.wpi.first.wpilibj.command.CommandgetCommand() -
      Return the Command this is a wrapper on.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, end, execute, getGroup, getName, getSmartDashboardType, getTable, initialize, initTable, interrupted, isCanceled, isFinished, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        YamlCommandWrapper

        -
        public YamlCommandWrapper()
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getCommand

        -
        @NotNull
        -public edu.wpi.first.wpilibj.command.Command getCommand()
        -
        Return the Command this is a wrapper on.
        -
        -
        Specified by:
        -
        getCommand in interface YamlCommand
        -
        Returns:
        -
        this.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlSubsystem.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlSubsystem.html deleted file mode 100644 index 3211f815..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/YamlSubsystem.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - -YamlSubsystem (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.jacksonWrappers
-

Class YamlSubsystem

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.command.Subsystem
    • -
    • -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem
      • -
      -
    • -
    -
  • -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      YamlSubsystem() 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getName, getSmartDashboardType, getTable, initDefaultCommand, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        YamlSubsystem

        -
        public YamlSubsystem()
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-frame.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-frame.html deleted file mode 100644 index d8644f0f..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-frame.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.jacksonWrappers (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.jacksonWrappers

- - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-summary.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-summary.html deleted file mode 100644 index 4d4a8ebf..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-summary.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.jacksonWrappers (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.jacksonWrappers

-
-
-
    -
  • - - - - - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    MappedRunnable -
    A jackson-compatible wrapper on Java's Runnable.
    -
    YamlCommand -
    A command that's constructable from YAML.
    -
    -
  • -
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    FPSTalon -
    Component wrapper on the CTRE CANTalon, with unit conversions to/from FPS built in.
    -
    FPSTalon.PerGearSettings -
    An object representing the CANTalon settings that are different for each gear.
    -
    FPSTalon.SlaveTalon -
    An object representing a slave CANTalon for use in the map.
    -
    MappedAHRS -
    A Jackson-compatible, invertible wrapper for the NavX.
    -
    MappedButton -
    A jackson-compatible wrapper on WPILib's Button.
    -
    MappedDigitalInput -
    A series of roboRIO digital input pins.
    -
    MappedDoubleSolenoid -
    A Jackson-compatible wrapper on the DoubleSolenoid.
    -
    MappedJoystick -
    A Jackson-compatible wrapper on a Joystick.
    -
    MappedUsbCamera -
    A Jackson-compatible wrapper on the UsbCamera.
    -
    MappedVictor -
    A wrapper for a VictorSP allowing it to be easily constructed from a map object.
    -
    PressureSensor -
    Wrapper for an AnalogInput pressure sensor that returns a voltage linearly proportional to pressure.
    -
    SimpleMotorCluster -
    A cluster of simple motors that act as a single simple motor.
    -
    YamlCommandGroupWrapper -
    A wrapper on CommandGroup with @JsonTypeInfo so we can use it in maps.
    -
    YamlCommandWrapper -
    A wrapper on Command with @JsonTypeInfo so we can use it in maps.
    -
    YamlSubsystem -
    A Jackson-compatible wrapper on Subsystem.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-tree.html b/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-tree.html deleted file mode 100644 index f919cc93..00000000 --- a/docs/org/usfirst/frc/team449/robot/jacksonWrappers/package-tree.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.jacksonWrappers Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.jacksonWrappers

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup - -
      • -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand)
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon (implements org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable, org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor)
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.SlaveTalon
    • -
    • edu.wpi.first.wpilibj.GenericHID -
        -
      • edu.wpi.first.wpilibj.JoystickBase -
          -
        • edu.wpi.first.wpilibj.Joystick -
            -
          • org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick (implements org.usfirst.frc.team449.robot.generalInterfaces.rumbleable.Rumbleable)
          • -
          -
        • -
        -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.PressureSensor
    • -
    • edu.wpi.first.wpilibj.SensorBase -
        -
      • edu.wpi.first.wpilibj.PWM (implements edu.wpi.first.wpilibj.livewindow.LiveWindowSendable) -
          -
        • edu.wpi.first.wpilibj.SafePWM (implements edu.wpi.first.wpilibj.MotorSafety) -
            -
          • edu.wpi.first.wpilibj.PWMSpeedController (implements edu.wpi.first.wpilibj.SpeedController) -
              -
            • edu.wpi.first.wpilibj.VictorSP -
                -
              • org.usfirst.frc.team449.robot.jacksonWrappers.MappedVictor (implements org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor)
              • -
              -
            • -
            -
          • -
          -
        • -
        -
      • -
      • edu.wpi.first.wpilibj.SolenoidBase -
          -
        • edu.wpi.first.wpilibj.DoubleSolenoid (implements edu.wpi.first.wpilibj.livewindow.LiveWindowSendable) - -
        • -
        -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.SimpleMotorCluster (implements org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor)
    • -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    • edu.wpi.first.wpilibj.buttons.Trigger (implements edu.wpi.first.wpilibj.Sendable) -
        -
      • edu.wpi.first.wpilibj.buttons.Button -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.MappedButton
        • -
        -
      • -
      -
    • -
    • edu.wpi.cscore.VideoSource -
        -
      • edu.wpi.cscore.VideoCamera -
          -
        • edu.wpi.cscore.UsbCamera - -
        • -
        -
      • -
      -
    • -
    -
  • -
-

Interface Hierarchy

-
    -
  • java.lang.Runnable - -
  • -
  • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/OI.html b/docs/org/usfirst/frc/team449/robot/oi/OI.html deleted file mode 100644 index 094f2929..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/OI.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - -OI (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi
-

Interface OI

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      -
        -
      • - - -

        Methods inherited from interface org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable

        -update
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/buttons/CommandButton.html b/docs/org/usfirst/frc/team449/robot/oi/buttons/CommandButton.html deleted file mode 100644 index 27d25424..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/buttons/CommandButton.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - -CommandButton (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.buttons
-

Class CommandButton

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.oi.buttons.CommandButton
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class CommandButton
    -extends java.lang.Object
    -
    A button mapped to a command.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      CommandButton(MappedButton button, - YamlCommand command, - org.usfirst.frc.team449.robot.oi.buttons.CommandButton.Action action) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        CommandButton

        -
        public CommandButton(@NotNull
        -                     MappedButton button,
        -                     @NotNull
        -                     YamlCommand command,
        -                     @NotNull
        -                     org.usfirst.frc.team449.robot.oi.buttons.CommandButton.Action action)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        button - The button that triggers the command.
        -
        command - The command to run or cancel.
        -
        action - The action to do to the command.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/buttons/SimpleButton.html b/docs/org/usfirst/frc/team449/robot/oi/buttons/SimpleButton.html deleted file mode 100644 index 2ef5839d..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/buttons/SimpleButton.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - -SimpleButton (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.buttons
-

Class SimpleButton

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.Sendable
    -
    -
    -
    -
    public class SimpleButton
    -extends MappedButton
    -
    A version of JoystickButton that is a MappedButton.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.first.wpilibj.buttons.Trigger

        -edu.wpi.first.wpilibj.buttons.Trigger.ButtonScheduler
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      SimpleButton(MappedJoystick joystick, - int buttonNumber) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      booleanget() -
      Get whether the button is pressed.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.buttons.Button

        -cancelWhenPressed, toggleWhenPressed, whenPressed, whenReleased, whileHeld
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.buttons.Trigger

        -cancelWhenActive, getSmartDashboardType, getTable, initTable, toggleWhenActive, whenActive, whenInactive, whileActive
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SimpleButton

        -
        public SimpleButton(@NotNull
        -                    MappedJoystick joystick,
        -                    int buttonNumber)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        joystick - The joystick the button is on.
        -
        buttonNumber - The port of the button. Note that button numbers begin at 1, not 0.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        get

        -
        public boolean get()
        -
        Get whether the button is pressed.
        -
        -
        Specified by:
        -
        get in class edu.wpi.first.wpilibj.buttons.Trigger
        -
        Returns:
        -
        true if the button is pressed, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/buttons/TriggerButton.html b/docs/org/usfirst/frc/team449/robot/oi/buttons/TriggerButton.html deleted file mode 100644 index 8eb4a5c2..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/buttons/TriggerButton.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - -TriggerButton (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.buttons
-

Class TriggerButton

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.Sendable
    -
    -
    -
    -
    public class TriggerButton
    -extends MappedButton
    -
    A button that gets triggered by a specific throttle being held down at or over a certain amount.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.first.wpilibj.buttons.Trigger

        -edu.wpi.first.wpilibj.buttons.Trigger.ButtonScheduler
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      TriggerButton(Throttle throttle, - double triggerAt) -
      Argument-based constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      booleanget() -
      Get whether this button is pressed.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.buttons.Button

        -cancelWhenPressed, toggleWhenPressed, whenPressed, whenReleased, whileHeld
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.buttons.Trigger

        -cancelWhenActive, getSmartDashboardType, getTable, initTable, toggleWhenActive, whenActive, whenInactive, whileActive
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        TriggerButton

        -
        public TriggerButton(@NotNull
        -                     Throttle throttle,
        -                     double triggerAt)
        -
        Argument-based constructor.
        -
        -
        Parameters:
        -
        throttle - The relevant throttle.
        -
        triggerAt - The percentage pressed to trigger at, from (0, 1]
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        get

        -
        public boolean get()
        -
        Get whether this button is pressed.
        -
        -
        Specified by:
        -
        get in class edu.wpi.first.wpilibj.buttons.Trigger
        -
        Returns:
        -
        true if the throttle's output is greater than or equal to the trigger threshold, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/buttons/dPadButton.html b/docs/org/usfirst/frc/team449/robot/oi/buttons/dPadButton.html deleted file mode 100644 index 87a4555c..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/buttons/dPadButton.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - -dPadButton (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.buttons
-

Class dPadButton

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.Sendable
    -
    -
    -
    -
    public class dPadButton
    -extends MappedButton
    -
    A Button triggered by pushing the D-pad to a specific angle.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Nested Class Summary

      -
        -
      • - - -

        Nested classes/interfaces inherited from class edu.wpi.first.wpilibj.buttons.Trigger

        -edu.wpi.first.wpilibj.buttons.Trigger.ButtonScheduler
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      dPadButton(MappedJoystick joystick, - int angle) -
      Explicit argument constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      booleanget() -
      Get whether this button is pressed
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.buttons.Button

        -cancelWhenPressed, toggleWhenPressed, whenPressed, whenReleased, whileHeld
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.buttons.Trigger

        -cancelWhenActive, getSmartDashboardType, getTable, initTable, toggleWhenActive, whenActive, whenInactive, whileActive
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        dPadButton

        -
        public dPadButton(@NotNull
        -                  MappedJoystick joystick,
        -                  int angle)
        -
        Explicit argument constructor.
        -
        -
        Parameters:
        -
        joystick - The joystick with the D-pad.
        -
        angle - The angle that the D-pad must be pushed to to trigger this button.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        get

        -
        public boolean get()
        -
        Get whether this button is pressed
        -
        -
        Specified by:
        -
        get in class edu.wpi.first.wpilibj.buttons.Trigger
        -
        Returns:
        -
        true if the joystick's D-pad is pressed to the given angle, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/buttons/package-frame.html b/docs/org/usfirst/frc/team449/robot/oi/buttons/package-frame.html deleted file mode 100644 index ea6e6ad3..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/buttons/package-frame.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.buttons (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.oi.buttons

- - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/buttons/package-summary.html b/docs/org/usfirst/frc/team449/robot/oi/buttons/package-summary.html deleted file mode 100644 index 7e1061a8..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/buttons/package-summary.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.buttons (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.oi.buttons

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    CommandButton -
    A button mapped to a command.
    -
    dPadButton -
    A Button triggered by pushing the D-pad to a specific angle.
    -
    SimpleButton -
    A version of JoystickButton that is a MappedButton.
    -
    TriggerButton -
    A button that gets triggered by a specific throttle being held down at or over a certain amount.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/buttons/package-tree.html b/docs/org/usfirst/frc/team449/robot/oi/buttons/package-tree.html deleted file mode 100644 index 236d81ff..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/buttons/package-tree.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.buttons Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.oi.buttons

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • org.usfirst.frc.team449.robot.oi.buttons.CommandButton
    • -
    • edu.wpi.first.wpilibj.buttons.Trigger (implements edu.wpi.first.wpilibj.Sendable) -
        -
      • edu.wpi.first.wpilibj.buttons.Button - -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOriented.html b/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOriented.html deleted file mode 100644 index 8f31c95f..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOriented.html +++ /dev/null @@ -1,370 +0,0 @@ - - - - - -OIFieldOriented (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.fieldoriented
-

Class OIFieldOriented

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    Updatable, OI
    -
    -
    -
    Direct Known Subclasses:
    -
    OIFieldOrientedPosCos
    -
    -
    -
    -
    public abstract class OIFieldOriented
    -extends java.lang.Object
    -implements OI
    -
    An OI that gives an absolute heading, relative to the field, and a velocity.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      OIFieldOriented() 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and TypeMethod and Description
      abstract java.lang.DoublegetTheta() -
      Get the absolute angle for the robot to move towards.
      -
      java.lang.DoublegetThetaCached() -
      Get the cached absolute angle for the robot to move towards.
      -
      abstract doublegetVel() -
      Get the velocity for the robot to go at.
      -
      doublegetVelCached() -
      Get the cached velocity for the robot to go at.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OIFieldOriented

        -
        public OIFieldOriented()
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getTheta

        -
        @Nullable
        -public abstract java.lang.Double getTheta()
        -
        Get the absolute angle for the robot to move towards.
        -
        -
        Returns:
        -
        An angular setpoint for the robot in degrees, where 0 is pointing at the other alliance's driver station - and 90 is pointing at the left wall when looking out from the driver station. Returns null if vel is 0.
        -
        -
      • -
      - - - -
        -
      • -

        getVel

        -
        public abstract double getVel()
        -
        Get the velocity for the robot to go at.
        -
        -
        Returns:
        -
        A velocity from [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        getThetaCached

        -
        @Nullable
        -public java.lang.Double getThetaCached()
        -
        Get the cached absolute angle for the robot to move towards.
        -
        -
        Returns:
        -
        An angular setpoint for the robot in degrees, where 0 is pointing at the other alliance's driver station - and 90 is pointing at the left wall when looking out from the driver station. Returns null if vel is 0.
        -
        -
      • -
      - - - -
        -
      • -

        getVelCached

        -
        public double getVelCached()
        -
        Get the cached velocity for the robot to go at.
        -
        -
        Returns:
        -
        A velocity from [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOrientedPosCos.html b/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOrientedPosCos.html deleted file mode 100644 index 5281b951..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/OIFieldOrientedPosCos.html +++ /dev/null @@ -1,350 +0,0 @@ - - - - - -OIFieldOrientedPosCos (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.fieldoriented
-

Class OIFieldOrientedPosCos

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    Updatable, OI
    -
    -
    -
    -
    public class OIFieldOrientedPosCos
    -extends OIFieldOriented
    -
    A field-oriented OI that always points the robot an angle where cosine is positive, i.e. always pointing away from the driver station.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidcalcValues() -
      Calculate the theta and vel values, can be called multiple times per tic but will only execute logic once.
      -
      java.lang.DoublegetTheta() -
      Get the absolute angle for the robot to move towards.
      -
      doublegetVel() -
      Get the velocity for the robot to go at.
      -
      - -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OIFieldOrientedPosCos

        -
        public OIFieldOrientedPosCos(@NotNull
        -                             Throttle xThrottle,
        -                             @NotNull
        -                             Throttle yThrottle,
        -                             double rDeadband)
        -
        Default constructor
        -
        -
        Parameters:
        -
        xThrottle - The throttle for the X-axis, which points towards the opposing driver station.
        -
        yThrottle - The throttle for the Y-axis, which points towards the driver's left.
        -
        rDeadband - The radius, from [0,1], within which the joystick is considered to be "at rest." Defaults to 0.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        calcValues

        -
        protected void calcValues()
        -
        Calculate the theta and vel values, can be called multiple times per tic but will only execute logic once.
        -
      • -
      - - - -
        -
      • -

        getTheta

        -
        @Nullable
        -public java.lang.Double getTheta()
        -
        Get the absolute angle for the robot to move towards.
        -
        -
        Specified by:
        -
        getTheta in class OIFieldOriented
        -
        Returns:
        -
        An angular setpoint for the robot in degrees, where 0 is pointing at the other alliance's driver station - and 90 is pointing at the left wall when looking out from the driver station.
        -
        -
      • -
      - - - -
        -
      • -

        getVel

        -
        public double getVel()
        -
        Get the velocity for the robot to go at.
        -
        -
        Specified by:
        -
        getVel in class OIFieldOriented
        -
        Returns:
        -
        A velocity from [-1, 1].
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-frame.html b/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-frame.html deleted file mode 100644 index ed0bde89..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-frame.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.fieldoriented (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.oi.fieldoriented

- - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-summary.html b/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-summary.html deleted file mode 100644 index 47364413..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-summary.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.fieldoriented (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.oi.fieldoriented

-
-
-
    -
  • - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    OIFieldOriented -
    An OI that gives an absolute heading, relative to the field, and a velocity.
    -
    OIFieldOrientedPosCos -
    A field-oriented OI that always points the robot an angle where cosine is positive, i.e.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-tree.html b/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-tree.html deleted file mode 100644 index 509ac1bd..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/fieldoriented/package-tree.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.fieldoriented Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.oi.fieldoriented

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented (implements org.usfirst.frc.team449.robot.oi.OI) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/package-frame.html b/docs/org/usfirst/frc/team449/robot/oi/package-frame.html deleted file mode 100644 index 01891245..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.oi

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/oi/package-summary.html b/docs/org/usfirst/frc/team449/robot/oi/package-summary.html deleted file mode 100644 index f995c5ed..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/package-summary.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.oi

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    OI 
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/package-tree.html b/docs/org/usfirst/frc/team449/robot/oi/package-tree.html deleted file mode 100644 index aec2d547..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/package-tree.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.oi

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable -
      -
    • org.usfirst.frc.team449.robot.oi.OI
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/Throttle.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/Throttle.html deleted file mode 100644 index b47188b9..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/Throttle.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - -Throttle (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.throttles
-

Interface Throttle

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      doublegetValue() -
      Get the output of the throttle this object represents.
      -
      doublegetValueCached() -
      Get the cached output of the throttle this object represents.
      -
      -
        -
      • - - -

        Methods inherited from interface org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable

        -update
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getValue

        -
        double getValue()
        -
        Get the output of the throttle this object represents.
        -
        -
        Returns:
        -
        The output from [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        getValueCached

        -
        double getValueCached()
        -
        Get the cached output of the throttle this object represents.
        -
        -
        Returns:
        -
        The output from [-1, 1].
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleBasic.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleBasic.html deleted file mode 100644 index 9bd1d110..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleBasic.html +++ /dev/null @@ -1,466 +0,0 @@ - - - - - -ThrottleBasic (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.throttles
-

Class ThrottleBasic

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.PIDSource, Updatable, Throttle
    -
    -
    -
    Direct Known Subclasses:
    -
    ThrottleDeadbanded
    -
    -
    -
    -
    public class ThrottleBasic
    -extends java.lang.Object
    -implements Throttle, edu.wpi.first.wpilibj.PIDSource
    -
    A class representing a single axis on a joystick.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected doublecachedOutput -
      The cached value of the output.
      -
      protected edu.wpi.first.wpilibj.Joystickstick -
      The stick we're using
      -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ThrottleBasic(MappedJoystick stick, - int axis, - boolean inverted) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      edu.wpi.first.wpilibj.PIDSourceTypegetPIDSourceType() -
      Get which parameter of the device you are using as a process control variable.
      -
      doublegetValue() -
      Gets the raw value from the stick and inverts it if necessary.
      -
      doublegetValueCached() -
      Get the cached output of the throttle this object represents.
      -
      doublepidGet() -
      Get the result to use in PIDController.
      -
      voidsetPIDSourceType(edu.wpi.first.wpilibj.PIDSourceType pidSource) -
      Set which parameter of the device you are using as a process control variable.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        stick

        -
        @NotNull
        -protected final edu.wpi.first.wpilibj.Joystick stick
        -
        The stick we're using
        -
      • -
      - - - -
        -
      • -

        cachedOutput

        -
        protected double cachedOutput
        -
        The cached value of the output.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ThrottleBasic

        -
        public ThrottleBasic(@NotNull
        -                     MappedJoystick stick,
        -                     int axis,
        -                     boolean inverted)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        stick - The Joystick object being used
        -
        axis - The axis being used. 0 is X, 1 is Y, 2 is Z.
        -
        inverted - Whether or not to invert the joystick input. Defaults to false.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getValue

        -
        public double getValue()
        -
        Gets the raw value from the stick and inverts it if necessary.
        -
        -
        Specified by:
        -
        getValue in interface Throttle
        -
        Returns:
        -
        The raw joystick output, on [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        getValueCached

        -
        public double getValueCached()
        -
        Get the cached output of the throttle this object represents.
        -
        -
        Specified by:
        -
        getValueCached in interface Throttle
        -
        Returns:
        -
        The output from [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      - - - -
        -
      • -

        getPIDSourceType

        -
        public edu.wpi.first.wpilibj.PIDSourceType getPIDSourceType()
        -
        Get which parameter of the device you are using as a process control variable.
        -
        -
        Specified by:
        -
        getPIDSourceType in interface edu.wpi.first.wpilibj.PIDSource
        -
        Returns:
        -
        the currently selected PID source parameter
        -
        -
      • -
      - - - -
        -
      • -

        setPIDSourceType

        -
        public void setPIDSourceType(edu.wpi.first.wpilibj.PIDSourceType pidSource)
        -
        Set which parameter of the device you are using as a process control variable.
        -
        -
        Specified by:
        -
        setPIDSourceType in interface edu.wpi.first.wpilibj.PIDSource
        -
        Parameters:
        -
        pidSource - An enum to select the parameter.
        -
        -
      • -
      - - - -
        -
      • -

        pidGet

        -
        public double pidGet()
        -
        Get the result to use in PIDController.
        -
        -
        Specified by:
        -
        pidGet in interface edu.wpi.first.wpilibj.PIDSource
        -
        Returns:
        -
        the result to use in PIDController
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleDeadbanded.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleDeadbanded.html deleted file mode 100644 index 2c12c52b..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleDeadbanded.html +++ /dev/null @@ -1,368 +0,0 @@ - - - - - -ThrottleDeadbanded (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.throttles
-

Class ThrottleDeadbanded

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected doubledeadband -
      The value below which the joystick input is considered 0.
      -
      - -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ThrottleDeadbanded(MappedJoystick stick, - int axis, - double deadband, - java.lang.Double smoothingTimeSecs, - boolean inverted) -
      A basic constructor.
      -
      -
    • -
    - - -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        deadband

        -
        protected final double deadband
        -
        The value below which the joystick input is considered 0.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ThrottleDeadbanded

        -
        public ThrottleDeadbanded(@NotNull
        -                          MappedJoystick stick,
        -                          int axis,
        -                          double deadband,
        -                          @Nullable
        -                          java.lang.Double smoothingTimeSecs,
        -                          boolean inverted)
        -
        A basic constructor.
        -
        -
        Parameters:
        -
        stick - The Joystick object being used
        -
        axis - The axis being used. 0 is X, 1 is Y, 2 is Z.
        -
        deadband - The deadband below which the input will be read as 0, on [0, 1]. Defaults to 0.
        -
        smoothingTimeSecs - How many seconds of input to take into account when smoothing. Defaults to 0.02.
        -
        inverted - Whether or not to invert the joystick input. Defaults to false.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getValue

        -
        public double getValue()
        -
        Gets the value from the joystick and deadbands it. The non-deadband values are scaled to avoid a discontinuity.
        -
        -
        Specified by:
        -
        getValue in interface Throttle
        -
        Overrides:
        -
        getValue in class ThrottleBasic
        -
        Returns:
        -
        The joystick's value, after being deadbanded.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleExponential.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleExponential.html deleted file mode 100644 index e53e8609..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleExponential.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - - -ThrottleExponential (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.throttles
-

Class ThrottleExponential

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.PIDSource, Updatable, Throttle
    -
    -
    -
    -
    public class ThrottleExponential
    -extends ThrottleDeadbanded
    -
    An exponentially-scaled throttle.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected doublebase -
      The base that is raised to the power of the joystick input.
      -
      - - -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ThrottleExponential(MappedJoystick stick, - int axis, - double deadband, - java.lang.Double smoothingTimeSecs, - boolean inverted, - double base) -
      A basic constructor.
      -
      -
    • -
    - - -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        base

        -
        protected final double base
        -
        The base that is raised to the power of the joystick input.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ThrottleExponential

        -
        public ThrottleExponential(@NotNull
        -                           MappedJoystick stick,
        -                           int axis,
        -                           double deadband,
        -                           @Nullable
        -                           java.lang.Double smoothingTimeSecs,
        -                           boolean inverted,
        -                           double base)
        -
        A basic constructor.
        -
        -
        Parameters:
        -
        stick - The Joystick object being used
        -
        axis - The axis being used.
        -
        deadband - The deadband below which the input will be read as 0, on [0, 1]. Defaults to 0.
        -
        smoothingTimeSecs - How many seconds of input to take into account when smoothing. Defaults to 0.02.
        -
        inverted - Whether or not to invert the joystick input. Defaults to false.
        -
        base - The base that is raised to the power of the joystick input.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getValue

        -
        public double getValue()
        -
        Raises the base to the value of the deadbanded joystick output, adjusting for sign.
        -
        -
        Specified by:
        -
        getValue in interface Throttle
        -
        Overrides:
        -
        getValue in class ThrottleDeadbanded
        -
        Returns:
        -
        The processed value of the joystick
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottlePolynomial.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottlePolynomial.html deleted file mode 100644 index f21024e7..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottlePolynomial.html +++ /dev/null @@ -1,381 +0,0 @@ - - - - - -ThrottlePolynomial (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.throttles
-

Class ThrottlePolynomial

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.PIDSource, Updatable, Throttle
    -
    -
    -
    -
    public class ThrottlePolynomial
    -extends ThrottleDeadbanded
    -
    A polynomially scaled throttle.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        polynomial

        -
        @NotNull
        -protected final Polynomial polynomial
        -
        The polynomially that scales the throttle.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ThrottlePolynomial

        -
        public ThrottlePolynomial(@NotNull
        -                          MappedJoystick stick,
        -                          int axis,
        -                          double deadband,
        -                          @Nullable
        -                          java.lang.Double smoothingTimeSecs,
        -                          boolean inverted,
        -                          @NotNull
        -                          Polynomial polynomial)
        -
        A basic constructor.
        -
        -
        Parameters:
        -
        stick - The Joystick object being used
        -
        axis - The axis being used. 0 is X, 1 is Y, 2 is Z.
        -
        deadband - The deadband below which the input will be read as 0, on [0, 1]. Defaults to 0.
        -
        smoothingTimeSecs - How many seconds of input to take into account when smoothing. Defaults to 0.02.
        -
        inverted - Whether or not to invert the joystick input. Defaults to false.
        -
        polynomial - The polynomially that scales the throttle. Must not have any negative exponents.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getValue

        -
        public double getValue()
        -
        Passes the deadbanded joystick output to the polynomial, while preserving sign.
        -
        -
        Specified by:
        -
        getValue in interface Throttle
        -
        Overrides:
        -
        getValue in class ThrottleDeadbanded
        -
        Returns:
        -
        The processed value of the joystick
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleSum.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleSum.html deleted file mode 100644 index bb176af6..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/ThrottleSum.html +++ /dev/null @@ -1,390 +0,0 @@ - - - - - -ThrottleSum (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.throttles
-

Class ThrottleSum

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    Updatable, Throttle
    -
    -
    -
    -
    public class ThrottleSum
    -extends java.lang.Object
    -implements Throttle
    -
    A Throttle that sums any number of other Throttles.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected doublecachedValue -
      The cached output.
      -
      protected Throttle[]throttles -
      The throttles to sum.
      -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ThrottleSum(Throttle[] throttles) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      doublegetValue() -
      Sums the throttles and returns their output
      -
      doublegetValueCached() -
      Get the cached output of the throttle this object represents.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        throttles

        -
        @NotNull
        -protected final Throttle[] throttles
        -
        The throttles to sum.
        -
      • -
      - - - -
        -
      • -

        cachedValue

        -
        protected double cachedValue
        -
        The cached output.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ThrottleSum

        -
        public ThrottleSum(@NotNull
        -                   Throttle[] throttles)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        throttles - The throttles to sum.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getValue

        -
        public double getValue()
        -
        Sums the throttles and returns their output
        -
        -
        Specified by:
        -
        getValue in interface Throttle
        -
        Returns:
        -
        The summed outputs, clipped to [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        getValueCached

        -
        public double getValueCached()
        -
        Get the cached output of the throttle this object represents.
        -
        -
        Specified by:
        -
        getValueCached in interface Throttle
        -
        Returns:
        -
        The output from [-1, 1].
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/package-frame.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/package-frame.html deleted file mode 100644 index c747392f..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/package-frame.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.throttles (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.oi.throttles

- - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/package-summary.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/package-summary.html deleted file mode 100644 index d0f4a248..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/package-summary.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.throttles (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.oi.throttles

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    Throttle -
    An object representing an axis of a stick on a joystick.
    -
    -
  • -
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    ThrottleBasic -
    A class representing a single axis on a joystick.
    -
    ThrottleDeadbanded -
    A throttle with a deadband and smoothing.
    -
    ThrottleExponential -
    An exponentially-scaled throttle.
    -
    ThrottlePolynomial -
    A polynomially scaled throttle.
    -
    ThrottleSum -
    A Throttle that sums any number of other Throttles.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/throttles/package-tree.html b/docs/org/usfirst/frc/team449/robot/oi/throttles/package-tree.html deleted file mode 100644 index d921501d..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/throttles/package-tree.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.throttles Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.oi.throttles

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic (implements edu.wpi.first.wpilibj.PIDSource, org.usfirst.frc.team449.robot.oi.throttles.Throttle) - -
    • -
    • org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum (implements org.usfirst.frc.team449.robot.oi.throttles.Throttle)
    • -
    -
  • -
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable -
      -
    • org.usfirst.frc.team449.robot.oi.throttles.Throttle
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/OIOutreach.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/OIOutreach.html deleted file mode 100644 index 7bc470ea..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/OIOutreach.html +++ /dev/null @@ -1,398 +0,0 @@ - - - - - -OIOutreach (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.unidirectional
-

Class OIOutreach

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach
    • -
    -
  • -
-
- -
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      booleancommandingStraight() -
      Whether the driver is trying to drive straight.
      -
      doublegetLeftOutput() -
      The output to be given to the left side of the drive.
      -
      doublegetLeftOutputCached() -
      The cached output to be given to the left side of the drive.
      -
      doublegetRightOutput() -
      The output to be given to the right side of the drive.
      -
      doublegetRightOutputCached() -
      The cached output to be given to the right side of the drive.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getLeftOutput

        -
        public double getLeftOutput()
        -
        The output to be given to the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftOutput in interface OIUnidirectional
        -
        Returns:
        -
        Output to left side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getRightOutput

        -
        public double getRightOutput()
        -
        The output to be given to the right side of the drive.
        -
        -
        Specified by:
        -
        getRightOutput in interface OIUnidirectional
        -
        Returns:
        -
        Output to right side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        commandingStraight

        -
        public boolean commandingStraight()
        -
        Whether the driver is trying to drive straight.
        -
        -
        Specified by:
        -
        commandingStraight in interface OIUnidirectional
        -
        Returns:
        -
        True if the driver is trying to drive straight, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftOutputCached

        -
        public double getLeftOutputCached()
        -
        The cached output to be given to the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftOutputCached in interface OIUnidirectional
        -
        Returns:
        -
        Output to left side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getRightOutputCached

        -
        public double getRightOutputCached()
        -
        The cached output to be given to the right side of the drive.
        -
        -
        Specified by:
        -
        getRightOutputCached in interface OIUnidirectional
        -
        Returns:
        -
        Output to right side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/OIUnidirectional.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/OIUnidirectional.html deleted file mode 100644 index 4ddf2c6f..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/OIUnidirectional.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - -OIUnidirectional (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.unidirectional
-

Interface OIUnidirectional

-
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods 
      Modifier and TypeMethod and Description
      booleancommandingStraight() -
      Whether the driver is trying to drive straight.
      -
      doublegetLeftOutput() -
      The output to be given to the left side of the drive.
      -
      doublegetLeftOutputCached() -
      The cached output to be given to the left side of the drive.
      -
      doublegetRightOutput() -
      The output to be given to the right side of the drive.
      -
      doublegetRightOutputCached() -
      The cached output to be given to the right side of the drive.
      -
      -
        -
      • - - -

        Methods inherited from interface org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable

        -update
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getLeftOutput

        -
        double getLeftOutput()
        -
        The output to be given to the left side of the drive.
        -
        -
        Returns:
        -
        Output to left side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getRightOutput

        -
        double getRightOutput()
        -
        The output to be given to the right side of the drive.
        -
        -
        Returns:
        -
        Output to right side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        commandingStraight

        -
        boolean commandingStraight()
        -
        Whether the driver is trying to drive straight.
        -
        -
        Returns:
        -
        True if the driver is trying to drive straight, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftOutputCached

        -
        double getLeftOutputCached()
        -
        The cached output to be given to the left side of the drive.
        -
        -
        Returns:
        -
        Output to left side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getRightOutputCached

        -
        double getRightOutputCached()
        -
        The cached output to be given to the right side of the drive.
        -
        -
        Returns:
        -
        Output to right side from [-1, 1]
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcade.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcade.html deleted file mode 100644 index 6392a5d6..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcade.html +++ /dev/null @@ -1,476 +0,0 @@ - - - - - -OIArcade (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.unidirectional.arcade
-

Class OIArcade

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade
    • -
    -
  • -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      OIArcade() 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and TypeMethod and Description
      booleancommandingStraight() -
      Whether the driver is trying to drive straight.
      -
      abstract doublegetFwd() -
      Get the velocity input.
      -
      doublegetFwdCached() -
      Get the cached velocity input.
      -
      doublegetLeftOutput() -
      The output to be given to the left side of the drive.
      -
      doublegetLeftOutputCached() -
      The cached output to be given to the left side of the drive.
      -
      doublegetRightOutput() -
      The output to be given to the right side of the drive.
      -
      doublegetRightOutputCached() -
      The cached output to be given to the right side of the drive.
      -
      abstract doublegetRot() -
      Get the rotational input.
      -
      doublegetRotCached() -
      Get the cached rotational input.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OIArcade

        -
        public OIArcade()
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getRot

        -
        public abstract double getRot()
        -
        Get the rotational input.
        -
        -
        Returns:
        -
        rotational velocity component from [-1, 1], where 1 is right and -1 is left.
        -
        -
      • -
      - - - -
        -
      • -

        getFwd

        -
        public abstract double getFwd()
        -
        Get the velocity input.
        -
        -
        Returns:
        -
        forward velocity component from [-1, 1], where 1 is forwards and -1 is backwards
        -
        -
      • -
      - - - -
        -
      • -

        getRotCached

        -
        public double getRotCached()
        -
        Get the cached rotational input.
        -
        -
        Returns:
        -
        rotational velocity component from [-1, 1], where 1 is right and -1 is left.
        -
        -
      • -
      - - - -
        -
      • -

        getFwdCached

        -
        public double getFwdCached()
        -
        Get the cached velocity input.
        -
        -
        Returns:
        -
        forward velocity component from [-1, 1], where 1 is forwards and -1 is backwards
        -
        -
      • -
      - - - -
        -
      • -

        getLeftOutput

        -
        public double getLeftOutput()
        -
        The output to be given to the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftOutput in interface OIUnidirectional
        -
        Returns:
        -
        Output to left side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getRightOutput

        -
        public double getRightOutput()
        -
        The output to be given to the right side of the drive.
        -
        -
        Specified by:
        -
        getRightOutput in interface OIUnidirectional
        -
        Returns:
        -
        Output to right side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        commandingStraight

        -
        public boolean commandingStraight()
        -
        Whether the driver is trying to drive straight.
        -
        -
        Specified by:
        -
        commandingStraight in interface OIUnidirectional
        -
        Returns:
        -
        True if the driver is trying to drive straight, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        getLeftOutputCached

        -
        public double getLeftOutputCached()
        -
        The cached output to be given to the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftOutputCached in interface OIUnidirectional
        -
        Returns:
        -
        Output to left side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getRightOutputCached

        -
        public double getRightOutputCached()
        -
        The cached output to be given to the right side of the drive.
        -
        -
        Specified by:
        -
        getRightOutputCached in interface OIUnidirectional
        -
        Returns:
        -
        Output to right side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeSimple.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeSimple.html deleted file mode 100644 index aada2eda..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeSimple.html +++ /dev/null @@ -1,331 +0,0 @@ - - - - - -OIArcadeSimple (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.unidirectional.arcade
-

Class OIArcadeSimple

-
-
- -
- -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OIArcadeSimple

        -
        public OIArcadeSimple(@NotNull
        -                      Throttle rotThrottle,
        -                      @NotNull
        -                      Throttle velThrottle)
        -
        Default constructor
        -
        -
        Parameters:
        -
        rotThrottle - The throttle for rotating the robot.
        -
        velThrottle - The throttle for driving straight.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getRot

        -
        public double getRot()
        -
        Description copied from class: OIArcade
        -
        Get the rotational input.
        -
        -
        Specified by:
        -
        getRot in class OIArcade
        -
        Returns:
        -
        rotational velocity component
        -
        -
      • -
      - - - -
        -
      • -

        getFwd

        -
        public double getFwd()
        -
        Description copied from class: OIArcade
        -
        Get the velocity input.
        -
        -
        Specified by:
        -
        getFwd in class OIArcade
        -
        Returns:
        -
        forward velocity component
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeWithDPad.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeWithDPad.html deleted file mode 100644 index 3778b8af..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/OIArcadeWithDPad.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - -OIArcadeWithDPad (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.unidirectional.arcade
-

Class OIArcadeWithDPad

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      OIArcadeWithDPad(Throttle rotThrottle, - Throttle fwdThrottle, - double dPadShift, - boolean invertDPad, - MappedJoystick gamepad, - Polynomial scaleRotByFwdPoly, - double turnInPlaceRotScale) -
      Default constructor
      -
      -
    • -
    - - -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OIArcadeWithDPad

        -
        public OIArcadeWithDPad(@NotNull
        -                        Throttle rotThrottle,
        -                        @NotNull
        -                        Throttle fwdThrottle,
        -                        double dPadShift,
        -                        boolean invertDPad,
        -                        @Nullable
        -                        MappedJoystick gamepad,
        -                        @Nullable
        -                        Polynomial scaleRotByFwdPoly,
        -                        double turnInPlaceRotScale)
        -
        Default constructor
        -
        -
        Parameters:
        -
        gamepad - The gamepad containing the joysticks and buttons. Can be null if not using the D-pad.
        -
        rotThrottle - The throttle for rotating the robot.
        -
        fwdThrottle - The throttle for driving the robot straight.
        -
        invertDPad - Whether or not to invert the D-pad. Defaults to false.
        -
        dPadShift - How fast the dPad should turn the robot, on [0, 1]. Defaults to 0.
        -
        scaleRotByFwdPoly - The polynomial to scale the forwards throttle output by before using it to scale the - rotational throttle. Can be null, and if it is, rotational throttle is not scaled by - forwards throttle.
        -
        turnInPlaceRotScale - The scalar that scales the rotational throttle while turning in place.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getFwd

        -
        public double getFwd()
        -
        The output of the throttle controlling linear velocity, smoothed and adjusted according to what type of joystick - it is.
        -
        -
        Specified by:
        -
        getFwd in class OIArcade
        -
        Returns:
        -
        The processed stick output, sign-adjusted so 1 is forward and -1 is backwards.
        -
        -
      • -
      - - - -
        -
      • -

        getRot

        -
        public double getRot()
        -
        Get the output of the D-pad or turning joystick, whichever is in use. If both are in use, the D-pad takes - preference.
        -
        -
        Specified by:
        -
        getRot in class OIArcade
        -
        Returns:
        -
        The processed stick or D-pad output, sign-adjusted so 1 is right and -1 is left.
        -
        -
      • -
      - - - -
        -
      • -

        getHeader

        -
        @NotNull
        -public java.lang.String[] getHeader()
        -
        Get the headers for the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getHeader in interface Loggable
        -
        Returns:
        -
        An N-length array of String labels for data, where N is the length of the Object[] returned by getData().
        -
        -
      • -
      - - - -
        -
      • -

        getData

        -
        @NotNull
        -public java.lang.Object[] getData()
        -
        Get the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getData in interface Loggable
        -
        Returns:
        -
        An N-length array of Objects, where N is the number of labels given by getHeader.
        -
        -
      • -
      - - - -
        -
      • -

        getName

        -
        @NotNull
        -public java.lang.String getName()
        -
        Get the name of this object.
        -
        -
        Specified by:
        -
        getName in interface Loggable
        -
        Returns:
        -
        A string that will identify this object in the log file.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-frame.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-frame.html deleted file mode 100644 index 0ccd8dd0..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-frame.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional.arcade (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.oi.unidirectional.arcade

- - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-summary.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-summary.html deleted file mode 100644 index be724b4e..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-summary.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional.arcade (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.oi.unidirectional.arcade

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    OIArcade -
    An arcade-style dual joystick OI.
    -
    OIArcadeSimple -
    A simple, two-stick arcade drive OI.
    -
    OIArcadeWithDPad -
    An arcade OI with an option to use the D-pad for turning.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-tree.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-tree.html deleted file mode 100644 index 16cfd20f..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/arcade/package-tree.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional.arcade Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.oi.unidirectional.arcade

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade (implements org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional) -
        -
      • org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeSimple
      • -
      • org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeWithDPad (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable)
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-frame.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-frame.html deleted file mode 100644 index 0527ceb5..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.oi.unidirectional

-
-

Interfaces

- -

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-summary.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-summary.html deleted file mode 100644 index 7a2fa862..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-summary.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.oi.unidirectional

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    OIUnidirectional -
    An OI to control a robot with a unidirectional drive that has a left and right side (e.g.
    -
    -
  • -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    OIOutreach 
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-tree.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-tree.html deleted file mode 100644 index 3697ee95..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/package-tree.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.oi.unidirectional

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach (implements org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional)
    • -
    -
  • -
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable -
      -
    • org.usfirst.frc.team449.robot.oi.OI - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITank.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITank.html deleted file mode 100644 index 9a85ba51..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITank.html +++ /dev/null @@ -1,461 +0,0 @@ - - - - - -OITank (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.unidirectional.tank
-

Class OITank

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank
    • -
    -
  • -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      OITank() 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and TypeMethod and Description
      doublegetLeftOutput() -
      The output to be given to the left side of the drive.
      -
      doublegetLeftOutputCached() -
      The cached output to be given to the left side of the drive.
      -
      abstract doublegetLeftThrottle() -
      Get the throttle for the left side of the drive.
      -
      doublegetLeftThrottleCached() -
      Get the cached throttle for the left side of the drive.
      -
      doublegetRightOutput() -
      The output to be given to the right side of the drive.
      -
      doublegetRightOutputCached() -
      The cached output to be given to the right side of the drive.
      -
      abstract doublegetRightThrottle() -
      Get the throttle for the right side of the drive.
      -
      doublegetRightThrottleCached() -
      Get the cached throttle for the right side of the drive.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      - -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OITank

        -
        public OITank()
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getLeftThrottle

        -
        public abstract double getLeftThrottle()
        -
        Get the throttle for the left side of the drive.
        -
        -
        Returns:
        -
        percent of max speed for left motor cluster from [-1.0, 1.0]
        -
        -
      • -
      - - - -
        -
      • -

        getRightThrottle

        -
        public abstract double getRightThrottle()
        -
        Get the throttle for the right side of the drive.
        -
        -
        Returns:
        -
        percent of max speed for right motor cluster from [-1.0, 1.0]
        -
        -
      • -
      - - - -
        -
      • -

        getLeftThrottleCached

        -
        public double getLeftThrottleCached()
        -
        Get the cached throttle for the left side of the drive.
        -
        -
        Returns:
        -
        percent of max speed for left motor cluster from [-1.0, 1.0]
        -
        -
      • -
      - - - -
        -
      • -

        getRightThrottleCached

        -
        public double getRightThrottleCached()
        -
        Get the cached throttle for the right side of the drive.
        -
        -
        Returns:
        -
        percent of max speed for right motor cluster from [-1.0, 1.0]
        -
        -
      • -
      - - - -
        -
      • -

        getLeftOutput

        -
        public double getLeftOutput()
        -
        The output to be given to the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftOutput in interface OIUnidirectional
        -
        Returns:
        -
        Output to left side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getRightOutput

        -
        public double getRightOutput()
        -
        The output to be given to the right side of the drive.
        -
        -
        Specified by:
        -
        getRightOutput in interface OIUnidirectional
        -
        Returns:
        -
        Output to right side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getLeftOutputCached

        -
        public double getLeftOutputCached()
        -
        The cached output to be given to the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftOutputCached in interface OIUnidirectional
        -
        Returns:
        -
        Output to left side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        getRightOutputCached

        -
        public double getRightOutputCached()
        -
        The cached output to be given to the right side of the drive.
        -
        -
        Specified by:
        -
        getRightOutputCached in interface OIUnidirectional
        -
        Returns:
        -
        Output to right side from [-1, 1]
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITankSimple.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITankSimple.html deleted file mode 100644 index 2f1bdcb4..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/OITankSimple.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - - -OITankSimple (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.oi.unidirectional.tank
-

Class OITankSimple

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    Updatable, OI, OIUnidirectional
    -
    -
    -
    -
    public class OITankSimple
    -extends OITank
    -
    A simple tank drive, where each joystick controls a side of the robot.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OITankSimple

        -
        public OITankSimple(@NotNull
        -                    Throttle leftThrottle,
        -                    @NotNull
        -                    Throttle rightThrottle,
        -                    double commandingStraightTolerance)
        -
        Default constructor
        -
        -
        Parameters:
        -
        leftThrottle - The throttle for controlling the velocity of the left side of the drive.
        -
        rightThrottle - The throttle for controlling the velocity of the right side of the drive.
        -
        commandingStraightTolerance - The difference between left and right input within which the driver is - considered to be trying to drive straight. Defaults to 0.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getLeftThrottle

        -
        public double getLeftThrottle()
        -
        Get the throttle for the left side of the drive.
        -
        -
        Specified by:
        -
        getLeftThrottle in class OITank
        -
        Returns:
        -
        percent of max speed for left motor cluster from [-1.0, 1.0]
        -
        -
      • -
      - - - -
        -
      • -

        getRightThrottle

        -
        public double getRightThrottle()
        -
        Get the throttle for the right side of the drive.
        -
        -
        Specified by:
        -
        getRightThrottle in class OITank
        -
        Returns:
        -
        percent of max speed for right motor cluster from [-1.0, 1.0]
        -
        -
      • -
      - - - -
        -
      • -

        commandingStraight

        -
        public boolean commandingStraight()
        -
        Whether the driver is trying to drive straight.
        -
        -
        Returns:
        -
        True if the driver is trying to drive straight, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-frame.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-frame.html deleted file mode 100644 index 0c7ce6bc..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-frame.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional.tank (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.oi.unidirectional.tank

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-summary.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-summary.html deleted file mode 100644 index 2eae31c1..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-summary.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional.tank (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.oi.unidirectional.tank

-
-
-
    -
  • - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    OITank -
    A tank-style dual joystick OI.
    -
    OITankSimple -
    A simple tank drive, where each joystick controls a side of the robot.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-tree.html b/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-tree.html deleted file mode 100644 index 04e32905..00000000 --- a/docs/org/usfirst/frc/team449/robot/oi/unidirectional/tank/package-tree.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.oi.unidirectional.tank Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.oi.unidirectional.tank

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank (implements org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional) -
        -
      • org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITankSimple
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/BufferTimer.html b/docs/org/usfirst/frc/team449/robot/other/BufferTimer.html deleted file mode 100644 index 4cab9b50..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/BufferTimer.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - -BufferTimer (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.other
-

Class BufferTimer

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.other.BufferTimer
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class BufferTimer
    -extends java.lang.Object
    -
    A timer that checks if condition has been true for the past n seconds/milliseconds.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - - - - -
      Constructors 
      Constructor and Description
      BufferTimer(double bufferTimeSeconds) -
      Constructor for a time given in seconds.
      -
      BufferTimer(long bufferTimeMilliseconds) -
      Constructor for a time given in milliseconds.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      booleanget(boolean currentState) -
      Get whether the condition has been true for at least the specified amount of time.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        BufferTimer

        -
        public BufferTimer(double bufferTimeSeconds)
        -
        Constructor for a time given in seconds.
        -
        -
        Parameters:
        -
        bufferTimeSeconds - The amount of time the condition has to be true for, in seconds. Defaults to 0.
        -
        -
      • -
      - - - -
        -
      • -

        BufferTimer

        -
        public BufferTimer(long bufferTimeMilliseconds)
        -
        Constructor for a time given in milliseconds.
        -
        -
        Parameters:
        -
        bufferTimeMilliseconds - The amount of time the condition has to be true for, in milliseconds.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        get

        -
        public boolean get(boolean currentState)
        -
        Get whether the condition has been true for at least the specified amount of time.
        -
        -
        Parameters:
        -
        currentState - The current state of the condition.
        -
        Returns:
        -
        True if the condition has been true for the specified amount of time, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/Clock.html b/docs/org/usfirst/frc/team449/robot/other/Clock.html deleted file mode 100644 index 159ddf58..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/Clock.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - -Clock (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.other
-

Class Clock

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.other.Clock
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class Clock
    -extends java.lang.Object
    -
    A wrapper on System.currentTimeMillis that caches the time, to avoid calling the currentTimeMillis method.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static longcurrentTimeMillis() 
      static voidsetStartTime() -
      Sets the start time to the current time.
      -
      static voidupdateTime() -
      Updates the current time.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        updateTime

        -
        public static void updateTime()
        -
        Updates the current time.
        -
      • -
      - - - -
        -
      • -

        setStartTime

        -
        public static void setStartTime()
        -
        Sets the start time to the current time.
        -
      • -
      - - - -
        -
      • -

        currentTimeMillis

        -
        @Contract(pure=true)
        -public static long currentTimeMillis()
        -
        -
        Returns:
        -
        The time since the start time, in milliseconds.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/LogEvent.html b/docs/org/usfirst/frc/team449/robot/other/LogEvent.html deleted file mode 100644 index 58f22d87..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/LogEvent.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - - -LogEvent (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.other
-

Class LogEvent

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.other.LogEvent
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class LogEvent
    -extends java.lang.Object
    -
    An logged event with a message, timestamp, and calling class.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      LogEvent(java.lang.String message, - java.lang.Class caller) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.lang.StringtoString() -
      Turn this event into a string for logging.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        LogEvent

        -
        public LogEvent(@NotNull
        -                java.lang.String message,
        -                @NotNull
        -                java.lang.Class caller)
        -
        Default constructor. -

        - Note to future people: Don't rewrite this to get the calling class from the stack trace. It's possible, and makes - the code cleaner than taking the calling class as an argument, but getting the stack trace actually takes Java a - little while, and considering how often this constructor is called, that would significantly slow us down.

        -
        -
        Parameters:
        -
        message - The message of this event.
        -
        caller - The calling class. Should pretty much always be this.getClass().
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        toString

        -
        @NotNull
        -public java.lang.String toString()
        -
        Turn this event into a string for logging.
        -
        -
        Overrides:
        -
        toString in class java.lang.Object
        -
        Returns:
        -
        The time called, calling class, and message, comma-separated and in that order.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/Logger.html b/docs/org/usfirst/frc/team449/robot/other/Logger.html deleted file mode 100644 index 9a0c8974..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/Logger.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - -Logger (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.other
-

Class Logger

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.other.Logger
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    java.lang.Runnable
    -
    -
    -
    -
    public class Logger
    -extends java.lang.Object
    -implements java.lang.Runnable
    -
    A logger that logs telemetry data and individual events. Should be run as a separate thread from the main robot - loop.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      Logger(Loggable[] subsystems, - double loopTimeSecs, - java.lang.String eventLogFilename, - java.lang.String telemetryLogFilename) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static voidaddEvent(java.lang.String message, - java.lang.Class caller) -
      Log an event to be written to the event log file.
      -
      doublegetLoopTimeSecs() 
      voidrun() -
      Print out all logged events to the event log and write all the telemetry data to the telemetry log.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Logger

        -
        public Logger(@NotNull
        -              Loggable[] subsystems,
        -              double loopTimeSecs,
        -              @NotNull
        -              java.lang.String eventLogFilename,
        -              @NotNull
        -              java.lang.String telemetryLogFilename)
        -       throws java.io.IOException
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystems - The subsystems to log telemetry data from.
        -
        loopTimeSecs - The period of the loop for collecting telemetry data, in seconds.
        -
        eventLogFilename - The filepath of the log for events. Will have the timestamp and file extension - appended onto the end.
        -
        telemetryLogFilename - The filepath of the log for telemetry data. Will have the timestamp and file - extension appended onto the end.
        -
        Throws:
        -
        java.io.IOException - If the file names provided from the log can't be written to.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        addEvent

        -
        public static void addEvent(@NotNull
        -                            java.lang.String message,
        -                            @NotNull
        -                            java.lang.Class caller)
        -
        Log an event to be written to the event log file.
        -
        -
        Parameters:
        -
        message - The text of the event to log.
        -
        caller - The class causing the event. Almost always will be this.getClass().
        -
        -
      • -
      - - - -
        -
      • -

        run

        -
        public void run()
        -
        Print out all logged events to the event log and write all the telemetry data to the telemetry log.
        -
        -
        Specified by:
        -
        run in interface java.lang.Runnable
        -
        -
      • -
      - - - -
        -
      • -

        getLoopTimeSecs

        -
        public double getLoopTimeSecs()
        -
        -
        Returns:
        -
        The map-specified loop period of this logger, in seconds.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/MotionProfileData.html b/docs/org/usfirst/frc/team449/robot/other/MotionProfileData.html deleted file mode 100644 index a88942e8..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/MotionProfileData.html +++ /dev/null @@ -1,345 +0,0 @@ - - - - - -MotionProfileData (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.other
-

Class MotionProfileData

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.other.MotionProfileData
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class MotionProfileData
    -extends java.lang.Object
    -
    Data structure containing the array of points for the MP and a method to fill the MP from a csv file
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      MotionProfileData(java.lang.String filename, - boolean inverted, - boolean velocityOnly, - boolean resetPosition) -
      Default constructor
      -
      -
    • -
    - - -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MotionProfileData

        -
        public MotionProfileData(@NotNull
        -                         java.lang.String filename,
        -                         boolean inverted,
        -                         boolean velocityOnly,
        -                         boolean resetPosition)
        -
        Default constructor
        -
        -
        Parameters:
        -
        filename - The filename of the .csv with the motion profile data. The first line must be the number of - other lines.
        -
        inverted - Whether or not the profile is inverted (would be inverted if we're driving it backwards)
        -
        velocityOnly - Whether or not to only use velocity feed-forward. Used for tuning kV and kA. Defaults to - false.
        -
        resetPosition - Whether or not to reset the talon position when this profile starts.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getData

        -
        @NotNull
        -public double[][] getData()
        -
        -
        Returns:
        -
        A 2D array containing 3 values for each point- position, velocity, and delta time respectively.
        -
        -
      • -
      - - - -
        -
      • -

        isVelocityOnly

        -
        public boolean isVelocityOnly()
        -
        -
        Returns:
        -
        Whether to use position PID or not.
        -
        -
      • -
      - - - -
        -
      • -

        isInverted

        -
        public boolean isInverted()
        -
        -
        Returns:
        -
        Whether or not the profile is inverted because we're driving it backwards.
        -
        -
      • -
      - - - -
        -
      • -

        resetPosition

        -
        public boolean resetPosition()
        -
        -
        Returns:
        -
        Whether or not to reset the talon position when this profile starts.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/Polynomial.html b/docs/org/usfirst/frc/team449/robot/other/Polynomial.html deleted file mode 100644 index 12eee5e0..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/Polynomial.html +++ /dev/null @@ -1,331 +0,0 @@ - - - - - -Polynomial (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.other
-

Class Polynomial

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.other.Polynomial
    • -
    -
  • -
-
-
    -
  • -
    -
    -
    public class Polynomial
    -extends java.lang.Object
    -
    A polynomial of a single variable.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      Polynomial(java.util.Map<java.lang.Double,java.lang.Double> powerToCoefficientMap, - java.lang.Double scaleCoefficientSumTo) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      doubleget(double x) -
      Get the value of the polynomial given x.
      -
      java.util.Map<java.lang.Double,java.lang.Double>getPowerToCoefficientMap() 
      voidscaleCoefficientSum(double scaleTo) -
      Scale each coefficient so they sum to a given number.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Polynomial

        -
        public Polynomial(@Nullable
        -                  java.util.Map<java.lang.Double,java.lang.Double> powerToCoefficientMap,
        -                  @Nullable
        -                  java.lang.Double scaleCoefficientSumTo)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        powerToCoefficientMap - A map of the powers and coefficients of each term. Defaults to [1:1] if null or - 0-length.
        -
        scaleCoefficientSumTo - Scales each coefficient so they all add up to this number. Can be null to avoid - scaling.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        get

        -
        public double get(double x)
        -
        Get the value of the polynomial given x.
        -
        -
        Parameters:
        -
        x - The variable to be given to the polynomial.
        -
        Returns:
        -
        The value of the polynomial evaluated at |x|, then changed to the sign of x.
        -
        -
      • -
      - - - -
        -
      • -

        scaleCoefficientSum

        -
        public void scaleCoefficientSum(double scaleTo)
        -
        Scale each coefficient so they sum to a given number.
        -
        -
        Parameters:
        -
        scaleTo - The number to scale the sum of coefficients to.
        -
        -
      • -
      - - - -
        -
      • -

        getPowerToCoefficientMap

        -
        @NotNull
        -public java.util.Map<java.lang.Double,java.lang.Double> getPowerToCoefficientMap()
        -
        -
        Returns:
        -
        A map of the powers and coefficients of each term.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/UnidirectionalPoseEstimator.html b/docs/org/usfirst/frc/team449/robot/other/UnidirectionalPoseEstimator.html deleted file mode 100644 index d7f7d1e1..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/UnidirectionalPoseEstimator.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - -UnidirectionalPoseEstimator (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.other
-

Class UnidirectionalPoseEstimator<T extends SubsystemAHRS & DriveUnidirectional>

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator<T>
    • -
    -
  • -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      UnidirectionalPoseEstimator(T subsystem, - double absolutePosAngleTolerance, - double startX, - double startY, - double startTheta) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      booleanaddAbsolutePos(double x, - double y, - long time) -
      Add an absolute position at the given time stamp.
      -
      booleanaddAbsolutePos(double x, - double y, - long time, - double angle) -
      Add an absolute position at the given time stamp, using an angle measured to verify that the absolute position is - correct.
      -
      java.lang.Object[]getData() -
      Get the data this subsystem logs every loop.
      -
      java.lang.String[]getHeader() -
      Get the headers for the data this subsystem logs every loop.
      -
      java.lang.StringgetName() -
      Get the name of this object.
      -
      double[]getPos() -
      Get the current absolute position of the robot
      -
      voidrun() -
      Use the current gyro and encoder data to calculate how the robot has moved since the last time run was called.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        UnidirectionalPoseEstimator

        -
        public UnidirectionalPoseEstimator(@NotNull
        -                                   T subsystem,
        -                                   double absolutePosAngleTolerance,
        -                                   double startX,
        -                                   double startY,
        -                                   double startTheta)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to get gyro and encoder data from.
        -
        absolutePosAngleTolerance - The maximum amount, in degrees, a new absolute position's angle can be off from - the gyro reading and still be accepted as valid.
        -
        startX - The starting X of the robot, in feet. Defaults to 0.
        -
        startY - The starting Y of the robot, in feet. Defaults to 0.
        -
        startTheta - The starting angle of the robot, in degrees. Defaults to 0.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        run

        -
        public void run()
        -
        Use the current gyro and encoder data to calculate how the robot has moved since the last time run was called.
        -
        -
        Specified by:
        -
        run in interface java.lang.Runnable
        -
        -
      • -
      - - - -
        -
      • -

        addAbsolutePos

        -
        public boolean addAbsolutePos(double x,
        -                              double y,
        -                              long time)
        -
        Add an absolute position at the given time stamp.
        -
        -
        Parameters:
        -
        x - The absolute x, in feet
        -
        y - The absolute y, in feet
        -
        time - The time, in milleseconds after the robot code started, that the absolute position was recorded.
        -
        Returns:
        -
        true if the absolute position was the most recent received and was used, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        addAbsolutePos

        -
        public boolean addAbsolutePos(double x,
        -                              double y,
        -                              long time,
        -                              double angle)
        -
        Add an absolute position at the given time stamp, using an angle measured to verify that the absolute position is - correct.
        -
        -
        Parameters:
        -
        x - The absolute x, in feet
        -
        y - The absolute y, in feet
        -
        time - The time, in milleseconds after the robot code started, that the absolute position was recorded
        -
        angle - The absolute angle, in degrees.
        -
        Returns:
        -
        true if the absolute position was the most recent received and the angle was correct enough to be used, - false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        getPos

        -
        @NotNull
        -public double[] getPos()
        -
        Get the current absolute position of the robot
        -
        -
        Returns:
        -
        The current x,y position in feet.
        -
        -
      • -
      - - - -
        -
      • -

        getHeader

        -
        @NotNull
        -public java.lang.String[] getHeader()
        -
        Get the headers for the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getHeader in interface Loggable
        -
        Returns:
        -
        An N-length array of String labels for data, where N is the length of the Object[] returned by getData().
        -
        -
      • -
      - - - -
        -
      • -

        getData

        -
        @NotNull
        -public java.lang.Object[] getData()
        -
        Get the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getData in interface Loggable
        -
        Returns:
        -
        An N-length array of Objects, where N is the number of labels given by getHeader.
        -
        -
      • -
      - - - -
        -
      • -

        getName

        -
        @NotNull
        -public java.lang.String getName()
        -
        Get the name of this object.
        -
        -
        Specified by:
        -
        getName in interface Loggable
        -
        Returns:
        -
        A string that will identify this object in the log file.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/Updater.html b/docs/org/usfirst/frc/team449/robot/other/Updater.html deleted file mode 100644 index 8d9d9fec..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/Updater.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - -Updater (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.other
-

Class Updater

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • org.usfirst.frc.team449.robot.other.Updater
    • -
    -
  • -
-
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    java.lang.Runnable, MappedRunnable
    -
    -
    -
    -
    public class Updater
    -extends java.lang.Object
    -implements MappedRunnable
    -
    A Runnable for updating cached variables.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      Updater(Updatable[] updatables) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      voidrun() -
      Update all the updatables.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Updater

        -
        public Updater(@NotNull
        -               Updatable[] updatables)
        -
        Default constructor
        -
        -
        Parameters:
        -
        updatables - The objects to update.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        run

        -
        public void run()
        -
        Update all the updatables.
        -
        -
        Specified by:
        -
        run in interface java.lang.Runnable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/package-frame.html b/docs/org/usfirst/frc/team449/robot/other/package-frame.html deleted file mode 100644 index b23d1930..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/package-frame.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.other (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.other

- - - diff --git a/docs/org/usfirst/frc/team449/robot/other/package-summary.html b/docs/org/usfirst/frc/team449/robot/other/package-summary.html deleted file mode 100644 index 47253367..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/package-summary.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.other (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.other

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    BufferTimer -
    A timer that checks if condition has been true for the past n seconds/milliseconds.
    -
    Clock -
    A wrapper on System.currentTimeMillis that caches the time, to avoid calling the currentTimeMillis method.
    -
    LogEvent -
    An logged event with a message, timestamp, and calling class.
    -
    Logger -
    A logger that logs telemetry data and individual events.
    -
    MotionProfileData -
    Data structure containing the array of points for the MP and a method to fill the MP from a csv file
    -
    Polynomial -
    A polynomial of a single variable.
    -
    UnidirectionalPoseEstimator<T extends SubsystemAHRS & DriveUnidirectional> -
    A Runnable for pose estimation that can take absolute positions.
    -
    Updater -
    A Runnable for updating cached variables.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/other/package-tree.html b/docs/org/usfirst/frc/team449/robot/other/package-tree.html deleted file mode 100644 index 381a9fd3..00000000 --- a/docs/org/usfirst/frc/team449/robot/other/package-tree.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.other Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.other

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • org.usfirst.frc.team449.robot.other.BufferTimer
    • -
    • org.usfirst.frc.team449.robot.other.Clock
    • -
    • org.usfirst.frc.team449.robot.other.LogEvent
    • -
    • org.usfirst.frc.team449.robot.other.Logger (implements java.lang.Runnable)
    • -
    • org.usfirst.frc.team449.robot.other.MotionProfileData
    • -
    • org.usfirst.frc.team449.robot.other.Polynomial
    • -
    • org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator<T> (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable, org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable)
    • -
    • org.usfirst.frc.team449.robot.other.Updater (implements org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable)
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/package-frame.html b/docs/org/usfirst/frc/team449/robot/package-frame.html deleted file mode 100644 index 72698931..00000000 --- a/docs/org/usfirst/frc/team449/robot/package-frame.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/package-summary.html b/docs/org/usfirst/frc/team449/robot/package-summary.html deleted file mode 100644 index ec63e24b..00000000 --- a/docs/org/usfirst/frc/team449/robot/package-summary.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot

-
-
-
    -
  • - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    Robot -
    The main class of the robot, constructs all the subsystems and initializes default commands.
    -
    RobotMap2017 -
    The Jackson-compatible object representing the entire robot.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/package-tree.html b/docs/org/usfirst/frc/team449/robot/package-tree.html deleted file mode 100644 index 2106bf1f..00000000 --- a/docs/org/usfirst/frc/team449/robot/package-tree.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.RobotBase -
        -
      • edu.wpi.first.wpilibj.IterativeRobot -
          -
        • org.usfirst.frc.team449.robot.Robot
        • -
        -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.RobotMap2017
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/ClimberCurrentLimited.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/ClimberCurrentLimited.html deleted file mode 100644 index ed339391..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/ClimberCurrentLimited.html +++ /dev/null @@ -1,511 +0,0 @@ - - - - - -ClimberCurrentLimited (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.complex.climber
-

Class ClimberCurrentLimited

-
-
- -
- -
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.lang.Object[]getData() -
      Get the data this subsystem logs every loop.
      -
      java.lang.String[]getHeader() -
      Get the headers for the data this subsystem logs every loop.
      -
      java.lang.StringgetName() -
      Get the name of this object.
      -
      protected voidinitDefaultCommand() -
      Initialize the default command for a subsystem By default subsystems have no default command, but if they do, the - default command is set with this method.
      -
      booleanisConditionTrue() 
      booleanisConditionTrueCached() 
      booleanisMotorOn() 
      voidturnMotorOff() -
      Turns the motor off.
      -
      voidturnMotorOn() -
      Turns the motor on, and sets it to a map-specified speed.
      -
      voidupdate() -
      Updates all cached values with current ones.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getSmartDashboardType, getTable, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ClimberCurrentLimited

        -
        public ClimberCurrentLimited(@NotNull
        -                             FPSTalon talonSRX,
        -                             double maxPower,
        -                             @Nullable
        -                             SimpleMotor simpleMotor,
        -                             @NotNull
        -                             BufferTimer powerLimitTimer)
        -
        Default constructor
        -
        -
        Parameters:
        -
        talonSRX - The CANTalon controlling one of the climber motors.
        -
        maxPower - The maximum power at which the motor won't shut off.
        -
        simpleMotor - The other climber motor. Can be null.
        -
        powerLimitTimer - The buffer timer for the power-limited shutoff.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Initialize the default command for a subsystem By default subsystems have no default command, but if they do, the - default command is set with this method. It is called on all Subsystems by CommandBase in the users program after - all the Subsystems are created.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - -
        -
      • -

        getHeader

        -
        @NotNull
        -public java.lang.String[] getHeader()
        -
        Get the headers for the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getHeader in interface Loggable
        -
        Returns:
        -
        An N-length array of String labels for data, where N is the length of the Object[] returned by getData().
        -
        -
      • -
      - - - -
        -
      • -

        getData

        -
        @NotNull
        -public java.lang.Object[] getData()
        -
        Get the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getData in interface Loggable
        -
        Returns:
        -
        An N-length array of Objects, where N is the number of labels given by getHeader.
        -
        -
      • -
      - - - -
        -
      • -

        getName

        -
        @NotNull
        -public java.lang.String getName()
        -
        Get the name of this object.
        -
        -
        Specified by:
        -
        getName in interface edu.wpi.first.wpilibj.NamedSendable
        -
        Specified by:
        -
        getName in interface Loggable
        -
        Overrides:
        -
        getName in class edu.wpi.first.wpilibj.command.Subsystem
        -
        Returns:
        -
        A string that will identify this object in the log file.
        -
        -
      • -
      - - - -
        -
      • -

        turnMotorOn

        -
        public void turnMotorOn()
        -
        Turns the motor on, and sets it to a map-specified speed.
        -
        -
        Specified by:
        -
        turnMotorOn in interface SubsystemBinaryMotor
        -
        -
      • -
      - - - - - - - -
        -
      • -

        isMotorOn

        -
        public boolean isMotorOn()
        -
        -
        Specified by:
        -
        isMotorOn in interface SubsystemBinaryMotor
        -
        Returns:
        -
        true if the motor is on, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        isConditionTrue

        -
        public boolean isConditionTrue()
        -
        -
        Specified by:
        -
        isConditionTrue in interface SubsystemConditional
        -
        Returns:
        -
        true if the condition is met, false otherwise
        -
        -
      • -
      - - - -
        -
      • -

        isConditionTrueCached

        -
        public boolean isConditionTrueCached()
        -
        -
        Specified by:
        -
        isConditionTrueCached in interface SubsystemConditional
        -
        Returns:
        -
        true if the condition was met when cached, false otherwise
        -
        -
      • -
      - - - -
        -
      • -

        update

        -
        public void update()
        -
        Updates all cached values with current ones.
        -
        -
        Specified by:
        -
        update in interface Updatable
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-frame.html deleted file mode 100644 index a1d9a128..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.climber (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.complex.climber

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-summary.html deleted file mode 100644 index 16d0f640..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.climber (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.complex.climber

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    ClimberCurrentLimited -
    A climber subsystem that uses power monitoring to stop climbing.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-tree.html deleted file mode 100644 index 4d332f91..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/climber/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.climber Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.complex.climber

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/IntakeFixedAndActuated.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/IntakeFixedAndActuated.html deleted file mode 100644 index b9289b5e..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/IntakeFixedAndActuated.html +++ /dev/null @@ -1,421 +0,0 @@ - - - - - -IntakeFixedAndActuated (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.complex.intake
-

Class IntakeFixedAndActuated

-
-
- -
- -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        IntakeFixedAndActuated

        -
        public IntakeFixedAndActuated(@NotNull
        -                              MappedVictor fixedMotor,
        -                              double fixedAgitateSpeed,
        -                              double fixedIntakeSpeed,
        -                              @NotNull
        -                              MappedVictor actuatedMotor,
        -                              double actuatedSpeed,
        -                              @NotNull
        -                              MappedDoubleSolenoid piston)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        fixedMotor - The SimpleMotor powering the fixed intake.
        -
        fixedAgitateSpeed - The speed to run the fixed victor at to agitate balls, on [-1, 1]
        -
        fixedIntakeSpeed - The speed to run the fixed victor to intake balls, on [-1, 1]
        -
        actuatedMotor - The SimpleMotor powering the actuated intake.
        -
        actuatedSpeed - The speed to run the actuated victor to intake balls, on [-1, 1].
        -
        piston - The piston for raising and lowering the actuated intake.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setSolenoid

        -
        public void setSolenoid(@NotNull
        -                        edu.wpi.first.wpilibj.DoubleSolenoid.Value value)
        -
        -
        Specified by:
        -
        setSolenoid in interface SubsystemSolenoid
        -
        Parameters:
        -
        value - The position to set the solenoid to.
        -
        -
      • -
      - - - -
        -
      • -

        getSolenoidPosition

        -
        @NotNull
        -public edu.wpi.first.wpilibj.DoubleSolenoid.Value getSolenoidPosition()
        -
        -
        Specified by:
        -
        getSolenoidPosition in interface SubsystemSolenoid
        -
        Returns:
        -
        the current position of the solenoid.
        -
        -
      • -
      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - after all the Subsystems are created.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - - - - - - -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-frame.html deleted file mode 100644 index d07b866b..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.intake (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.complex.intake

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-summary.html deleted file mode 100644 index 234b1636..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.intake (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.complex.intake

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    IntakeFixedAndActuated -
    An intake with a piston that actuates it and a fixed and actuated motor.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-tree.html deleted file mode 100644 index 9f0e72d6..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/intake/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.intake Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.complex.intake

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/LoggingFlywheel.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/LoggingFlywheel.html deleted file mode 100644 index e9fbd035..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/LoggingFlywheel.html +++ /dev/null @@ -1,548 +0,0 @@ - - - - - -LoggingFlywheel (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.complex.shooter
-

Class LoggingFlywheel

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, Loggable, SubsystemFlywheel
    -
    -
    -
    -
    public class LoggingFlywheel
    -extends YamlSubsystem
    -implements Loggable, SubsystemFlywheel
    -
    A flywheel multiSubsystem with a single flywheel and a single-motor feeder system.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        LoggingFlywheel

        -
        public LoggingFlywheel(@NotNull
        -                       FPSTalon shooterTalon,
        -                       double shooterThrottle,
        -                       @NotNull
        -                       SimpleMotor feederMotor,
        -                       double feederThrottle,
        -                       double spinUpTimeSecs)
        -
        Default constructor
        -
        -
        Parameters:
        -
        shooterTalon - The TalonSRX controlling the flywheel.
        -
        shooterThrottle - The throttle, from [-1, 1], at which to run the multiSubsystem.
        -
        feederMotor - The motor controlling the feeder.
        -
        feederThrottle - The throttle, from [-1, 1], at which to run the feeder.
        -
        spinUpTimeSecs - The amount of time, in seconds, it takes for the multiSubsystem to get up to speed. - Defaults to 0.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Do nothing
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - -
        -
      • -

        getHeader

        -
        @NotNull
        -public java.lang.String[] getHeader()
        -
        Get the headers for the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getHeader in interface Loggable
        -
        Returns:
        -
        An N-length array of String labels for data, where N is the length of the Object[] returned by getData().
        -
        -
      • -
      - - - -
        -
      • -

        getData

        -
        @NotNull
        -public java.lang.Object[] getData()
        -
        Get the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getData in interface Loggable
        -
        Returns:
        -
        An N-length array of Objects, where N is the number of labels given by getHeader.
        -
        -
      • -
      - - - -
        -
      • -

        getName

        -
        @NotNull
        -public java.lang.String getName()
        -
        Get the name of this object.
        -
        -
        Specified by:
        -
        getName in interface edu.wpi.first.wpilibj.NamedSendable
        -
        Specified by:
        -
        getName in interface Loggable
        -
        Overrides:
        -
        getName in class edu.wpi.first.wpilibj.command.Subsystem
        -
        Returns:
        -
        A string that will identify this object in the log file.
        -
        -
      • -
      - - - -
        -
      • -

        turnFlywheelOn

        -
        public void turnFlywheelOn()
        -
        Turn the multiSubsystem on to a map-specified speed.
        -
        -
        Specified by:
        -
        turnFlywheelOn in interface SubsystemFlywheel
        -
        -
      • -
      - - - - - - - -
        -
      • -

        turnFeederOn

        -
        public void turnFeederOn()
        -
        Start feeding balls into the multiSubsystem.
        -
        -
        Specified by:
        -
        turnFeederOn in interface SubsystemFlywheel
        -
        -
      • -
      - - - -
        -
      • -

        turnFeederOff

        -
        public void turnFeederOff()
        -
        Stop feeding balls into the multiSubsystem.
        -
        -
        Specified by:
        -
        turnFeederOff in interface SubsystemFlywheel
        -
        -
      • -
      - - - - - - - - - - - -
        -
      • -

        getSpinUpTimeMillis

        -
        public long getSpinUpTimeMillis()
        -
        -
        Specified by:
        -
        getSpinUpTimeMillis in interface SubsystemFlywheel
        -
        Returns:
        -
        Time from giving the multiSubsystem voltage to being ready to fire, in milliseconds.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-frame.html deleted file mode 100644 index c15e01d8..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.shooter (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.complex.shooter

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-summary.html deleted file mode 100644 index 9f41a100..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.shooter (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.complex.shooter

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    LoggingFlywheel -
    A flywheel multiSubsystem with a single flywheel and a single-motor feeder system.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-tree.html deleted file mode 100644 index 03fa585c..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/complex/shooter/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.complex.shooter Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.complex.shooter

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem -
          -
        • org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable, org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel)
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/SubsystemAHRS.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/SubsystemAHRS.html deleted file mode 100644 index ec886908..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/SubsystemAHRS.html +++ /dev/null @@ -1,385 +0,0 @@ - - - - - -SubsystemAHRS (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS
-

Interface SubsystemAHRS

-
-
-
- -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        getHeading

        -
        double getHeading()
        -
        Get the robot's heading.
        -
        -
        Returns:
        -
        robot heading, in degrees, on [-180, 180].
        -
        -
      • -
      - - - -
        -
      • -

        setHeading

        -
        void setHeading(double heading)
        -
        Set the robot's heading.
        -
        -
        Parameters:
        -
        heading - The heading to set to, in degrees on [-180, 180].
        -
        -
      • -
      - - - -
        -
      • -

        getHeadingCached

        -
        double getHeadingCached()
        -
        Get the robot's cached heading.
        -
        -
        Returns:
        -
        robot heading, in degrees, on [-180, 180].
        -
        -
      • -
      - - - -
        -
      • -

        getAngularVel

        -
        double getAngularVel()
        -
        Get the robot's angular velocity.
        -
        -
        Returns:
        -
        Angular velocity in degrees/sec
        -
        -
      • -
      - - - -
        -
      • -

        getAngularVelCached

        -
        double getAngularVelCached()
        -
        Get the robot's cached angular velocity.
        -
        -
        Returns:
        -
        Angular velocity in degrees/sec
        -
        -
      • -
      - - - -
        -
      • -

        getAngularDisplacement

        -
        double getAngularDisplacement()
        -
        Get the robot's angular displacement since being turned on.
        -
        -
        Returns:
        -
        Angular displacement in degrees.
        -
        -
      • -
      - - - -
        -
      • -

        getAngularDisplacementCached

        -
        double getAngularDisplacementCached()
        -
        Get the robot's cached angular displacement since being turned on.
        -
        -
        Returns:
        -
        Angular displacement in degrees.
        -
        -
      • -
      - - - -
        -
      • -

        getOverrideGyro

        -
        boolean getOverrideGyro()
        -
        -
        Returns:
        -
        true if the gyroscope is currently overriden, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        setOverrideGyro

        -
        void setOverrideGyro(boolean override)
        -
        -
        Parameters:
        -
        override - true to override the gyro, false to un-override it.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/OverrideNavX.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/OverrideNavX.html deleted file mode 100644 index 8cb2ba2b..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/OverrideNavX.html +++ /dev/null @@ -1,398 +0,0 @@ - - - - - -OverrideNavX (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands
-

Class OverrideNavX

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class OverrideNavX
    -extends YamlCommandWrapper
    -
    Set whether or not to override the AHRS.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      OverrideNavX(SubsystemAHRS subsystem, - boolean override) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Set whether or not we're overriding the AHRS
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        OverrideNavX

        -
        public OverrideNavX(@NotNull
        -                    SubsystemAHRS subsystem,
        -                    boolean override)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on
        -
        override - Whether or not to override the AHRS.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Set whether or not we're overriding the AHRS
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/PIDAngleCommand.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/PIDAngleCommand.html deleted file mode 100644 index 87a48670..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/PIDAngleCommand.html +++ /dev/null @@ -1,469 +0,0 @@ - - - - - -PIDAngleCommand (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands
-

Class PIDAngleCommand

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • edu.wpi.first.wpilibj.command.Command
    • -
    • -
        -
      • edu.wpi.first.wpilibj.command.PIDCommand
      • -
      • -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand
        • -
        -
      • -
      -
    • -
    -
  • -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected SubsystemAHRSsubsystem -
      The subsystem to execute this command on.
      -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      PIDAngleCommand(double absoluteTolerance, - int toleranceBuffer, - double minimumOutput, - java.lang.Double maximumOutput, - double deadband, - boolean inverted, - SubsystemAHRS subsystem, - double kP, - double kI, - double kD) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected doubledeadbandOutput(double output) -
      Deadband the output of the PID loop.
      -
      edu.wpi.first.wpilibj.command.CommandgetCommand() -
      Get the command object this object is.
      -
      protected doubleprocessPIDOutput(double output) -
      Process the output of the PID loop to account for minimum output and inversion.
      -
      protected doublereturnPIDInput() -
      Returns the input for the pid loop.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.PIDCommand

        -getPIDController, getPosition, getSetpoint, getSmartDashboardType, initTable, setInputRange, setSetpoint, setSetpointRelative, usePIDOutput
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, end, execute, getGroup, getName, getTable, initialize, interrupted, isCanceled, isFinished, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
        -
      • - - -

        Methods inherited from interface edu.wpi.first.wpilibj.Sendable

        -getTable
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        subsystem

        -
        @NotNull
        -protected final SubsystemAHRS subsystem
        -
        The subsystem to execute this command on.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        PIDAngleCommand

        -
        public PIDAngleCommand(double absoluteTolerance,
        -                       int toleranceBuffer,
        -                       double minimumOutput,
        -                       @Nullable
        -                       java.lang.Double maximumOutput,
        -                       double deadband,
        -                       boolean inverted,
        -                       @NotNull
        -                       SubsystemAHRS subsystem,
        -                       double kP,
        -                       double kI,
        -                       double kD)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        absoluteTolerance - The maximum number of degrees off from the target at which we can be considered within - tolerance.
        -
        toleranceBuffer - How many consecutive loops have to be run while within tolerance to be considered on - target. Multiply by loop period of ~20 milliseconds for time. Defaults to 0.
        -
        minimumOutput - The minimum output of the loop. Defaults to zero.
        -
        maximumOutput - The maximum output of the loop. Can be null, and if it is, no maximum output is used.
        -
        deadband - The deadband around the setpoint, in degrees, within which no output is given to the - motors. Defaults to zero.
        -
        inverted - Whether the loop is inverted. Defaults to false.
        -
        kP - Proportional gain. Defaults to zero.
        -
        kI - Integral gain. Defaults to zero.
        -
        kD - Derivative gain. Defaults to zero.
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        processPIDOutput

        -
        protected double processPIDOutput(double output)
        -
        Process the output of the PID loop to account for minimum output and inversion.
        -
        -
        Parameters:
        -
        output - The output from the WPILib angular PID loop.
        -
        Returns:
        -
        The processed output, ready to be subtracted from the left side of the drive output and added to the - right side.
        -
        -
      • -
      - - - -
        -
      • -

        deadbandOutput

        -
        protected double deadbandOutput(double output)
        -
        Deadband the output of the PID loop.
        -
        -
        Parameters:
        -
        output - The output from the WPILib angular PID loop.
        -
        Returns:
        -
        That output after being deadbanded with the map-given deadband.
        -
        -
      • -
      - - - -
        -
      • -

        returnPIDInput

        -
        protected double returnPIDInput()
        -
        Returns the input for the pid loop.

        It returns the input for the pid loop, so if this command was based off - of a gyro, then it should return the angle of the gyro

        All subclasses of PIDCommand must - override this method.

        This method will be called in a different thread then the Scheduler - thread.

        -
        -
        Specified by:
        -
        returnPIDInput in class edu.wpi.first.wpilibj.command.PIDCommand
        -
        Returns:
        -
        the value the pid loop should use as input
        -
        -
      • -
      - - - -
        -
      • -

        getCommand

        -
        @NotNull
        -public edu.wpi.first.wpilibj.command.Command getCommand()
        -
        Get the command object this object is.
        -
        -
        Specified by:
        -
        getCommand in interface YamlCommand
        -
        Returns:
        -
        this.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/ToggleOverrideNavX.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/ToggleOverrideNavX.html deleted file mode 100644 index 4cb9f56b..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/ToggleOverrideNavX.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -ToggleOverrideNavX (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands
-

Class ToggleOverrideNavX

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ToggleOverrideNavX
    -extends YamlCommandWrapper
    -
    Toggle whether or not to override the AHRS.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Toggle whether or not we're overriding the AHRS
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ToggleOverrideNavX

        -
        public ToggleOverrideNavX(@NotNull
        -                          SubsystemAHRS subsystem)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Toggle whether or not we're overriding the AHRS
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-frame.html deleted file mode 100644 index 4e7fe331..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-frame.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-summary.html deleted file mode 100644 index d6c2a70d..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-summary.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    OverrideNavX -
    Set whether or not to override the AHRS.
    -
    PIDAngleCommand -
    A command that uses a AHRS to turn to a certain angle.
    -
    ToggleOverrideNavX -
    Toggle whether or not to override the AHRS.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-tree.html deleted file mode 100644 index e2b9da25..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/commands/package-tree.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.PIDCommand (implements edu.wpi.first.wpilibj.Sendable) -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.PIDAngleCommand (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand)
        • -
        -
      • -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.OverrideNavX
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.ToggleOverrideNavX
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-frame.html deleted file mode 100644 index 05be3920..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-summary.html deleted file mode 100644 index 6ed82f94..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SubsystemAHRS -
    A subsystem that has a AHRS on it.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-tree.html deleted file mode 100644 index ff768099..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/AHRS/package-tree.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/BinaryMotorSimple.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/BinaryMotorSimple.html deleted file mode 100644 index 4a4e3fd1..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/BinaryMotorSimple.html +++ /dev/null @@ -1,372 +0,0 @@ - - - - - -BinaryMotorSimple (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor
-

Class BinaryMotorSimple

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, SubsystemBinaryMotor
    -
    -
    -
    -
    public class BinaryMotorSimple
    -extends YamlSubsystem
    -implements SubsystemBinaryMotor
    -
    A simple example of a binary motor subsystem.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      BinaryMotorSimple(SimpleMotor motor, - java.lang.Double velocity) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidinitDefaultCommand() -
      Initialize the default command for a subsystem.
      -
      booleanisMotorOn() 
      voidturnMotorOff() -
      Turns the motor off.
      -
      voidturnMotorOn() -
      Turns the motor on, and sets it to a map-specified speed.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getName, getSmartDashboardType, getTable, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        BinaryMotorSimple

        -
        public BinaryMotorSimple(@NotNull
        -                         SimpleMotor motor,
        -                         @Nullable
        -                         java.lang.Double velocity)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        motor - The motor that this subsystem controls.
        -
        velocity - The velocity to run the motor at, on [-1, 1]. Defaults to 1.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - after all the Subsystems are created.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - -
        -
      • -

        turnMotorOn

        -
        public void turnMotorOn()
        -
        Turns the motor on, and sets it to a map-specified speed.
        -
        -
        Specified by:
        -
        turnMotorOn in interface SubsystemBinaryMotor
        -
        -
      • -
      - - - - - - - -
        -
      • -

        isMotorOn

        -
        public boolean isMotorOn()
        -
        -
        Specified by:
        -
        isMotorOn in interface SubsystemBinaryMotor
        -
        Returns:
        -
        true if the motor is on, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/SubsystemBinaryMotor.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/SubsystemBinaryMotor.html deleted file mode 100644 index b0c1b187..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/SubsystemBinaryMotor.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - - -SubsystemBinaryMotor (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor
-

Interface SubsystemBinaryMotor

-
-
-
-
    -
  • -
    -
    All Known Implementing Classes:
    -
    BinaryMotorSimple, ClimberCurrentLimited
    -
    -
    -
    -
    public interface SubsystemBinaryMotor
    -
    A subsystem with a motor that only needs to be run at one speed, e.g. a flywheel multiSubsystem or simple intake.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        turnMotorOn

        -
        void turnMotorOn()
        -
        Turns the motor on, and sets it to a map-specified speed.
        -
      • -
      - - - -
        -
      • -

        turnMotorOff

        -
        void turnMotorOff()
        -
        Turns the motor off.
        -
      • -
      - - - -
        -
      • -

        isMotorOn

        -
        boolean isMotorOn()
        -
        -
        Returns:
        -
        true if the motor is on, false otherwise.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/ToggleMotor.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/ToggleMotor.html deleted file mode 100644 index 23fec0f2..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/ToggleMotor.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -ToggleMotor (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-

Class ToggleMotor

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ToggleMotor
    -extends YamlCommandWrapper
    -
    A command that toggles the state of the motor between off and on.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Toggle the motor state.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ToggleMotor

        -
        public ToggleMotor(@NotNull
        -                   SubsystemBinaryMotor subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Toggle the motor state.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOff.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOff.html deleted file mode 100644 index 41e6c552..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOff.html +++ /dev/null @@ -1,439 +0,0 @@ - - - - - -TurnMotorOff (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-

Class TurnMotorOff

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    Direct Known Subclasses:
    -
    TurnMotorOffWithRequires
    -
    -
    -
    -
    public class TurnMotorOff
    -extends YamlCommandWrapper
    -
    Turns off the motor of the specified subsystem.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      - - - - - - - - - - -
      Fields 
      Modifier and TypeField and Description
      protected SubsystemBinaryMotorsubsystem -
      The subsystem to execute this command on.
      -
      -
    • -
    - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Turn the motor off.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Detail

      - - - -
        -
      • -

        subsystem

        -
        @NotNull
        -protected final SubsystemBinaryMotor subsystem
        -
        The subsystem to execute this command on.
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        TurnMotorOff

        -
        public TurnMotorOff(@NotNull
        -                    SubsystemBinaryMotor subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Turn the motor off.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOffWithRequires.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOffWithRequires.html deleted file mode 100644 index 8b86642d..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOffWithRequires.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - -TurnMotorOffWithRequires (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-

Class TurnMotorOffWithRequires<T extends YamlSubsystem & SubsystemBinaryMotor>

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class TurnMotorOffWithRequires<T extends YamlSubsystem & SubsystemBinaryMotor>
    -extends TurnMotorOff
    -
    Turns off the motor of the subsystem, but does so while using requires() to interrupt any other commands currently - controlling the subsystem.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Field Summary

      -
        -
      • - - -

        Fields inherited from class org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff

        -subsystem
      • -
      -
    • -
    - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      TurnMotorOffWithRequires(T subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      - - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        TurnMotorOffWithRequires

        -
        public TurnMotorOffWithRequires(@NotNull
        -                                T subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class TurnMotorOff
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class TurnMotorOff
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class TurnMotorOff
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOn.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOn.html deleted file mode 100644 index 476dbbaa..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/TurnMotorOn.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -TurnMotorOn (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands
-

Class TurnMotorOn

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class TurnMotorOn
    -extends YamlCommandWrapper
    -
    Turns on the motor of the specified subsystem.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Turn the motor on.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        TurnMotorOn

        -
        public TurnMotorOn(@NotNull
        -                   SubsystemBinaryMotor subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Turn the motor on.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-frame.html deleted file mode 100644 index 09bb3c9e..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-frame.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-summary.html deleted file mode 100644 index 756138bc..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-summary.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    ToggleMotor -
    A command that toggles the state of the motor between off and on.
    -
    TurnMotorOff -
    Turns off the motor of the specified subsystem.
    -
    TurnMotorOffWithRequires<T extends YamlSubsystem & SubsystemBinaryMotor> -
    Turns off the motor of the subsystem, but does so while using requires() to interrupt any other commands currently - controlling the subsystem.
    -
    TurnMotorOn -
    Turns on the motor of the specified subsystem.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-tree.html deleted file mode 100644 index 599c97f7..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/commands/package-tree.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.ToggleMotor
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff - -
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOn
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-frame.html deleted file mode 100644 index 6fa9731a..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor

-
-

Interfaces

- -

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-summary.html deleted file mode 100644 index 34240508..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-summary.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SubsystemBinaryMotor -
    A subsystem with a motor that only needs to be run at one speed, e.g.
    -
    -
  • -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    BinaryMotorSimple -
    A simple example of a binary motor subsystem.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-tree.html deleted file mode 100644 index d4681e0a..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/binaryMotor/package-tree.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) - -
    • -
    -
  • -
-

Interface Hierarchy

- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/SubsystemConditional.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/SubsystemConditional.html deleted file mode 100644 index 29a8fef1..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/SubsystemConditional.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - -SubsystemConditional (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.conditional
-

Interface SubsystemConditional

-
-
-
-
    -
  • -
    -
    All Superinterfaces:
    -
    Updatable
    -
    -
    -
    All Known Implementing Classes:
    -
    ClimberCurrentLimited
    -
    -
    -
    -
    public interface SubsystemConditional
    -extends Updatable
    -
    A subsystem with a condition that's sometimes met, e.g. a limit switch, a current/power limit, an IR sensor.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        isConditionTrue

        -
        boolean isConditionTrue()
        -
        -
        Returns:
        -
        true if the condition is met, false otherwise
        -
        -
      • -
      - - - -
        -
      • -

        isConditionTrueCached

        -
        boolean isConditionTrueCached()
        -
        -
        Returns:
        -
        true if the condition was met when cached, false otherwise
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-frame.html deleted file mode 100644 index 6f6e63fc..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.conditional (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.conditional

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-summary.html deleted file mode 100644 index 9f7fb9ab..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.conditional (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.conditional

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SubsystemConditional -
    A subsystem with a condition that's sometimes met, e.g.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-tree.html deleted file mode 100644 index b9e23d14..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/conditional/package-tree.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.conditional Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.conditional

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable - -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/FlywheelSimple.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/FlywheelSimple.html deleted file mode 100644 index a68b561a..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/FlywheelSimple.html +++ /dev/null @@ -1,478 +0,0 @@ - - - - - -FlywheelSimple (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel
-

Class FlywheelSimple

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, SubsystemFlywheel
    -
    -
    -
    -
    public class FlywheelSimple
    -extends YamlSubsystem
    -implements SubsystemFlywheel
    -
    A simple flywheel subsystem.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        FlywheelSimple

        -
        public FlywheelSimple(@NotNull
        -                      SimpleMotor shooterMotor,
        -                      @NotNull
        -                      SimpleMotor feederMotor,
        -                      double shooterVelocity,
        -                      @Nullable
        -                      java.lang.Double feederVelocity,
        -                      long spinUpTimeMillis)
        -
        Default constructor
        -
        -
        Parameters:
        -
        shooterMotor - The motor that controls the flywheel.
        -
        feederMotor - The motor that controls the feeder.
        -
        shooterVelocity - The velocity for the flywheel to run at, on [-1, 1].
        -
        feederVelocity - The velocity for the feeder to run at, on [-1, 1]. Defaults to 1.
        -
        spinUpTimeMillis - Time from giving the flywheel voltage to being ready to fire, in milliseconds. Defaults to - 0.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - after all the Subsystems are created.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - -
        -
      • -

        turnFlywheelOn

        -
        public void turnFlywheelOn()
        -
        Turn the flywheel on to a map-specified speed.
        -
        -
        Specified by:
        -
        turnFlywheelOn in interface SubsystemFlywheel
        -
        -
      • -
      - - - - - - - -
        -
      • -

        turnFeederOn

        -
        public void turnFeederOn()
        -
        Start feeding balls into the flywheel.
        -
        -
        Specified by:
        -
        turnFeederOn in interface SubsystemFlywheel
        -
        -
      • -
      - - - -
        -
      • -

        turnFeederOff

        -
        public void turnFeederOff()
        -
        Stop feeding balls into the flywheel.
        -
        -
        Specified by:
        -
        turnFeederOff in interface SubsystemFlywheel
        -
        -
      • -
      - - - - - - - - - - - -
        -
      • -

        getSpinUpTimeMillis

        -
        public long getSpinUpTimeMillis()
        -
        -
        Specified by:
        -
        getSpinUpTimeMillis in interface SubsystemFlywheel
        -
        Returns:
        -
        Time from giving the flywheel voltage to being ready to fire, in milliseconds.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.FlywheelState.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.FlywheelState.html deleted file mode 100644 index 7e2aacaa..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.FlywheelState.html +++ /dev/null @@ -1,356 +0,0 @@ - - - - - -SubsystemFlywheel.FlywheelState (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel
-

Enum SubsystemFlywheel.FlywheelState

-
-
-
    -
  • java.lang.Object
  • -
  • - -
  • -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Enum Constant Summary

      - - - - - - - - - - - - - - -
      Enum Constants 
      Enum Constant and Description
      OFF 
      SHOOTING 
      SPINNING_UP 
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static SubsystemFlywheel.FlywheelStatevalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static SubsystemFlywheel.FlywheelState[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static SubsystemFlywheel.FlywheelState[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (SubsystemFlywheel.FlywheelState c : SubsystemFlywheel.FlywheelState.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static SubsystemFlywheel.FlywheelState valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.html deleted file mode 100644 index a3c6593d..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/SubsystemFlywheel.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - -SubsystemFlywheel (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel
-

Interface SubsystemFlywheel

-
-
-
-
    -
  • -
    -
    All Known Implementing Classes:
    -
    FlywheelSimple, LoggingFlywheel
    -
    -
    -
    -
    public interface SubsystemFlywheel
    -
    A subsystem with a flywheel and feeder.
    -
  • -
-
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        turnFlywheelOn

        -
        void turnFlywheelOn()
        -
        Turn the flywheel on to a map-specified speed.
        -
      • -
      - - - -
        -
      • -

        turnFlywheelOff

        -
        void turnFlywheelOff()
        -
        Turn the flywheel off.
        -
      • -
      - - - -
        -
      • -

        turnFeederOn

        -
        void turnFeederOn()
        -
        Start feeding balls into the flywheel.
        -
      • -
      - - - -
        -
      • -

        turnFeederOff

        -
        void turnFeederOff()
        -
        Stop feeding balls into the flywheel.
        -
      • -
      - - - - - - - -
        -
      • -

        setFlywheelState

        -
        void setFlywheelState(@NotNull
        -                      SubsystemFlywheel.FlywheelState state)
        -
        -
        Parameters:
        -
        state - The state to switch the flywheel to.
        -
        -
      • -
      - - - -
        -
      • -

        getSpinUpTimeMillis

        -
        long getSpinUpTimeMillis()
        -
        -
        Returns:
        -
        Time from giving the flywheel voltage to being ready to fire, in milliseconds.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpFlywheel.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpFlywheel.html deleted file mode 100644 index c2d9ea9f..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpFlywheel.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -SpinUpFlywheel (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-

Class SpinUpFlywheel

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SpinUpFlywheel
    -extends YamlCommandWrapper
    -
    Turn on the flywheel but not the feeder in order to give the flywheel time to get up to speed.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Turn the feeder off and the flywheel on.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SpinUpFlywheel

        -
        public SpinUpFlywheel(@NotNull
        -                      SubsystemFlywheel subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Turn the feeder off and the flywheel on.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpThenShoot.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpThenShoot.html deleted file mode 100644 index df1e43bf..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/SpinUpThenShoot.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - -SpinUpThenShoot (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-

Class SpinUpThenShoot

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SpinUpThenShoot
    -extends YamlCommandGroupWrapper
    -
    Spin up the flywheel until it's at the target speed, then start feeding in balls.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SpinUpThenShoot

        -
        public SpinUpThenShoot(@NotNull
        -                       SubsystemFlywheel subsystem)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/ToggleShooting.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/ToggleShooting.html deleted file mode 100644 index b0f8f90b..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/ToggleShooting.html +++ /dev/null @@ -1,284 +0,0 @@ - - - - - -ToggleShooting (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-

Class ToggleShooting

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ToggleShooting
    -extends YamlCommandGroupWrapper
    -
    Toggle whether or not the subsystem is firing.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ToggleShooting

        -
        public ToggleShooting(@NotNull
        -                      SubsystemFlywheel subsystem)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOff.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOff.html deleted file mode 100644 index 7f303999..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOff.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - -TurnAllOff (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-

Class TurnAllOff

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    Direct Known Subclasses:
    -
    TurnAllOffWithRequires
    -
    -
    -
    -
    public class TurnAllOff
    -extends YamlCommandWrapper
    -
    Turn off the flywheel and feeder.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Turn off the flywheel and feeder.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        TurnAllOff

        -
        public TurnAllOff(@NotNull
        -                  SubsystemFlywheel subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Turn off the flywheel and feeder.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOffWithRequires.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOffWithRequires.html deleted file mode 100644 index acae8762..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOffWithRequires.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - - -TurnAllOffWithRequires (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-

Class TurnAllOffWithRequires<T extends YamlSubsystem & SubsystemFlywheel>

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class TurnAllOffWithRequires<T extends YamlSubsystem & SubsystemFlywheel>
    -extends TurnAllOff
    -
    Turn off the flywheel and feeder, using requires() to interrupt any other commands that may be telling them to - continue running.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      TurnAllOffWithRequires(T subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        TurnAllOffWithRequires

        -
        public TurnAllOffWithRequires(@NotNull
        -                              T subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOn.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOn.html deleted file mode 100644 index 78d4930b..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/TurnAllOn.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -TurnAllOn (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands
-

Class TurnAllOn

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class TurnAllOn
    -extends YamlCommandWrapper
    -
    Turn on the flywheel and the feeder.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      TurnAllOn(SubsystemFlywheel subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Turn on the flywheel and feeder.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        TurnAllOn

        -
        public TurnAllOn(@NotNull
        -                 SubsystemFlywheel subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Turn on the flywheel and feeder.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-frame.html deleted file mode 100644 index eac24734..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-frame.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-summary.html deleted file mode 100644 index 556f746e..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-summary.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    SpinUpFlywheel -
    Turn on the flywheel but not the feeder in order to give the flywheel time to get up to speed.
    -
    SpinUpThenShoot -
    Spin up the flywheel until it's at the target speed, then start feeding in balls.
    -
    ToggleShooting -
    Toggle whether or not the subsystem is firing.
    -
    TurnAllOff -
    Turn off the flywheel and feeder.
    -
    TurnAllOffWithRequires<T extends YamlSubsystem & SubsystemFlywheel> -
    Turn off the flywheel and feeder, using requires() to interrupt any other commands that may be telling them to - continue running.
    -
    TurnAllOn -
    Turn on the flywheel and the feeder.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-tree.html deleted file mode 100644 index d7501b7e..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/commands/package-tree.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
            -
          • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpThenShoot
          • -
          • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.ToggleShooting
          • -
          -
        • -
        -
      • -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff - -
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-frame.html deleted file mode 100644 index fbe4f9d9..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-frame.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel

-
-

Interfaces

- -

Classes

- -

Enums

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-summary.html deleted file mode 100644 index 73bb14c5..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-summary.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SubsystemFlywheel -
    A subsystem with a flywheel and feeder.
    -
    -
  • -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    FlywheelSimple -
    A simple flywheel subsystem.
    -
    -
  • -
  • - - - - - - - - - - - - -
    Enum Summary 
    EnumDescription
    SubsystemFlywheel.FlywheelState -
    An enum for the possible states of the flywheel.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-tree.html deleted file mode 100644 index 694510e2..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/flywheel/package-tree.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple (implements org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel)
        • -
        -
      • -
      -
    • -
    -
  • -
-

Interface Hierarchy

- -

Enum Hierarchy

-
    -
  • java.lang.Object -
      -
    • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/IntakeSimple.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/IntakeSimple.html deleted file mode 100644 index f231f7ed..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/IntakeSimple.html +++ /dev/null @@ -1,384 +0,0 @@ - - - - - -IntakeSimple (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.intake
-

Class IntakeSimple

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, SubsystemIntake
    -
    -
    -
    -
    public class IntakeSimple
    -extends YamlSubsystem
    -implements SubsystemIntake
    -
    A simple intake subsystem.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      IntakeSimple(SimpleMotor motor, - java.lang.Double inSlowVel, - java.lang.Double inFastVel, - java.lang.Double outSlowVel, - java.lang.Double outFastVel) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      SubsystemIntake.IntakeModegetMode() 
      protected voidinitDefaultCommand() -
      Initialize the default command for a subsystem.
      -
      voidsetMode(SubsystemIntake.IntakeMode mode) 
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getName, getSmartDashboardType, getTable, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        IntakeSimple

        -
        public IntakeSimple(@NotNull
        -                    SimpleMotor motor,
        -                    @Nullable
        -                    java.lang.Double inSlowVel,
        -                    @Nullable
        -                    java.lang.Double inFastVel,
        -                    @Nullable
        -                    java.lang.Double outSlowVel,
        -                    @Nullable
        -                    java.lang.Double outFastVel)
        -
        Default constructor
        -
        -
        Parameters:
        -
        motor - The motor this subsystem controls.
        -
        inSlowVel - The velocity for the motor to go at for the IN_SLOW SubsystemIntake.IntakeMode, on [-1, - 1]. Can be null to indicate that this intake doesn't have/use IN_SLOW.
        -
        inFastVel - The velocity for the motor to go at for the IN_FAST SubsystemIntake.IntakeMode, on [-1, - 1]. Can be null to indicate that this intake doesn't have/use IN_FAST.
        -
        outSlowVel - The velocity for the motor to go at for the OUT_SLOW SubsystemIntake.IntakeMode, on - [-1, 1]. Can be null to indicate that this intake doesn't have/use OUT_SLOW.
        -
        outFastVel - The velocity for the motor to go at for the OUT_FAST SubsystemIntake.IntakeMode, on - [-1, 1]. Can be null to indicate that this intake doesn't have/use OUT_FAST.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - after all the Subsystems are created.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - - - - - - -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.IntakeMode.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.IntakeMode.html deleted file mode 100644 index 88f3c2b3..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.IntakeMode.html +++ /dev/null @@ -1,380 +0,0 @@ - - - - - -SubsystemIntake.IntakeMode (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.intake
-

Enum SubsystemIntake.IntakeMode

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • java.lang.Enum<SubsystemIntake.IntakeMode>
    • -
    • -
        -
      • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake.IntakeMode
      • -
      -
    • -
    -
  • -
-
- -
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - -
      All Methods Static Methods Concrete Methods 
      Modifier and TypeMethod and Description
      static SubsystemIntake.IntakeModevalueOf(java.lang.String name) -
      Returns the enum constant of this type with the specified name.
      -
      static SubsystemIntake.IntakeMode[]values() -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
        -
      • - - -

        Methods inherited from class java.lang.Enum

        -clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        values

        -
        public static SubsystemIntake.IntakeMode[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
        -for (SubsystemIntake.IntakeMode c : SubsystemIntake.IntakeMode.values())
        -    System.out.println(c);
        -
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
      • -
      - - - -
        -
      • -

        valueOf

        -
        public static SubsystemIntake.IntakeMode valueOf(java.lang.String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        -
        java.lang.NullPointerException - if the argument is null
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.html deleted file mode 100644 index 69aa5deb..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/SubsystemIntake.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - - -SubsystemIntake (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.intake
-

Interface SubsystemIntake

-
-
-
-
    -
  • -
    -
    All Known Implementing Classes:
    -
    IntakeFixedAndActuated, IntakeSimple
    -
    -
    -
    -
    public interface SubsystemIntake
    -
    A subsystem used for intaking and possibly ejecting game pieces.
    -
  • -
-
-
- -
-
- -
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/SetIntakeMode.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/SetIntakeMode.html deleted file mode 100644 index dc7cda40..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/SetIntakeMode.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - -SetIntakeMode (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands
-

Class SetIntakeMode

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SetIntakeMode
    -extends YamlCommandWrapper
    -
    Sets the mode of the intake.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Set the intake to the given mode.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SetIntakeMode

        -
        public SetIntakeMode(@NotNull
        -                     SubsystemIntake subsystem,
        -                     @NotNull
        -                     SubsystemIntake.IntakeMode mode)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        mode - The mode to set the intake to.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Set the intake to the given mode.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/ToggleIntaking.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/ToggleIntaking.html deleted file mode 100644 index fa3752cb..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/ToggleIntaking.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - -ToggleIntaking (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands
-

Class ToggleIntaking

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ToggleIntaking
    -extends YamlCommandWrapper
    -
    Toggles whether the subsystem is off or set to a given mode.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Set the subsystem to the specified mode if it's off, and set it to off otherwise.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ToggleIntaking

        -
        public ToggleIntaking(@NotNull
        -                      SubsystemIntake subsystem,
        -                      @NotNull
        -                      SubsystemIntake.IntakeMode mode)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        mode - The mode to set this subsystem to if it's currently off.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Set the subsystem to the specified mode if it's off, and set it to off otherwise.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-frame.html deleted file mode 100644 index ae9655ac..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-frame.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-summary.html deleted file mode 100644 index 48baa922..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-summary.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands

-
-
-
    -
  • - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    SetIntakeMode -
    Sets the mode of the intake.
    -
    ToggleIntaking -
    Toggles whether the subsystem is off or set to a given mode.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-tree.html deleted file mode 100644 index 325f7a07..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/commands/package-tree.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.ToggleIntaking
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-frame.html deleted file mode 100644 index e862bcc5..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-frame.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.intake (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.intake

-
-

Interfaces

- -

Classes

- -

Enums

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-summary.html deleted file mode 100644 index e1251cb1..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-summary.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.intake (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.intake

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SubsystemIntake -
    A subsystem used for intaking and possibly ejecting game pieces.
    -
    -
  • -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    IntakeSimple -
    A simple intake subsystem.
    -
    -
  • -
  • - - - - - - - - - - - - -
    Enum Summary 
    EnumDescription
    SubsystemIntake.IntakeMode -
    An enum for the possible states of the intake.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-tree.html deleted file mode 100644 index a966be8d..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/intake/package-tree.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.intake Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.intake

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.IntakeSimple (implements org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake)
        • -
        -
      • -
      -
    • -
    -
  • -
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake
  • -
-

Enum Hierarchy

-
    -
  • java.lang.Object -
      -
    • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) - -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/SubsystemMP.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/SubsystemMP.html deleted file mode 100644 index acb1ee2a..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/SubsystemMP.html +++ /dev/null @@ -1,340 +0,0 @@ - - - - - -SubsystemMP (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile
-

Interface SubsystemMP

-
-
-
- -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        loadMotionProfile

        -
        void loadMotionProfile(@NotNull
        -                       MotionProfileData profile)
        -
        Loads a profile into the MP buffer.
        -
        -
        Parameters:
        -
        profile - The profile to be loaded.
        -
        -
      • -
      - - - -
        -
      • -

        startRunningLoadedProfile

        -
        void startRunningLoadedProfile()
        -
        Start running the profile that's currently loaded into the MP buffer.
        -
      • -
      - - - -
        -
      • -

        profileFinished

        -
        boolean profileFinished()
        -
        Get whether this subsystem has finished running the profile loaded in it.
        -
        -
        Returns:
        -
        true if there's no profile loaded and no profile running, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        disable

        -
        void disable()
        -
        Disable the motors.
        -
      • -
      - - - -
        -
      • -

        holdPosition

        -
        void holdPosition()
        -
        Hold the current position.
        -
      • -
      - - - -
        -
      • -

        readyToRunProfile

        -
        boolean readyToRunProfile()
        -
        Get whether the subsystem is ready to run the loaded profile.
        -
        -
        Returns:
        -
        true if a profile is loaded and ready to run, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        stopMPProcesses

        -
        void stopMPProcesses()
        -
        Stops any MP-related threads currently running. Normally called at the start of teleop.
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/SubsystemMPTwoSides.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/SubsystemMPTwoSides.html deleted file mode 100644 index 0b4100ba..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/SubsystemMPTwoSides.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - -SubsystemMPTwoSides (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem
-

Interface SubsystemMPTwoSides

-
-
-
- -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        loadMotionProfile

        -
        void loadMotionProfile(@NotNull
        -                       MotionProfileData left,
        -                       @NotNull
        -                       MotionProfileData right)
        -
        Loads given profiles into the left and right sides of the drive.
        -
        -
        Parameters:
        -
        left - The profile to load into the left side.
        -
        right - The profile to load into the right side.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/LoadProfileTwoSides.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/LoadProfileTwoSides.html deleted file mode 100644 index 14ec68fe..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/LoadProfileTwoSides.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - - -LoadProfileTwoSides (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands
-

Class LoadProfileTwoSides

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class LoadProfileTwoSides
    -extends YamlCommandWrapper
    -
    Loads the given profiles into the subsystem, but doesn't run it.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Load the profiles.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        LoadProfileTwoSides

        -
        public LoadProfileTwoSides(@NotNull
        -                           SubsystemMPTwoSides subsystem,
        -                           @NotNull
        -                           MotionProfileData left,
        -                           @NotNull
        -                           MotionProfileData right)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        left - The profile for the left side to run.
        -
        right - The profile for the right side to run.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Load the profiles.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/RunProfileTwoSides.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/RunProfileTwoSides.html deleted file mode 100644 index ed884d6f..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/RunProfileTwoSides.html +++ /dev/null @@ -1,297 +0,0 @@ - - - - - -RunProfileTwoSides (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands
-

Class RunProfileTwoSides<T extends YamlSubsystem & SubsystemMPTwoSides>

-
-
- -
- -
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        RunProfileTwoSides

        -
        public RunProfileTwoSides(@NotNull
        -                          T subsystem,
        -                          @NotNull
        -                          MotionProfileData left,
        -                          @NotNull
        -                          MotionProfileData right,
        -                          double timeout)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        left - The motion profile for the left side to load and execute.
        -
        right - The motion profile for the right side to load and execute.
        -
        timeout - The maximum amount of time this command is allowed to take, in seconds.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-frame.html deleted file mode 100644 index 1b3f8ac0..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-frame.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-summary.html deleted file mode 100644 index 5c7046ad..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-summary.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands

-
-
- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-tree.html deleted file mode 100644 index b9f186df..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/commands/package-tree.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
            -
          • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.RunProfileTwoSides<T>
          • -
          -
        • -
        -
      • -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.LoadProfileTwoSides
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-frame.html deleted file mode 100644 index a4ad4dcf..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-summary.html deleted file mode 100644 index 8c3e2690..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SubsystemMPTwoSides -
    An MP subsystem with two sides that therefore needs two profiles at a time.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-tree.html deleted file mode 100644 index 68c77bb2..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/TwoSideMPSubsystem/package-tree.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP -
      -
    • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.SubsystemMPTwoSides
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/LoadProfile.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/LoadProfile.html deleted file mode 100644 index e49cad08..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/LoadProfile.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - -LoadProfile (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands
-

Class LoadProfile

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class LoadProfile
    -extends YamlCommandWrapper
    -
    Loads the given profile into the subsystem, but doesn't run it.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Load the profile.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        LoadProfile

        -
        public LoadProfile(@NotNull
        -                   SubsystemMP subsystem,
        -                   @NotNull
        -                   MotionProfileData profile)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        profile - The profile to run.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Load the profile.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunLoadedProfile.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunLoadedProfile.html deleted file mode 100644 index 3389ab79..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunLoadedProfile.html +++ /dev/null @@ -1,403 +0,0 @@ - - - - - -RunLoadedProfile (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands
-

Class RunLoadedProfile<T extends YamlSubsystem & SubsystemMP>

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class RunLoadedProfile<T extends YamlSubsystem & SubsystemMP>
    -extends YamlCommandWrapper
    -
    Runs the command that is currently loaded in the given subsystem.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      RunLoadedProfile(T subsystem, - double timeout, - boolean require) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Hold position and log on exit.
      -
      protected voidexecute() -
      If the subsystem is ready to start running the profile and it's not running yet, start running it.
      -
      protected voidinitialize() -
      Record the start time.
      -
      protected voidinterrupted() -
      Disable and log if interrupted.
      -
      protected booleanisFinished() -
      Finish when the profile finishes or the timeout is reached.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        RunLoadedProfile

        -
        public RunLoadedProfile(@NotNull
        -                        T subsystem,
        -                        double timeout,
        -                        boolean require)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        timeout - The max amount of time this subsystem is allowed to run for, in seconds.
        -
        require - Whether or not to require the subsystem this command is running on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Record the start time.
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        If the subsystem is ready to start running the profile and it's not running yet, start running it.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish when the profile finishes or the timeout is reached.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true if the profile is finished or the timeout has been exceeded, false otherwise.
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Hold position and log on exit.
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Disable and log if interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunProfile.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunProfile.html deleted file mode 100644 index 77f3e050..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/RunProfile.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -RunProfile (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands
-

Class RunProfile<T extends YamlSubsystem & SubsystemMPTwoSides>

-
-
- -
- -
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      RunProfile(T subsystem, - MotionProfileData profile, - double timeout) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.CommandGroup

        -addParallel, addParallel, addSequential, addSequential, end, execute, initialize, interrupted, isFinished, isInterruptible
      • -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - - - -
        -
      • -

        RunProfile

        -
        public RunProfile(@NotNull
        -                  T subsystem,
        -                  @NotNull
        -                  MotionProfileData profile,
        -                  double timeout)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        profile - The motion profile to load and execute.
        -
        timeout - The maximum amount of time this command is allowed to take, in seconds.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-frame.html deleted file mode 100644 index a56aee68..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-frame.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-summary.html deleted file mode 100644 index e53a3e26..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-summary.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands

-
-
- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-tree.html deleted file mode 100644 index 9d70b491..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/commands/package-tree.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
            -
          • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunProfile<T>
          • -
          -
        • -
        -
      • -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.LoadProfile
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile<T>
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-frame.html deleted file mode 100644 index d474203b..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile

-
-

Interfaces

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-summary.html deleted file mode 100644 index 8c3d0bc0..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SubsystemMP -
    A subsystem that can have motion profiles run on it.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-tree.html deleted file mode 100644 index 4994cbc4..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/motionProfile/package-tree.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile

-Package Hierarchies: - -
-
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SolenoidSimple.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SolenoidSimple.html deleted file mode 100644 index 38ce02b3..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SolenoidSimple.html +++ /dev/null @@ -1,349 +0,0 @@ - - - - - -SolenoidSimple (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid
-

Class SolenoidSimple

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, SubsystemSolenoid
    -
    -
    -
    -
    public class SolenoidSimple
    -extends YamlSubsystem
    -implements SubsystemSolenoid
    -
    A simple SubsystemSolenoid.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      edu.wpi.first.wpilibj.DoubleSolenoid.ValuegetSolenoidPosition() 
      protected voidinitDefaultCommand() -
      Initialize the default command for a subsystem.
      -
      voidsetSolenoid(edu.wpi.first.wpilibj.DoubleSolenoid.Value value) 
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getName, getSmartDashboardType, getTable, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SolenoidSimple

        -
        public SolenoidSimple(@NotNull
        -                      MappedDoubleSolenoid piston)
        -
        Default constructor
        -
        -
        Parameters:
        -
        piston - The piston that comprises this subsystem.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setSolenoid

        -
        public void setSolenoid(@NotNull
        -                        edu.wpi.first.wpilibj.DoubleSolenoid.Value value)
        -
        -
        Specified by:
        -
        setSolenoid in interface SubsystemSolenoid
        -
        Parameters:
        -
        value - The position to set the solenoid to.
        -
        -
      • -
      - - - -
        -
      • -

        getSolenoidPosition

        -
        @NotNull
        -public edu.wpi.first.wpilibj.DoubleSolenoid.Value getSolenoidPosition()
        -
        -
        Specified by:
        -
        getSolenoidPosition in interface SubsystemSolenoid
        -
        Returns:
        -
        the current position of the solenoid.
        -
        -
      • -
      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - after all the Subsystems are created.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SubsystemSolenoid.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SubsystemSolenoid.html deleted file mode 100644 index 4f67e214..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/SubsystemSolenoid.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - -SubsystemSolenoid (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid
-

Interface SubsystemSolenoid

-
-
-
- -
-
- -
-
-
    -
  • - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        setSolenoid

        -
        void setSolenoid(@NotNull
        -                 edu.wpi.first.wpilibj.DoubleSolenoid.Value value)
        -
        -
        Parameters:
        -
        value - The position to set the solenoid to.
        -
        -
      • -
      - - - -
        -
      • -

        getSolenoidPosition

        -
        @NotNull
        -edu.wpi.first.wpilibj.DoubleSolenoid.Value getSolenoidPosition()
        -
        -
        Returns:
        -
        the current position of the solenoid.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidForward.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidForward.html deleted file mode 100644 index 9fc1e366..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidForward.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -SolenoidForward (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-

Class SolenoidForward

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SolenoidForward
    -extends YamlCommandWrapper
    -
    A command that extends a piston.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Extend the piston.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SolenoidForward

        -
        public SolenoidForward(@NotNull
        -                       SubsystemSolenoid subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The solenoid subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Extend the piston.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidOff.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidOff.html deleted file mode 100644 index 5a8f32f6..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidOff.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -SolenoidOff (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-

Class SolenoidOff

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SolenoidOff
    -extends YamlCommandWrapper
    -
    A command that extends a piston.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Extend the piston.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SolenoidOff

        -
        public SolenoidOff(@NotNull
        -                   SubsystemSolenoid subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The solenoid subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Extend the piston.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidReverse.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidReverse.html deleted file mode 100644 index 22346bba..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/SolenoidReverse.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -SolenoidReverse (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-

Class SolenoidReverse

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class SolenoidReverse
    -extends YamlCommandWrapper
    -
    A command that contracts a piston.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Retract the piston.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        SolenoidReverse

        -
        public SolenoidReverse(@NotNull
        -                       SubsystemSolenoid subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The solenoid subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Retract the piston.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/ToggleSolenoid.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/ToggleSolenoid.html deleted file mode 100644 index 6923bbe7..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/ToggleSolenoid.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -ToggleSolenoid (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands
-

Class ToggleSolenoid

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ToggleSolenoid
    -extends YamlCommandWrapper
    -
    A command that toggles the position of a piston.
    -
  • -
-
-
-
    -
  • - - - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Toggle the state of the piston.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ToggleSolenoid

        -
        public ToggleSolenoid(@NotNull
        -                      SubsystemSolenoid subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The solenoid subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Toggle the state of the piston.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-frame.html deleted file mode 100644 index 9d39ed7c..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-frame.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands

- - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-summary.html deleted file mode 100644 index 2a57c6d1..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-summary.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands

-
-
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    SolenoidForward -
    A command that extends a piston.
    -
    SolenoidOff -
    A command that extends a piston.
    -
    SolenoidReverse -
    A command that contracts a piston.
    -
    ToggleSolenoid -
    A command that toggles the position of a piston.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-tree.html deleted file mode 100644 index 6616d0a7..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/commands/package-tree.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidForward
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidOff
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.ToggleSolenoid
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-frame.html deleted file mode 100644 index da3a6524..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid

-
-

Interfaces

- -

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-summary.html deleted file mode 100644 index 79fccb6f..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-summary.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid

-
-
-
    -
  • - - - - - - - - - - - - -
    Interface Summary 
    InterfaceDescription
    SubsystemSolenoid -
    A subsystem with a single DoubleSolenoid piston.
    -
    -
  • -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    SolenoidSimple -
    A simple SubsystemSolenoid.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-tree.html deleted file mode 100644 index 1c2f9fcd..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/interfaces/solenoid/package-tree.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SolenoidSimple (implements org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid)
        • -
        -
      • -
      -
    • -
    -
  • -
-

Interface Hierarchy

- -
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/CameraNetwork.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/CameraNetwork.html deleted file mode 100644 index 16d9b1f0..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/CameraNetwork.html +++ /dev/null @@ -1,385 +0,0 @@ - - - - - -CameraNetwork (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera
-

Class CameraNetwork

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable
    -
    -
    -
    -
    public class CameraNetwork
    -extends YamlSubsystem
    -
    Subsystem to initialize cameras and put video on SmartDashboard.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      CameraNetwork(int serverPort, - java.lang.String serverName, - java.util.List<MappedUsbCamera> cameras) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.util.List<MappedUsbCamera>getCameras() 
      intgetCamNum() 
      edu.wpi.cscore.MjpegServergetServer() 
      protected voidinitDefaultCommand() -
      Initialize the default command for a subsystem.
      -
      voidsetCamNum(int camNum) 
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getName, getSmartDashboardType, getTable, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        CameraNetwork

        -
        public CameraNetwork(int serverPort,
        -                     @NotNull
        -                     java.lang.String serverName,
        -                     @NotNull
        -                     java.util.List<MappedUsbCamera> cameras)
        -
        Default constructor
        -
        -
        Parameters:
        -
        serverPort - The port of the MjpegServer this subsystem uses.
        -
        serverName - The human-friendly name of the MjpegServer this subsystem uses.
        -
        cameras - The cameras this subsystem controls.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initDefaultCommand

        -
        protected void initDefaultCommand()
        -
        Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - after all the Subsystems are created.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - -
        -
      • -

        getServer

        -
        @NotNull
        -public edu.wpi.cscore.MjpegServer getServer()
        -
        -
        Returns:
        -
        Video server to view on SmartDashboard.
        -
        -
      • -
      - - - -
        -
      • -

        getCameras

        -
        @NotNull
        -public java.util.List<MappedUsbCamera> getCameras()
        -
        -
        Returns:
        -
        List of cameras used on the robot.
        -
        -
      • -
      - - - -
        -
      • -

        getCamNum

        -
        public int getCamNum()
        -
        -
        Returns:
        -
        The index of the active camera in the list of cameras.
        -
        -
      • -
      - - - -
        -
      • -

        setCamNum

        -
        public void setCamNum(int camNum)
        -
        -
        Parameters:
        -
        camNum - The index of the camera to make active in the list of cameras.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/ChangeCam.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/ChangeCam.html deleted file mode 100644 index 074b6169..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/ChangeCam.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -ChangeCam (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands
-

Class ChangeCam

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class ChangeCam
    -extends YamlCommandWrapper
    -
    Toggles camera on button press.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      ChangeCam(CameraNetwork subsystem) -
      Default constructor.
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Switch the MjpegServer to use the next camera in the list
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        ChangeCam

        -
        public ChangeCam(@NotNull
        -                 CameraNetwork subsystem)
        -
        Default constructor.
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Switch the MjpegServer to use the next camera in the list
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-frame.html deleted file mode 100644 index f70c2b7a..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-summary.html deleted file mode 100644 index 13f23565..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    ChangeCam -
    Toggles camera on button press.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-tree.html deleted file mode 100644 index 886a6deb..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/commands/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands.ChangeCam
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-frame.html deleted file mode 100644 index c7f5e65f..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-summary.html deleted file mode 100644 index aac624a1..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    CameraNetwork -
    Subsystem to initialize cameras and put video on SmartDashboard.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-tree.html deleted file mode 100644 index 3715cccd..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/camera/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem -
          -
        • org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/Pneumatics.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/Pneumatics.html deleted file mode 100644 index fd107306..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/Pneumatics.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - -Pneumatics (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics
-

Class Pneumatics

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, Loggable
    -
    -
    -
    -
    public class Pneumatics
    -extends YamlSubsystem
    -implements Loggable
    -
    A subsystem representing the pneumatics control system (e.g. the compressor and maybe a pressure sensor)
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      Pneumatics(int nodeID, - PressureSensor pressureSensor) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      java.lang.Object[]getData() -
      Get the data this subsystem logs every loop.
      -
      java.lang.String[]getHeader() -
      Get the headers for the data this subsystem logs every loop.
      -
      java.lang.StringgetName() -
      Get the name of this object.
      -
      voidinitDefaultCommand() -
      Do nothing.
      -
      voidstartCompressor() -
      Start up the compressor in closed loop control mode.
      -
      -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Subsystem

        -getCurrentCommand, getDefaultCommand, getSmartDashboardType, getTable, initTable, setDefaultCommand, toString
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        Pneumatics

        -
        public Pneumatics(int nodeID,
        -                  @Nullable
        -                  PressureSensor pressureSensor)
        -
        Default constructor
        -
        -
        Parameters:
        -
        nodeID - The node ID of the compressor.
        -
        pressureSensor - The pressure sensor attached to this pneumatics system. Can be null.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initDefaultCommand

        -
        public void initDefaultCommand()
        -
        Do nothing.
        -
        -
        Specified by:
        -
        initDefaultCommand in class edu.wpi.first.wpilibj.command.Subsystem
        -
        -
      • -
      - - - -
        -
      • -

        startCompressor

        -
        public void startCompressor()
        -
        Start up the compressor in closed loop control mode.
        -
      • -
      - - - -
        -
      • -

        getHeader

        -
        @NotNull
        -public java.lang.String[] getHeader()
        -
        Get the headers for the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getHeader in interface Loggable
        -
        Returns:
        -
        An N-length array of String labels for data, where N is the length of the Object[] returned by getData().
        -
        -
      • -
      - - - -
        -
      • -

        getData

        -
        @NotNull
        -public java.lang.Object[] getData()
        -
        Get the data this subsystem logs every loop.
        -
        -
        Specified by:
        -
        getData in interface Loggable
        -
        Returns:
        -
        An N-length array of Objects, where N is the number of labels given by getHeader.
        -
        -
      • -
      - - - -
        -
      • -

        getName

        -
        @NotNull
        -public java.lang.String getName()
        -
        Get the name of this object.
        -
        -
        Specified by:
        -
        getName in interface edu.wpi.first.wpilibj.NamedSendable
        -
        Specified by:
        -
        getName in interface Loggable
        -
        Overrides:
        -
        getName in class edu.wpi.first.wpilibj.command.Subsystem
        -
        Returns:
        -
        A string that will identify this object in the log file.
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/StartCompressor.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/StartCompressor.html deleted file mode 100644 index 421354f0..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/StartCompressor.html +++ /dev/null @@ -1,395 +0,0 @@ - - - - - -StartCompressor (RoboRIO 1.0 API) - - - - - - - - - - - - -
-
org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands
-

Class StartCompressor

-
-
- -
-
    -
  • -
    -
    All Implemented Interfaces:
    -
    edu.wpi.first.wpilibj.NamedSendable, edu.wpi.first.wpilibj.Sendable, YamlCommand
    -
    -
    -
    -
    public class StartCompressor
    -extends YamlCommandWrapper
    -
    Start up the pneumatic compressor.
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      StartCompressor(Pneumatics subsystem) -
      Default constructor
      -
      -
    • -
    - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      protected voidend() -
      Log when this command ends
      -
      protected voidexecute() -
      Start the compressor.
      -
      protected voidinitialize() -
      Log when this command is initialized
      -
      protected voidinterrupted() -
      Log when this command is interrupted.
      -
      protected booleanisFinished() -
      Finish immediately because this is a state-change command.
      -
      - -
        -
      • - - -

        Methods inherited from class edu.wpi.first.wpilibj.command.Command

        -cancel, clearRequirements, doesRequire, getGroup, getName, getSmartDashboardType, getTable, initTable, isCanceled, isInterruptible, isRunning, isTimedOut, requires, setInterruptible, setRunWhenDisabled, setTimeout, start, timeSinceInitialized, toString, willRunWhenDisabled
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • -
      -
    • -
    -
  • -
-
-
-
    -
  • - -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        StartCompressor

        -
        public StartCompressor(@NotNull
        -                       Pneumatics subsystem)
        -
        Default constructor
        -
        -
        Parameters:
        -
        subsystem - The subsystem to execute this command on.
        -
        -
      • -
      -
    • -
    - -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        initialize

        -
        protected void initialize()
        -
        Log when this command is initialized
        -
        -
        Overrides:
        -
        initialize in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        execute

        -
        protected void execute()
        -
        Start the compressor.
        -
        -
        Overrides:
        -
        execute in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        isFinished

        -
        protected boolean isFinished()
        -
        Finish immediately because this is a state-change command.
        -
        -
        Specified by:
        -
        isFinished in class edu.wpi.first.wpilibj.command.Command
        -
        Returns:
        -
        true
        -
        -
      • -
      - - - -
        -
      • -

        end

        -
        protected void end()
        -
        Log when this command ends
        -
        -
        Overrides:
        -
        end in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      - - - -
        -
      • -

        interrupted

        -
        protected void interrupted()
        -
        Log when this command is interrupted.
        -
        -
        Overrides:
        -
        interrupted in class edu.wpi.first.wpilibj.command.Command
        -
        -
      • -
      -
    • -
    -
  • -
-
-
- - - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-frame.html deleted file mode 100644 index c2d213bf..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-summary.html deleted file mode 100644 index cc1ebf93..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    StartCompressor -
    Start up the pneumatic compressor.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-tree.html deleted file mode 100644 index a5afc126..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/commands/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands.StartCompressor
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-frame.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-frame.html deleted file mode 100644 index 1309e897..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics (RoboRIO 1.0 API) - - - - - -

org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics

-
-

Classes

- -
- - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-summary.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-summary.html deleted file mode 100644 index e902266a..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Package org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    Pneumatics -
    A subsystem representing the pneumatics control system (e.g.
    -
    -
  • -
-
- - - - - - diff --git a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-tree.html b/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-tree.html deleted file mode 100644 index 20f001b4..00000000 --- a/docs/org/usfirst/frc/team449/robot/subsystem/singleImplementation/pneumatics/package-tree.html +++ /dev/null @@ -1,143 +0,0 @@ - - - - - -org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - - - - -
-

Hierarchy For Package org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem -
          -
        • org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable)
        • -
        -
      • -
      -
    • -
    -
  • -
-
- - - - - - diff --git a/docs/overview-frame.html b/docs/overview-frame.html deleted file mode 100644 index 80876f45..00000000 --- a/docs/overview-frame.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - -Overview List (RoboRIO 1.0 API) - - - - - - -
-

Packages

- -
-

 

- - diff --git a/docs/overview-summary.html b/docs/overview-summary.html deleted file mode 100644 index b4ce581c..00000000 --- a/docs/overview-summary.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - -Overview (RoboRIO 1.0 API) - - - - - - - - -
- - - - - - - -
- - -
-

RoboRIO 1.0 API

-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Packages 
PackageDescription
org.usfirst.frc.team449.robot 
org.usfirst.frc.team449.robot.commands.autonomous 
org.usfirst.frc.team449.robot.commands.general 
org.usfirst.frc.team449.robot.commands.multiInterface 
org.usfirst.frc.team449.robot.commands.multiInterface.drive 
org.usfirst.frc.team449.robot.commands.multiSubsystem 
org.usfirst.frc.team449.robot.components 
org.usfirst.frc.team449.robot.drive 
org.usfirst.frc.team449.robot.drive.commands 
org.usfirst.frc.team449.robot.drive.shifting 
org.usfirst.frc.team449.robot.drive.shifting.commands 
org.usfirst.frc.team449.robot.drive.unidirectional 
org.usfirst.frc.team449.robot.drive.unidirectional.commands 
org.usfirst.frc.team449.robot.generalInterfaces.loggable 
org.usfirst.frc.team449.robot.generalInterfaces.rumbleable 
org.usfirst.frc.team449.robot.generalInterfaces.shiftable 
org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands 
org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor 
org.usfirst.frc.team449.robot.generalInterfaces.updatable 
org.usfirst.frc.team449.robot.jacksonWrappers 
org.usfirst.frc.team449.robot.oi 
org.usfirst.frc.team449.robot.oi.buttons 
org.usfirst.frc.team449.robot.oi.fieldoriented 
org.usfirst.frc.team449.robot.oi.throttles 
org.usfirst.frc.team449.robot.oi.unidirectional 
org.usfirst.frc.team449.robot.oi.unidirectional.arcade 
org.usfirst.frc.team449.robot.oi.unidirectional.tank 
org.usfirst.frc.team449.robot.other 
org.usfirst.frc.team449.robot.subsystem.complex.climber 
org.usfirst.frc.team449.robot.subsystem.complex.intake 
org.usfirst.frc.team449.robot.subsystem.complex.shooter 
org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS 
org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands 
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor 
org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands 
org.usfirst.frc.team449.robot.subsystem.interfaces.conditional 
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel 
org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands 
org.usfirst.frc.team449.robot.subsystem.interfaces.intake 
org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands 
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile 
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands 
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem 
org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands 
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid 
org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands 
org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera 
org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands 
org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics 
org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands 
-
- -
- - - - - - - -
- - - - diff --git a/docs/overview-tree.html b/docs/overview-tree.html deleted file mode 100644 index 38c2ec5d..00000000 --- a/docs/overview-tree.html +++ /dev/null @@ -1,498 +0,0 @@ - - - - - -Class Hierarchy (RoboRIO 1.0 API) - - - - - - - - -
- - - - - - - -
- - -
-

Hierarchy For All Packages

-Package Hierarchies: - -
-
-

Class Hierarchy

-
    -
  • java.lang.Object -
      -
    • org.usfirst.frc.team449.robot.components.AHRSRumbleComponent (implements org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable)
    • -
    • org.usfirst.frc.team449.robot.components.AutoshiftComponent
    • -
    • org.usfirst.frc.team449.robot.other.BufferTimer
    • -
    • org.usfirst.frc.team449.robot.other.Clock
    • -
    • edu.wpi.first.wpilibj.command.Command (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • edu.wpi.first.wpilibj.command.CommandGroup -
          -
        • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandGroupWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
            -
          • org.usfirst.frc.team449.robot.commands.autonomous.Auto2017Boiler
          • -
          • org.usfirst.frc.team449.robot.commands.autonomous.Auto2017Center
          • -
          • org.usfirst.frc.team449.robot.commands.autonomous.Auto2017Feeder
          • -
          • org.usfirst.frc.team449.robot.commands.general.CommandSequence
          • -
          • org.usfirst.frc.team449.robot.commands.multiSubsystem.FireShooter
          • -
          • org.usfirst.frc.team449.robot.commands.multiInterface.drive.JiggleRobot<T>
          • -
          • org.usfirst.frc.team449.robot.commands.multiSubsystem.LoadShooter<T>
          • -
          • org.usfirst.frc.team449.robot.commands.general.ParallelCommandGroup
          • -
          • org.usfirst.frc.team449.robot.drive.unidirectional.commands.PIDBackAndForth<T>
          • -
          • org.usfirst.frc.team449.robot.drive.unidirectional.commands.PIDTest<T>
          • -
          • org.usfirst.frc.team449.robot.commands.multiSubsystem.RackShooter<T>
          • -
          • org.usfirst.frc.team449.robot.commands.multiSubsystem.ResetShooter<T>
          • -
          • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunProfile<T>
          • -
          • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.RunProfileTwoSides<T>
          • -
          • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpThenShoot
          • -
          • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.ToggleShooting
          • -
          -
        • -
        -
      • -
      • edu.wpi.first.wpilibj.command.PIDCommand (implements edu.wpi.first.wpilibj.Sendable) - -
      • -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper (implements org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand) -
          -
        • org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands.ChangeCam
        • -
        • org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineNominalVoltage<T>
        • -
        • org.usfirst.frc.team449.robot.drive.unidirectional.commands.DetermineVelVsVoltage<T>
        • -
        • org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveAtSpeed<T>
        • -
        • org.usfirst.frc.team449.robot.drive.unidirectional.commands.DriveStraight<T>
        • -
        • org.usfirst.frc.team449.robot.drive.commands.EnableMotors
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.LoadProfile
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands.LoadProfileTwoSides
        • -
        • org.usfirst.frc.team449.robot.drive.shifting.commands.OverrideAutoShift
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.OverrideNavX
        • -
        • org.usfirst.frc.team449.robot.drive.commands.ResetPosition
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands.RunLoadedProfile<T>
        • -
        • org.usfirst.frc.team449.robot.commands.multiInterface.RunMotorWhileConditonMet<T>
        • -
        • org.usfirst.frc.team449.robot.commands.general.RunRunnables
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.SetIntakeMode
        • -
        • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.ShiftGears
        • -
        • org.usfirst.frc.team449.robot.drive.unidirectional.commands.SimpleUnidirectionalDrive<T>
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidForward
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidOff
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.SolenoidReverse
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.SpinUpFlywheel
        • -
        • org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands.StartCompressor
        • -
        • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToGear
        • -
        • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToHighGear
        • -
        • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands.SwitchToLowGear
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands.ToggleIntaking
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.ToggleMotor
        • -
        • org.usfirst.frc.team449.robot.drive.shifting.commands.ToggleOverrideAutoShift
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands.ToggleOverrideNavX
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands.ToggleSolenoid
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOff - -
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands.TurnAllOn
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOff - -
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands.TurnMotorOn
        • -
        • org.usfirst.frc.team449.robot.drive.unidirectional.commands.VoltageRamp
        • -
        • org.usfirst.frc.team449.robot.commands.general.WaitForMillis
        • -
        -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.oi.buttons.CommandButton
    • -
    • org.usfirst.frc.team449.robot.commands.multiInterface.drive.FieldOrientedUnidirectionalDriveCommand.AngularSnapPoint
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon (implements org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable, org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor)
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.PerGearSettings
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.FPSTalon.SlaveTalon
    • -
    • edu.wpi.first.wpilibj.GenericHID -
        -
      • edu.wpi.first.wpilibj.JoystickBase -
          -
        • edu.wpi.first.wpilibj.Joystick -
            -
          • org.usfirst.frc.team449.robot.jacksonWrappers.MappedJoystick (implements org.usfirst.frc.team449.robot.generalInterfaces.rumbleable.Rumbleable)
          • -
          -
        • -
        -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.other.LogEvent
    • -
    • org.usfirst.frc.team449.robot.other.Logger (implements java.lang.Runnable)
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.MappedAHRS
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.MappedDigitalInput
    • -
    • org.usfirst.frc.team449.robot.other.MotionProfileData
    • -
    • org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcade (implements org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional) -
        -
      • org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeSimple
      • -
      • org.usfirst.frc.team449.robot.oi.unidirectional.arcade.OIArcadeWithDPad (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable)
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.oi.fieldoriented.OIFieldOriented (implements org.usfirst.frc.team449.robot.oi.OI) - -
    • -
    • org.usfirst.frc.team449.robot.oi.unidirectional.OIOutreach (implements org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional)
    • -
    • org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITank (implements org.usfirst.frc.team449.robot.oi.unidirectional.OIUnidirectional) -
        -
      • org.usfirst.frc.team449.robot.oi.unidirectional.tank.OITankSimple
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.other.Polynomial
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.PressureSensor
    • -
    • edu.wpi.first.wpilibj.RobotBase -
        -
      • edu.wpi.first.wpilibj.IterativeRobot -
          -
        • org.usfirst.frc.team449.robot.Robot
        • -
        -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.RobotMap2017
    • -
    • edu.wpi.first.wpilibj.SensorBase -
        -
      • edu.wpi.first.wpilibj.PWM (implements edu.wpi.first.wpilibj.livewindow.LiveWindowSendable) -
          -
        • edu.wpi.first.wpilibj.SafePWM (implements edu.wpi.first.wpilibj.MotorSafety) -
            -
          • edu.wpi.first.wpilibj.PWMSpeedController (implements edu.wpi.first.wpilibj.SpeedController) -
              -
            • edu.wpi.first.wpilibj.VictorSP -
                -
              • org.usfirst.frc.team449.robot.jacksonWrappers.MappedVictor (implements org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor)
              • -
              -
            • -
            -
          • -
          -
        • -
        -
      • -
      • edu.wpi.first.wpilibj.SolenoidBase -
          -
        • edu.wpi.first.wpilibj.DoubleSolenoid (implements edu.wpi.first.wpilibj.livewindow.LiveWindowSendable) - -
        • -
        -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.components.ShiftComponent - -
    • -
    • org.usfirst.frc.team449.robot.jacksonWrappers.SimpleMotorCluster (implements org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor)
    • -
    • edu.wpi.first.wpilibj.command.Subsystem (implements edu.wpi.first.wpilibj.NamedSendable) -
        -
      • org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem -
          -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.BinaryMotorSimple (implements org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor)
        • -
        • org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.CameraNetwork
        • -
        • org.usfirst.frc.team449.robot.subsystem.complex.climber.ClimberCurrentLimited (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable, org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor, org.usfirst.frc.team449.robot.subsystem.interfaces.conditional.SubsystemConditional)
        • -
        • org.usfirst.frc.team449.robot.drive.unidirectional.DriveTalonCluster (implements org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional, org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable, org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS, org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.SubsystemMPTwoSides) - -
        • -
        • org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectionalSimple (implements org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional)
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.FlywheelSimple (implements org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel)
        • -
        • org.usfirst.frc.team449.robot.subsystem.complex.intake.IntakeFixedAndActuated (implements org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake, org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid)
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.IntakeSimple (implements org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake)
        • -
        • org.usfirst.frc.team449.robot.subsystem.complex.shooter.LoggingFlywheel (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable, org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel)
        • -
        • org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.Pneumatics (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable)
        • -
        • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SolenoidSimple (implements org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid)
        • -
        -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.oi.throttles.ThrottleBasic (implements edu.wpi.first.wpilibj.PIDSource, org.usfirst.frc.team449.robot.oi.throttles.Throttle) - -
    • -
    • org.usfirst.frc.team449.robot.oi.throttles.ThrottleSum (implements org.usfirst.frc.team449.robot.oi.throttles.Throttle)
    • -
    • edu.wpi.first.wpilibj.buttons.Trigger (implements edu.wpi.first.wpilibj.Sendable) -
        -
      • edu.wpi.first.wpilibj.buttons.Button - -
      • -
      -
    • -
    • org.usfirst.frc.team449.robot.other.UnidirectionalPoseEstimator<T> (implements org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable, org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable)
    • -
    • org.usfirst.frc.team449.robot.other.Updater (implements org.usfirst.frc.team449.robot.jacksonWrappers.MappedRunnable)
    • -
    • edu.wpi.cscore.VideoSource -
        -
      • edu.wpi.cscore.VideoCamera -
          -
        • edu.wpi.cscore.UsbCamera - -
        • -
        -
      • -
      -
    • -
    -
  • -
-

Interface Hierarchy

-
    -
  • org.usfirst.frc.team449.robot.drive.DriveSubsystem -
      -
    • org.usfirst.frc.team449.robot.drive.unidirectional.DriveUnidirectional (also extends org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable)
    • -
    -
  • -
  • org.usfirst.frc.team449.robot.generalInterfaces.loggable.Loggable
  • -
  • org.usfirst.frc.team449.robot.generalInterfaces.rumbleable.Rumbleable
  • -
  • java.lang.Runnable - -
  • -
  • org.usfirst.frc.team449.robot.generalInterfaces.shiftable.Shiftable - -
  • -
  • org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor.SimpleMotor
  • -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.SubsystemAHRS
  • -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.SubsystemBinaryMotor
  • -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.SubsystemFlywheel
  • -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.intake.SubsystemIntake
  • -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.SubsystemMP -
      -
    • org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.SubsystemMPTwoSides
    • -
    -
  • -
  • org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.SubsystemSolenoid
  • -
  • org.usfirst.frc.team449.robot.generalInterfaces.updatable.Updatable - -
  • -
  • org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommand
  • -
-

Enum Hierarchy

-
    -
  • java.lang.Object - -
  • -
-
- -
- - - - - - - -
- - - - diff --git a/docs/package-list b/docs/package-list deleted file mode 100644 index c6914ee7..00000000 --- a/docs/package-list +++ /dev/null @@ -1,50 +0,0 @@ -org.usfirst.frc.team449.robot -org.usfirst.frc.team449.robot.commands.autonomous -org.usfirst.frc.team449.robot.commands.general -org.usfirst.frc.team449.robot.commands.multiInterface -org.usfirst.frc.team449.robot.commands.multiInterface.drive -org.usfirst.frc.team449.robot.commands.multiSubsystem -org.usfirst.frc.team449.robot.components -org.usfirst.frc.team449.robot.drive -org.usfirst.frc.team449.robot.drive.commands -org.usfirst.frc.team449.robot.drive.shifting -org.usfirst.frc.team449.robot.drive.shifting.commands -org.usfirst.frc.team449.robot.drive.unidirectional -org.usfirst.frc.team449.robot.drive.unidirectional.commands -org.usfirst.frc.team449.robot.generalInterfaces.loggable -org.usfirst.frc.team449.robot.generalInterfaces.rumbleable -org.usfirst.frc.team449.robot.generalInterfaces.shiftable -org.usfirst.frc.team449.robot.generalInterfaces.shiftable.commands -org.usfirst.frc.team449.robot.generalInterfaces.simpleMotor -org.usfirst.frc.team449.robot.generalInterfaces.updatable -org.usfirst.frc.team449.robot.jacksonWrappers -org.usfirst.frc.team449.robot.oi -org.usfirst.frc.team449.robot.oi.buttons -org.usfirst.frc.team449.robot.oi.fieldoriented -org.usfirst.frc.team449.robot.oi.throttles -org.usfirst.frc.team449.robot.oi.unidirectional -org.usfirst.frc.team449.robot.oi.unidirectional.arcade -org.usfirst.frc.team449.robot.oi.unidirectional.tank -org.usfirst.frc.team449.robot.other -org.usfirst.frc.team449.robot.subsystem.complex.climber -org.usfirst.frc.team449.robot.subsystem.complex.intake -org.usfirst.frc.team449.robot.subsystem.complex.shooter -org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS -org.usfirst.frc.team449.robot.subsystem.interfaces.AHRS.commands -org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor -org.usfirst.frc.team449.robot.subsystem.interfaces.binaryMotor.commands -org.usfirst.frc.team449.robot.subsystem.interfaces.conditional -org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel -org.usfirst.frc.team449.robot.subsystem.interfaces.flywheel.commands -org.usfirst.frc.team449.robot.subsystem.interfaces.intake -org.usfirst.frc.team449.robot.subsystem.interfaces.intake.commands -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.TwoSideMPSubsystem.commands -org.usfirst.frc.team449.robot.subsystem.interfaces.motionProfile.commands -org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid -org.usfirst.frc.team449.robot.subsystem.interfaces.solenoid.commands -org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera -org.usfirst.frc.team449.robot.subsystem.singleImplementation.camera.commands -org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics -org.usfirst.frc.team449.robot.subsystem.singleImplementation.pneumatics.commands diff --git a/docs/script.js b/docs/script.js deleted file mode 100644 index b3463569..00000000 --- a/docs/script.js +++ /dev/null @@ -1,30 +0,0 @@ -function show(type) -{ - count = 0; - for (var key in methods) { - var row = document.getElementById(key); - if ((methods[key] & type) != 0) { - row.style.display = ''; - row.className = (count++ % 2) ? rowColor : altColor; - } - else - row.style.display = 'none'; - } - updateTabs(type); -} - -function updateTabs(type) -{ - for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; - if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; - } - else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; - } - } -} diff --git a/docs/stylesheet.css b/docs/stylesheet.css deleted file mode 100644 index 98055b22..00000000 --- a/docs/stylesheet.css +++ /dev/null @@ -1,574 +0,0 @@ -/* Javadoc style sheet */ -/* -Overall document style -*/ - -@import url('resources/fonts/dejavu.css'); - -body { - background-color:#ffffff; - color:#353833; - font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:14px; - margin:0; -} -a:link, a:visited { - text-decoration:none; - color:#4A6782; -} -a:hover, a:focus { - text-decoration:none; - color:#bb7a2a; -} -a:active { - text-decoration:none; - color:#4A6782; -} -a[name] { - color:#353833; -} -a[name]:hover { - text-decoration:none; - color:#353833; -} -pre { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; -} -h1 { - font-size:20px; -} -h2 { - font-size:18px; -} -h3 { - font-size:16px; - font-style:italic; -} -h4 { - font-size:13px; -} -h5 { - font-size:12px; -} -h6 { - font-size:11px; -} -ul { - list-style-type:disc; -} -code, tt { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; - margin-top:8px; - line-height:1.4em; -} -dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; -} -table tr td dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - vertical-align:top; - padding-top:4px; -} -sup { - font-size:8px; -} -/* -Document title and Copyright styles -*/ -.clear { - clear:both; - height:0px; - overflow:hidden; -} -.aboutLanguage { - float:right; - padding:0px 21px; - font-size:11px; - z-index:200; - margin-top:-9px; -} -.legalCopy { - margin-left:.5em; -} -.bar a, .bar a:link, .bar a:visited, .bar a:active { - color:#FFFFFF; - text-decoration:none; -} -.bar a:hover, .bar a:focus { - color:#bb7a2a; -} -.tab { - background-color:#0066FF; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; -} -/* -Navigation bar styles -*/ -.bar { - background-color:#4D7A97; - color:#FFFFFF; - padding:.8em .5em .4em .8em; - height:auto;/*height:1.8em;*/ - font-size:11px; - margin:0; -} -.topNav { - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.bottomNav { - margin-top:10px; - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.subNav { - background-color:#dee3e9; - float:left; - width:100%; - overflow:hidden; - font-size:12px; -} -.subNav div { - clear:left; - float:left; - padding:0 0 5px 6px; - text-transform:uppercase; -} -ul.navList, ul.subNavList { - float:left; - margin:0 25px 0 0; - padding:0; -} -ul.navList li{ - list-style:none; - float:left; - padding: 5px 6px; - text-transform:uppercase; -} -ul.subNavList li{ - list-style:none; - float:left; -} -.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { - color:#FFFFFF; - text-decoration:none; - text-transform:uppercase; -} -.topNav a:hover, .bottomNav a:hover { - text-decoration:none; - color:#bb7a2a; - text-transform:uppercase; -} -.navBarCell1Rev { - background-color:#F8981D; - color:#253441; - margin: auto 5px; -} -.skipNav { - position:absolute; - top:auto; - left:-9999px; - overflow:hidden; -} -/* -Page header and footer styles -*/ -.header, .footer { - clear:both; - margin:0 20px; - padding:5px 0 0 0; -} -.indexHeader { - margin:10px; - position:relative; -} -.indexHeader span{ - margin-right:15px; -} -.indexHeader h1 { - font-size:13px; -} -.title { - color:#2c4557; - margin:10px 0; -} -.subTitle { - margin:5px 0 0 0; -} -.header ul { - margin:0 0 15px 0; - padding:0; -} -.footer ul { - margin:20px 0 5px 0; -} -.header ul li, .footer ul li { - list-style:none; - font-size:13px; -} -/* -Heading styles -*/ -div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList li.blockList h3 { - padding:0; - margin:15px 0; -} -ul.blockList li.blockList h2 { - padding:0px 0 20px 0; -} -/* -Page layout container styles -*/ -.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { - clear:both; - padding:10px 20px; - position:relative; -} -.indexContainer { - margin:10px; - position:relative; - font-size:12px; -} -.indexContainer h2 { - font-size:13px; - padding:0 0 3px 0; -} -.indexContainer ul { - margin:0; - padding:0; -} -.indexContainer ul li { - list-style:none; - padding-top:2px; -} -.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { - font-size:12px; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; -} -.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { - margin:5px 0 10px 0px; - font-size:14px; - font-family:'DejaVu Sans Mono',monospace; -} -.serializedFormContainer dl.nameValue dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; -} -.serializedFormContainer dl.nameValue dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; -} -/* -List styles -*/ -ul.horizontal li { - display:inline; - font-size:0.9em; -} -ul.inheritance { - margin:0; - padding:0; -} -ul.inheritance li { - display:inline; - list-style:none; -} -ul.inheritance li ul.inheritance { - margin-left:15px; - padding-left:15px; - padding-top:1px; -} -ul.blockList, ul.blockListLast { - margin:10px 0 10px 0; - padding:0; -} -ul.blockList li.blockList, ul.blockListLast li.blockList { - list-style:none; - margin-bottom:15px; - line-height:1.4; -} -ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { - padding:0px 20px 5px 10px; - border:1px solid #ededed; - background-color:#f8f8f8; -} -ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { - margin-left:0; - padding-left:0; - padding-bottom:15px; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { - list-style:none; - border-bottom:none; - padding-bottom:0; -} -table tr td dl, table tr td dl dt, table tr td dl dd { - margin-top:0; - margin-bottom:1px; -} -/* -Table styles -*/ -.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { - width:100%; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; -} -.overviewSummary, .memberSummary { - padding:0px; -} -.overviewSummary caption, .memberSummary caption, .typeSummary caption, -.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#253441; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0px; - padding-top:10px; - padding-left:1px; - margin:0px; - white-space:pre; -} -.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, -.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, -.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, -.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, -.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, -.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, -.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, -.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { - color:#FFFFFF; -} -.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, -.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - padding-bottom:7px; - display:inline-block; - float:left; - background-color:#F8981D; - border: none; - height:16px; -} -.memberSummary caption span.activeTableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#F8981D; - height:16px; -} -.memberSummary caption span.tableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#4D7A97; - height:16px; -} -.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { - padding-top:0px; - padding-left:0px; - padding-right:0px; - background-image:none; - float:none; - display:inline; -} -.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, -.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { - display:none; - width:5px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .activeTableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .tableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - background-color:#4D7A97; - float:left; - -} -.overviewSummary td, .memberSummary td, .typeSummary td, -.useSummary td, .constantsSummary td, .deprecatedSummary td { - text-align:left; - padding:0px 0px 12px 10px; -} -th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, -td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ - vertical-align:top; - padding-right:0px; - padding-top:8px; - padding-bottom:3px; -} -th.colFirst, th.colLast, th.colOne, .constantsSummary th { - background:#dee3e9; - text-align:left; - padding:8px 3px 3px 7px; -} -td.colFirst, th.colFirst { - white-space:nowrap; - font-size:13px; -} -td.colLast, th.colLast { - font-size:13px; -} -td.colOne, th.colOne { - font-size:13px; -} -.overviewSummary td.colFirst, .overviewSummary th.colFirst, -.useSummary td.colFirst, .useSummary th.colFirst, -.overviewSummary td.colOne, .overviewSummary th.colOne, -.memberSummary td.colFirst, .memberSummary th.colFirst, -.memberSummary td.colOne, .memberSummary th.colOne, -.typeSummary td.colFirst{ - width:25%; - vertical-align:top; -} -td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { - font-weight:bold; -} -.tableSubHeadingColor { - background-color:#EEEEFF; -} -.altColor { - background-color:#FFFFFF; -} -.rowColor { - background-color:#EEEEEF; -} -/* -Content styles -*/ -.description pre { - margin-top:0; -} -.deprecatedContent { - margin:0; - padding:10px 0; -} -.docSummary { - padding:0; -} - -ul.blockList ul.blockList ul.blockList li.blockList h3 { - font-style:normal; -} - -div.block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; -} - -td.colLast div { - padding-top:0px; -} - - -td.colLast a { - padding-bottom:3px; -} -/* -Formatting effect styles -*/ -.sourceLineNo { - color:green; - padding:0 30px 0 0; -} -h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:10px; -} -.block { - display:block; - margin:3px 10px 2px 0px; - color:#474747; -} -.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, -.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, -.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { - font-weight:bold; -} -.deprecationComment, .emphasizedPhrase, .interfaceName { - font-style:italic; -} - -div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, -div.block div.block span.interfaceName { - font-style:normal; -} - -div.contentContainer ul.blockList li.blockList h2{ - padding-bottom:0px; -} diff --git a/settings.gradle b/settings.gradle index 7c91e295..617c0134 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1 @@ -include 'RoboRIO', 'Pathgen' rootProject.name = 'robot2017' diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/Robot.java b/src/main/java/org/usfirst/frc/team449/robot/Robot.java similarity index 100% rename from RoboRIO/src/main/java/org/usfirst/frc/team449/robot/Robot.java rename to src/main/java/org/usfirst/frc/team449/robot/Robot.java diff --git a/RoboRIO/src/main/java/org/usfirst/frc/team449/robot/RobotMap2017.java b/src/main/java/org/usfirst/frc/team449/robot/RobotMap2017.java similarity index 100% rename from RoboRIO/src/main/java/org/usfirst/frc/team449/robot/RobotMap2017.java rename to src/main/java/org/usfirst/frc/team449/robot/RobotMap2017.java diff --git a/RoboRIO/src/main/resources/ballbasaur_map.yml b/src/main/resources/ballbasaur_map.yml similarity index 100% rename from RoboRIO/src/main/resources/ballbasaur_map.yml rename to src/main/resources/ballbasaur_map.yml diff --git a/RoboRIO/src/main/resources/calcifer_outreach_map.yml b/src/main/resources/calcifer_outreach_map.yml similarity index 100% rename from RoboRIO/src/main/resources/calcifer_outreach_map.yml rename to src/main/resources/calcifer_outreach_map.yml diff --git a/RoboRIO/src/main/resources/nate_map.yml b/src/main/resources/nate_map.yml similarity index 100% rename from RoboRIO/src/main/resources/nate_map.yml rename to src/main/resources/nate_map.yml diff --git a/RoboRIO/src/main/resources/naveen_map.yml b/src/main/resources/naveen_map.yml similarity index 100% rename from RoboRIO/src/main/resources/naveen_map.yml rename to src/main/resources/naveen_map.yml diff --git a/templates/GenericCommand.java b/templates/GenericCommand.java deleted file mode 100644 index 2f927632..00000000 --- a/templates/GenericCommand.java +++ /dev/null @@ -1,72 +0,0 @@ -package templates; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * A broad template for all commands. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class GenericCommand extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final GenericSubsystemInterface subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on - */ - @JsonCreator - public GenericCommand(@NotNull @JsonProperty(required = true) GenericSubsystemInterface subsystem) { - this.subsystem = subsystem; - } - - /** - * - */ - @Override - protected void initialize() { - Logger.addEvent("GenericCommand init.", this.getClass()); - } - - /** - * - */ - @Override - protected void execute() { - } - - /** - * @return - */ - @Override - protected boolean isFinished() { - //This does NOT have to be true. - return true; - } - - /** - * - */ - @Override - protected void end() { - Logger.addEvent("GenericCommand end.", this.getClass()); - } - - /** - * - */ - @Override - protected void interrupted() { - Logger.addEvent("GenericCommand Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/templates/GenericRobotMap.java b/templates/GenericRobotMap.java deleted file mode 100644 index 3cc474bd..00000000 --- a/templates/GenericRobotMap.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.usfirst.frc.team449.robot; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.oi.buttons.CommandButton; - -import java.util.List; - -/** - * A generic example of the Jackson-compatible object representing the entire robot. - */ -public class RobotMap { - - /** - * The buttons for controlling this robot. - */ - @NotNull - private final List buttons; - - /** - * Default constructor. - * - * @param buttons The buttons for controlling this robot. - */ - @JsonCreator - public RobotMap(@NotNull @JsonProperty(required = true) List buttons) { - this.buttons = buttons; - } - - /** - * Getter for the list of buttons to control the robot. - * - * @return The buttons for controlling this robot. - */ - @NotNull - public List getButtons() { - return buttons; - } -} diff --git a/templates/GenericSubsystemInterface.java b/templates/GenericSubsystemInterface.java deleted file mode 100644 index 61876b33..00000000 --- a/templates/GenericSubsystemInterface.java +++ /dev/null @@ -1,11 +0,0 @@ -package templates; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; - -/** - * A generic example of an interface for a subsystem. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.WRAPPER_OBJECT, property = "@class") -public interface GenericSubsystemInterface { - -} diff --git a/templates/GenericSubsytem.java b/templates/GenericSubsytem.java deleted file mode 100644 index c385c57f..00000000 --- a/templates/GenericSubsytem.java +++ /dev/null @@ -1,30 +0,0 @@ -package templates; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlSubsystem; - -/** - * A generic example of a subsystem. - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class GenericSubsystem extends YamlSubsystem implements GenericSubsystemInterface { - - /** - * Default constructor - */ - @JsonCreator - public GenericSubsystem() { - } - - /** - * Initialize the default command for a subsystem. By default subsystems have no default command, but if they do, - * the default command is set with this method. It is called on all Subsystems by CommandBase in the users program - * after all the Subsystems are created. - */ - @Override - protected void initDefaultCommand() { - //Do nothing! - } -} diff --git a/templates/Generic_.travis.yml b/templates/Generic_.travis.yml deleted file mode 100644 index c2440bcb..00000000 --- a/templates/Generic_.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -sudo: required -language: java -jdk: oraclejdk8 - -script: - - ./gradlew build - -notifications: - email: - on_success: never - on_failure: always # default: always \ No newline at end of file diff --git a/templates/Generic_build.gradle b/templates/Generic_build.gradle deleted file mode 100644 index 379f1752..00000000 --- a/templates/Generic_build.gradle +++ /dev/null @@ -1,108 +0,0 @@ -//All these version numbers should be updated, but only during preseason. -plugins { - id 'org.hidetake.ssh' version "2.9.0" - id "java" - id "eclipse" - id "idea" - id "jaci.openrio.gradle.GradleRIO" version "2017.1.5" -} - -group 'org.usfirst.frc.team449.PROJECT_NAME' -version '1.0' - -repositories { - mavenCentral() - maven { - name = "GradleRio" - url = "http://dev.imjac.in/maven" - } - - maven { url "https://plugins.gradle.org/m2/" } -} - -dependencies { - // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind - compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.0.pr3' - // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core - compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.0.pr3' - // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations - compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.0.pr3' - compile group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.9.0.pr3' - //com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.0.pr3 - compile group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: '2.9.0.pr3' - compile 'org.jetbrains:annotations:13.0' - compile wpilib() - compile talonSrx() - compile navx() -} - -task convertFiles { - doLast { - fileTree("src/main/resources").matching { include "*.txt" }.each { aFile -> - exec { - commandLine 'dos2unix' - args aFile.absolutePath - } - } - } -} - -/* GradleRIO stuff */ -remotes { - rio { - host = 'roboRIO-449-frc.local' - user = 'lvuser' - knownHosts = allowAnyHosts - } -} - -frc { - team = '449' - robotClass = "org.usfirst.frc.team449.robot.Robot" -} - -wpi { - wpilibVersion = "+" - // The WPILib version to use. For this version of GradleRIO, must be a 2017 version - ntcoreVersion = "+" // The NetworkTables Core version to use. - opencvVersion = "+" // The OpenCV version to use - cscoreVersion = "+" // The CSCore version to use - - talonSrxVersion = "+" // The CTRE Toolsuite (Talon SRX) version to use. -} - -def robotManifest = { - attributes 'Main-Class': 'edu.wpi.first.wpilibj.RobotBase' - attributes 'Robot-Class': frc.robotClass -} - -task('copyResources', dependsOn: convertFiles) { - doLast { - ssh.run { - session(remotes.rio) { - execute 'mkdir ~/449_resources', ignoreError: true - execute 'mkdir ~/logs', ignoreError: true - put from: fileTree('src/main/resources'), into: './449_resources/' - } - } - } -} - -/* Generic artifact gen stuff */ -jar { - from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } - manifest robotManifest -} - -task genJavadoc(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -artifacts { - archives genJavadoc -} - -compileJava { - options.compilerArgs << '-parameters' -} \ No newline at end of file diff --git a/templates/Generic_robot.java b/templates/Generic_robot.java deleted file mode 100644 index b939f498..00000000 --- a/templates/Generic_robot.java +++ /dev/null @@ -1,75 +0,0 @@ -package templates; - -import com.google.protobuf.Message; -import edu.wpi.first.wpilibj.IterativeRobot; -import edu.wpi.first.wpilibj.command.Scheduler; -import maps.org.usfirst.frc.team449.robot.Robot2017Map; -import org.usfirst.frc.team449.robot.MappedSubsystem; - -import java.io.IOException; - -/** - * A broad template for all robot classes - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class Generic_robot extends IterativeRobot { - - /** - * Generic subsystem - */ - public static GenericMappedSubsytem GenericMappedSubsystem; - - /** - * The object constructed directly from map.cfg. - */ - public static RobotMap cfg; - - /** - * The method that runs when the robot is turned on. Initializes all subsystems from the map. - */ - public void robotInit() { - System.out.println("Started robotInit."); - try { - //Try to construct map from the cfg file - cfg = (Message) MappedSubsystem.readConfig("/home/lvuser/449_resources/map.cfg", - //Replace 2017 with your current year. - Robot2017Map.Robot2017.newBuilder()); - } catch (IOException e) { - //This is either the map file not being in the file system OR it being improperly formatted. - System.out.println("Config file is bad/nonexistent!"); - e.printStackTrace(); - } - } - - /** - * Run when we first enable in teleop. - */ - @Override - public void teleopInit() { - } - - /** - * Run every tick in teleop. - */ - @Override - public void teleopPeriodic() { - //Run all commands. This is a WPILib thing you don't really have to worry about. - Scheduler.getInstance().run(); - } - - /** - * Run when we first enable in autonomous - */ - @Override - public void autonomousInit() { - } - - /** - * Runs every tick in autonomous. - */ - @Override - public void autonomousPeriodic() { - //Run all commands. This is a WPILib thing you don't really have to worry about. - Scheduler.getInstance().run(); - } -} diff --git a/templates/Generic_settings.gradle b/templates/Generic_settings.gradle deleted file mode 100644 index e65b8051..00000000 --- a/templates/Generic_settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'PROJECT_NAME' \ No newline at end of file diff --git a/templates/StateChangeCommand.java b/templates/StateChangeCommand.java deleted file mode 100644 index 92987a2b..00000000 --- a/templates/StateChangeCommand.java +++ /dev/null @@ -1,74 +0,0 @@ -package templates; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIdentityInfo; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import org.jetbrains.annotations.NotNull; -import org.usfirst.frc.team449.robot.jacksonWrappers.YamlCommandWrapper; -import org.usfirst.frc.team449.robot.other.Logger; - -/** - * A command that does an instantaneous change (extend a piston, turn on a motor, etc.) - */ -@JsonIdentityInfo(generator = ObjectIdGenerators.StringIdGenerator.class) -public class StateChangeCommand extends YamlCommandWrapper { - - /** - * The subsystem to execute this command on. - */ - @NotNull - private final GenericSubsystemInterface subsystem; - - /** - * Default constructor - * - * @param subsystem The subsystem to execute this command on. - */ - @JsonCreator - public StateChangeCommand(@NotNull @JsonProperty(required = true) GenericSubsystemInterface subsystem) { - this.subsystem = subsystem; - } - - /** - * Log when this command is initialized - */ - @Override - protected void initialize() { - Logger.addEvent("StateChangeCommand init.", this.getClass()); - } - - /** - * Do the state change. - */ - @Override - protected void execute() { - subsystem.doAThing(); - } - - /** - * Finish immediately because this is a state-change command. - * - * @return true - */ - @Override - protected boolean isFinished() { - return true; - } - - /** - * Log when this command ends - */ - @Override - protected void end() { - Logger.addEvent("StateChangeCommand end.", this.getClass()); - } - - /** - * Log when this command is interrupted. - */ - @Override - protected void interrupted() { - Logger.addEvent("StateChangeCommand Interrupted!", this.getClass()); - } -} \ No newline at end of file diff --git a/templates/switchToFirstname.sh b/templates/switchToFirstname.sh deleted file mode 100644 index 8822a5a7..00000000 --- a/templates/switchToFirstname.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -git config --global user.name Firstname\ Lastname -git config --global user.email email@provider.com -git config --global user.signingkey 8_Char_GPG_Pub \ No newline at end of file