001// Copyright (c) FIRST and other WPILib contributors.
002// Open Source Software; you can modify and/or share it under the terms of
003// the WPILib BSD license file in the root directory of this project.
004
005package edu.wpi.first.wpilibj;
006
007/**
008 * This interface allows for PIDController to automatically read from this object.
009 *
010 * @deprecated Use DoubleSupplier and new PIDController class.
011 */
012@Deprecated(since = "2020", forRemoval = true)
013public interface PIDSource {
014  /**
015   * Set which parameter of the device you are using as a process control variable.
016   *
017   * @param pidSource An enum to select the parameter.
018   */
019  void setPIDSourceType(PIDSourceType pidSource);
020
021  /**
022   * Get which parameter of the device you are using as a process control variable.
023   *
024   * @return the currently selected PID source parameter
025   */
026  PIDSourceType getPIDSourceType();
027
028  /**
029   * Get the result to use in PIDController.
030   *
031   * @return the result to use in PIDController
032   */
033  double pidGet();
034}