FIRST-Tech-Challenge / FIRST-Tech-Challenge/FtcRobotController
`ServoImpl#getPosition` incorrectly reversing a scaled servo.
- Dominant language
- Java
- Stars
- 1.3k
- Forks
- 9.9k
- Avg merge
- 18m
- Merged PRs (30d)
- 1
Description
In `ServoImpl#getPosition`,`reverse` is called on the unscaled position in `getPosition`. While in `ServoImpl#setPosition`, `reverse` is called on scaled values. This means `Servo#getPosition` return incorrect values for reversed scaled servos.
## Example
Let's say we have a reversed servo scaled from `0` to `0.5` instead of from `0` to `1`:
Setting:
1. `setPosition(0.5)` -> sets an actual position of `0.25` for the servo.
Getting:
1. `ServoController#getServoPosition` returns `0.25` (line 178)
2. `reverse` reverses the value from `0.25` to `0.75` (line 179)
3. `Range.scale` scales the value from `0.75` to `1.5` (line 180)
4. `Range.clip` clips the value to `1`
## Result
**We expect to get 0.5, not 1**
## Code Screenshot
Contributor guide
Assessment
This issue has not been assessed yet.