2020-12-26 14:12:05 -08:00
|
|
|
// Copyright (c) FIRST and other WPILib contributors.
|
|
|
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
|
|
|
// the WPILib BSD license file in the root directory of this project.
|
2020-08-19 22:59:52 -07:00
|
|
|
|
|
|
|
|
package edu.wpi.first.wpilibj.simulation;
|
|
|
|
|
|
|
|
|
|
import edu.wpi.first.hal.SimDouble;
|
|
|
|
|
import edu.wpi.first.wpilibj.AnalogEncoder;
|
|
|
|
|
|
2020-12-29 22:45:16 -08:00
|
|
|
/** Class to control a simulated analog encoder. */
|
2020-08-19 22:59:52 -07:00
|
|
|
public class AnalogEncoderSim {
|
|
|
|
|
private final SimDouble m_simPosition;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Constructs from an AnalogEncoder object.
|
|
|
|
|
*
|
|
|
|
|
* @param encoder AnalogEncoder to simulate
|
|
|
|
|
*/
|
|
|
|
|
public AnalogEncoderSim(AnalogEncoder encoder) {
|
2020-12-29 22:45:16 -08:00
|
|
|
SimDeviceSim wrappedSimDevice =
|
|
|
|
|
new SimDeviceSim("AnalogEncoder" + "[" + encoder.getChannel() + "]");
|
2020-08-19 22:59:52 -07:00
|
|
|
m_simPosition = wrappedSimDevice.getDouble("Position");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-05-24 11:53:56 -07:00
|
|
|
* Set the position.
|
2020-10-22 20:38:12 -07:00
|
|
|
*
|
2024-05-24 11:53:56 -07:00
|
|
|
* @param value The position.
|
2020-08-19 22:59:52 -07:00
|
|
|
*/
|
2024-05-24 11:53:56 -07:00
|
|
|
public void set(double value) {
|
|
|
|
|
m_simPosition.set(value);
|
2020-08-19 22:59:52 -07:00
|
|
|
}
|
|
|
|
|
|
2021-06-10 20:46:47 -07:00
|
|
|
/**
|
|
|
|
|
* Get the simulated position.
|
|
|
|
|
*
|
|
|
|
|
* @return The simulated position.
|
|
|
|
|
*/
|
2024-05-24 11:53:56 -07:00
|
|
|
public double get() {
|
2020-08-19 22:59:52 -07:00
|
|
|
return m_simPosition.get();
|
|
|
|
|
}
|
|
|
|
|
}
|