001 /*----------------------------------------------------------------------------*/
002 /* Copyright (c) FIRST 2008-2012. All Rights Reserved. */
003 /* Open Source Software - may be modified and shared by FRC teams. The code */
004 /* must be accompanied by the FIRST BSD license file in the root directory of */
005 /* the project. */
006 /*----------------------------------------------------------------------------*/
007
008 package edu.wpi.first.wpilibj;
009
010 /**
011 * This interface allows for PIDController to automatically read from this
012 * object
013 * @author dtjones
014 */
015 public interface PIDSource {
016
017 /**
018 * A description for the type of output value to provide to a PIDController
019 */
020 public static class PIDSourceParameter {
021 public final int value;
022 static final int kDistance_val = 0;
023 static final int kRate_val = 1;
024 static final int kAngle_val = 2;
025 public static final PIDSourceParameter kDistance = new PIDSourceParameter(kDistance_val);
026 public static final PIDSourceParameter kRate = new PIDSourceParameter(kRate_val);
027 public static final PIDSourceParameter kAngle = new PIDSourceParameter(kAngle_val);
028
029 private PIDSourceParameter(int value) {
030 this.value = value;
031 }
032 }
033
034 /**
035 * Get the result to use in PIDController
036 * @return the result to use in PIDController
037 */
038 public double pidGet();
039 }