mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
Now, implicit narrowing conversions are only used with wpi::Now(). This
also fixes clang-tidy warnings about C-style casts. For example:
```
== clang-tidy /__w/allwpilib/allwpilib/wpilibNewCommands/src/main/native/include/frc2/command/SwerveControllerCommand.inc ==
/__w/allwpilib/allwpilib/wpilibNewCommands/src/main/native/include/frc2/command/SwerveControllerCommand.inc:95:18: warning: C-style casts are discouraged; use static_cast/const_cast/reinterpret_cast [google-readability-casting]
auto curTime = units::second_t(m_timer.Get());
^
```
In that case at least, the cast was removed entirely since Get() already
returns a units::second_t.
32 lines
916 B
C++
32 lines
916 B
C++
// 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.
|
|
|
|
#include "frc/simulation/AnalogEncoderSim.h"
|
|
|
|
#include "frc/AnalogEncoder.h"
|
|
#include "frc/simulation/SimDeviceSim.h"
|
|
|
|
using namespace frc::sim;
|
|
|
|
AnalogEncoderSim::AnalogEncoderSim(const frc::AnalogEncoder& encoder) {
|
|
frc::sim::SimDeviceSim deviceSim{"AnalogEncoder", encoder.GetChannel()};
|
|
m_positionSim = deviceSim.GetDouble("Position");
|
|
}
|
|
|
|
void AnalogEncoderSim::SetPosition(frc::Rotation2d angle) {
|
|
SetTurns(angle.Degrees());
|
|
}
|
|
|
|
void AnalogEncoderSim::SetTurns(units::turn_t turns) {
|
|
m_positionSim.Set(turns.value());
|
|
}
|
|
|
|
units::turn_t AnalogEncoderSim::GetTurns() {
|
|
return units::turn_t{m_positionSim.Get()};
|
|
}
|
|
|
|
frc::Rotation2d AnalogEncoderSim::GetPosition() {
|
|
return units::radian_t{GetTurns()};
|
|
}
|