//Create a class for temperature measurement
package TemperatureMeasurement
-import Timer.SimulatedTimer
+import SmartThing.SmartThings
-public class TemperatureMeasurements {
- private int deviceNumbers
- private List temperatureMeasurements
- def sendEvent
+public class TemperatureMeasurements extends SmartThings {
+ List temperatureMeasurements = new ArrayList()
- //For one device(We cannot have obj.id)-> We should have obj[0].id
- private String id = "temperatureMeasurementID0"
- private String label = "temperatureMeasurement0"
- private String displayName = "temperatureMeasurement0"
- private int temperature = 50
+ TemperatureMeasurements(Closure sendEvent, boolean init) {
+ // Only initialize one time since we only have one device for each capability
+ temperatureMeasurements = smartThings
-
+ // Initialization
+ StringBuilder id = new StringBuilder("temperatureMeasurementID0")
+ StringBuilder label = new StringBuilder("temperature")
+ StringBuilder displayName = new StringBuilder("temperatureMeasurement0")
+ MutableInteger temperature = new MutableInteger()
-
- TemperatureMeasurements(Closure sendEvent, int deviceNumbers) {
- this.sendEvent = sendEvent
- this.deviceNumbers = deviceNumbers
- this.temperatureMeasurements = []
-
- temperatureMeasurements.add(new TemperatureMeasurement(id, label, displayName, this.temperature))
- }
-
- //By Model Checker
- def setValue(LinkedHashMap eventDataMap) {
- if (eventDataMap["value"] != temperatureMeasurements[0].temperature) {
- temperatureMeasurements[0].setValue(eventDataMap["value"])
- this.temperature = temperatureMeasurements[0].temperature
- sendEvent(eventDataMap)
- }
- }
+ if (init)
+ temperature.setValue(40)
+ else
+ temperature.setValue(60)
- //Methods for closures
- def count(Closure Input) {
- temperatureMeasurements.count(Input)
- }
- def size() {
- temperatureMeasurements.size()
- }
- def each(Closure Input) {
- temperatureMeasurements.each(Input)
- }
- def find(Closure Input) {
- temperatureMeasurements.find(Input)
- }
- def collect(Closure Input) {
- temperatureMeasurements.collect(Input)
+ temperatureMeasurements.add(new TemperatureMeasurement(sendEvent, id, label, displayName, temperature))
}
- def getAt(int ix) {
- temperatureMeasurements[ix]
+ // Methods to return values
+ def getCurrentTemperature() {
+ List tmpValues = new ArrayList()
+ tmpValues.add(temperatureMeasurements[0].getCurrentTemperature())
+ return tmpValues
}
}