public class SimulatedTemperatureSensor 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 a deltaFactor
.
The new current value is limited to a tempRange
and then rounded to 1 fractional digit.
No temperature scale is implied (e.g., Fahrenheit, Kelvin, ...).
The double
temperature values are simply generated as described.
The user of the class decides how to interpret them.
Sample use:
Topology t = ...;
SimulatedTemperatureSensor tempSensor = new SimulatedTemperatureSensor();
TStream<Double> temp = t.poll(tempSensor, 1, TimeUnit.SECONDS);
SimpleSimulatedSensor
,
Serialized FormConstructor and Description |
---|
SimulatedTemperatureSensor()
Create a temperature sensor.
|
SimulatedTemperatureSensor(double initialTemp,
Range<java.lang.Double> tempRange,
double deltaFactor)
Create a temperature sensor.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Double |
get()
Get the next sensor value.
|
double |
getDeltaFactor()
Get the deltaFactor setting
|
Range<java.lang.Double> |
getTempRange()
Get the tempRange setting
|
public SimulatedTemperatureSensor()
Same as SimulatedTemperatureSensor(80.0,
Ranges.closed(28.0, 112.0), 1.0)
These default values roughly correspond to normal air temperature in the Fahrenheit scale.
public SimulatedTemperatureSensor(double initialTemp, Range<java.lang.Double> tempRange, double deltaFactor)
No temperature scale is implied.
initialTemp
- the initial temperature. Must be within tempRange.tempRange
- maximum sensor value rangedeltaFactor
- maximum plus/minus change on each get()
.
e.g., 1.0 to limit change to +/- 1.0.
Must be > 0.0public Range<java.lang.Double> getTempRange()
public double getDeltaFactor()
Copyright © 2016 The Apache Software Foundation. All Rights Reserved - bbe71fa-20161201-1641