AnalogInputScaler takes an InputExtractor of type Double, and a Function to scale the input with.
- The update() method gets the value from the InputExtractor and feeds it through the Function
- The getValue() method returns the scaled value as it was computed by the last call to update()
- The getRawValue() method returns the raw value as it was retrieved by the last call to update()
AnalogInputScaler also implements InputExtractor<Double>, which means it can be passed in to a Logging function, for example.
See also: DigitalInputEdgeDetector
ftc/electronvolts/util/AnalogInputScaler.java
package ftc.electronvolts.util;
/**
* This file was made by the electronVolts, FTC team 7393
*
* Manages the scaling of an analog input such as a joystick
*/
public class AnalogInputScaler implements InputExtractor<Double> {
private double rawValue = 0;
private double value = 0;
private final InputExtractor<Double> extractor;
private final Function inputScaler;
/**
* @param extractor the input extractor
* @param inputScaler the input scaler to use for scaling the input
*/
public AnalogInputScaler(InputExtractor<Double> extractor, Function inputScaler) {
this.extractor = extractor;
this.inputScaler = inputScaler;
}
/**
* updates the output value and raw value
*
* @return the scaled value
*/
public double update() {
rawValue = extractor.getValue();
value = inputScaler.f(rawValue);
return value;
}
/**
* @return the value
*/
@Override
public Double getValue() {
return value;
}
/**
* @return the raw value of the input
*/
public double getRawValue() {
return rawValue;
}
}