[wpilib] Rewrite DutyCycleEncoder and AnalogEncoder (#6398)

This commit is contained in:
Thad House
2024-05-24 11:53:56 -07:00
committed by GitHub
parent 294c9946ae
commit d05c7c125b
18 changed files with 638 additions and 883 deletions

View File

@@ -14,38 +14,16 @@ DutyCycleEncoderSim::DutyCycleEncoderSim(const frc::DutyCycleEncoder& encoder)
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");
m_simPosition = deviceSim.GetDouble("Position");
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();
void DutyCycleEncoderSim::Set(double value) {
m_simPosition.Set(value);
}
bool DutyCycleEncoderSim::IsConnected() {