diff --git a/wpilibc/src/main/native/cpp/simulation/DutyCycleEncoderSim.cpp b/wpilibc/src/main/native/cpp/simulation/DutyCycleEncoderSim.cpp index cb83ccbe1d..9e578b09fa 100644 --- a/wpilibc/src/main/native/cpp/simulation/DutyCycleEncoderSim.cpp +++ b/wpilibc/src/main/native/cpp/simulation/DutyCycleEncoderSim.cpp @@ -9,9 +9,11 @@ using namespace frc::sim; -DutyCycleEncoderSim::DutyCycleEncoderSim(const frc::DutyCycleEncoder& encoder) { - frc::sim::SimDeviceSim deviceSim{"DutyCycle:DutyCycleEncoder", - encoder.GetSourceChannel()}; +DutyCycleEncoderSim::DutyCycleEncoderSim(const frc::DutyCycleEncoder& encoder) + : DutyCycleEncoderSim{encoder.GetSourceChannel()} {} + +DutyCycleEncoderSim::DutyCycleEncoderSim(int channel) { + frc::sim::SimDeviceSim deviceSim{"DutyCycle:DutyCycleEncoder", channel}; m_simPosition = deviceSim.GetDouble("position"); m_simDistancePerRotation = deviceSim.GetDouble("distance_per_rot"); } diff --git a/wpilibc/src/main/native/include/frc/simulation/DutyCycleEncoderSim.h b/wpilibc/src/main/native/include/frc/simulation/DutyCycleEncoderSim.h index 19577bb801..d7c6186b87 100644 --- a/wpilibc/src/main/native/include/frc/simulation/DutyCycleEncoderSim.h +++ b/wpilibc/src/main/native/include/frc/simulation/DutyCycleEncoderSim.h @@ -26,7 +26,14 @@ class DutyCycleEncoderSim { explicit DutyCycleEncoderSim(const DutyCycleEncoder& encoder); /** - * Set the position tin turns. + * Constructs from a digital input channel. + * + * @param channel digital input channel + */ + explicit DutyCycleEncoderSim(int channel); + + /** + * Set the position in turns. * * @param turns The position. */ diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/simulation/DutyCycleEncoderSim.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/simulation/DutyCycleEncoderSim.java index f5c900cb27..a89b185532 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/simulation/DutyCycleEncoderSim.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/simulation/DutyCycleEncoderSim.java @@ -18,8 +18,16 @@ public class DutyCycleEncoderSim { * @param encoder DutyCycleEncoder to simulate */ public DutyCycleEncoderSim(DutyCycleEncoder encoder) { - SimDeviceSim wrappedSimDevice = - new SimDeviceSim("DutyCycle:DutyCycleEncoder" + "[" + encoder.getSourceChannel() + "]"); + this(encoder.getSourceChannel()); + } + + /** + * Constructs from a digital input channel. + * + * @param channel digital input channel. + */ + public DutyCycleEncoderSim(int channel) { + SimDeviceSim wrappedSimDevice = new SimDeviceSim("DutyCycle:DutyCycleEncoder", channel); m_simPosition = wrappedSimDevice.getDouble("position"); m_simDistancePerRotation = wrappedSimDevice.getDouble("distance_per_rot"); }