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
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2025-11-07 19:56:21 -05:00
|
|
|
#include "wpi/hal/SimDevice.h"
|
|
|
|
|
#include "wpi/math/geometry/Rotation2d.hpp"
|
2025-11-07 19:57:55 -05:00
|
|
|
#include "wpi/units/angle.hpp"
|
2020-08-19 22:59:52 -07:00
|
|
|
|
|
|
|
|
namespace frc {
|
|
|
|
|
|
|
|
|
|
class AnalogEncoder;
|
|
|
|
|
|
|
|
|
|
namespace sim {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Class to control a simulated analog encoder.
|
|
|
|
|
*/
|
|
|
|
|
class AnalogEncoderSim {
|
|
|
|
|
public:
|
|
|
|
|
/**
|
|
|
|
|
* Constructs from an AnalogEncoder object.
|
|
|
|
|
*
|
2020-10-22 20:38:12 -07:00
|
|
|
* @param encoder AnalogEncoder to simulate
|
2020-08-19 22:59:52 -07:00
|
|
|
*/
|
2020-10-22 20:38:12 -07:00
|
|
|
explicit AnalogEncoderSim(const AnalogEncoder& encoder);
|
2020-08-19 22:59:52 -07:00
|
|
|
|
|
|
|
|
/**
|
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
|
|
|
void Set(double value);
|
2020-08-19 22:59:52 -07:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get the simulated position.
|
|
|
|
|
*/
|
2024-05-24 11:53:56 -07:00
|
|
|
double Get();
|
2020-08-19 22:59:52 -07:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
hal::SimDouble m_positionSim;
|
|
|
|
|
};
|
|
|
|
|
} // namespace sim
|
|
|
|
|
} // namespace frc
|