mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[wpilib] DutyCycleEncoderSim: Expand API (#5443)
This commit is contained in:
@@ -16,12 +16,42 @@ DutyCycleEncoderSim::DutyCycleEncoderSim(int channel) {
|
||||
frc::sim::SimDeviceSim deviceSim{"DutyCycle:DutyCycleEncoder", channel};
|
||||
m_simPosition = deviceSim.GetDouble("position");
|
||||
m_simDistancePerRotation = deviceSim.GetDouble("distance_per_rot");
|
||||
m_simAbsolutePosition = deviceSim.GetDouble("absPosition");
|
||||
m_simIsConnected = deviceSim.GetBoolean("connected");
|
||||
}
|
||||
|
||||
double DutyCycleEncoderSim::Get() {
|
||||
return m_simPosition.Get();
|
||||
}
|
||||
|
||||
void DutyCycleEncoderSim::Set(units::turn_t turns) {
|
||||
m_simPosition.Set(turns.value());
|
||||
}
|
||||
|
||||
double DutyCycleEncoderSim::GetDistance() {
|
||||
return m_simPosition.Get() * m_simDistancePerRotation.Get();
|
||||
}
|
||||
|
||||
void DutyCycleEncoderSim::SetDistance(double distance) {
|
||||
m_simPosition.Set(distance / m_simDistancePerRotation.Get());
|
||||
}
|
||||
|
||||
double DutyCycleEncoderSim::GetAbsolutePosition() {
|
||||
return m_simAbsolutePosition.Get();
|
||||
}
|
||||
|
||||
void DutyCycleEncoderSim::SetAbsolutePosition(double position) {
|
||||
m_simAbsolutePosition.Set(position);
|
||||
}
|
||||
|
||||
double DutyCycleEncoderSim::GetDistancePerRotation() {
|
||||
return m_simDistancePerRotation.Get();
|
||||
}
|
||||
|
||||
bool DutyCycleEncoderSim::IsConnected() {
|
||||
return m_simIsConnected.Get();
|
||||
}
|
||||
|
||||
void DutyCycleEncoderSim::SetConnected(bool isConnected) {
|
||||
m_simIsConnected.Set(isConnected);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user