public class SimpleSimulatedSensor extends java.lang.Object implements Supplier<java.lang.Double>
The sensor starts off with an initial value.
Each call to get()
changes the current value by
a random amount between plus/minus deltaFactor
.
The new current value is limited to a range
and then rounded to 1 fractional digit.
See setNumberFractionalDigits(int)
.
Sample use:
Topology t = ...;
// a miles-per-gallon sensor
SimpleSimulatedSensor avgMpgSensor = new SimpleSimulatedSensor(10.5, 0.4,
Ranges<Double>.closed(7.0,14.0));
TStream<Double> avgMpg = t.poll(avgMpgSensor, 1, TimeUnit.SECONDS);
// an integer valued sensor
SimpleSimulatedSensor doubleSensor = new SimpleSimulatedSensor();
TStream<Integer> intSensor = t.poll(() -> doubleSensor.get().intValue(),
1, TimeUnit.SECONDS);
Constructor and Description |
---|
SimpleSimulatedSensor()
Create a sensor.
|
SimpleSimulatedSensor(double initialValue)
Create a sensor.
|
SimpleSimulatedSensor(double initialValue,
double deltaFactor)
Create a sensor.
|
SimpleSimulatedSensor(double initialValue,
double deltaFactor,
Range<java.lang.Double> range)
Create a sensor.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Double |
get()
Get the next sensor value as described in the class documentation.
|
double |
getDeltaFactor()
Get the deltaFactor setting
|
int |
getNumberFractionalDigits()
Get the number of fractional digits setting
|
Range<java.lang.Double> |
getRange()
Get the range setting
|
void |
setNumberFractionalDigits(int numFracDigits)
Set number of fractional digits to round sensor values to.
|
public SimpleSimulatedSensor()
Same as SimpleSimulatedSensor(0.0, 1.0, null)
;
public SimpleSimulatedSensor(double initialValue)
Same as SimpleSimulatedSensor(initialValue, 1.0, null)
;
initialValue
- the initial valuepublic SimpleSimulatedSensor(double initialValue, double deltaFactor)
Same as SimpleSimulatedSensor(initialValue, deltaFactor, null)
;
initialValue
- the initial value.deltaFactor
- maximum plus/minus change on each get()
.
e.g., 1.0 to limit change to +/- 1.0.
Must be > 0.0public SimpleSimulatedSensor(double initialValue, double deltaFactor, Range<java.lang.Double> range)
initialValue
- the initial value. Must be within range.deltaFactor
- maximum plus/minus change on each get()
.
e.g., 1.0 to limit change to +/- 1.0.
Must be > 0.0range
- maximum sensor value range. Unlimited if null.public void setNumberFractionalDigits(int numFracDigits)
This class offers rounding as a convenience and because ancestors of this implementation had such a scheme.
numFracDigits
- if <= 0, no rounding will be performedpublic int getNumberFractionalDigits()
public Range<java.lang.Double> getRange()
public double getDeltaFactor()
Copyright © 2016 The Apache Software Foundation. All Rights Reserved - bbe71fa-20161201-1641