X-Git-Url: http://plrg.eecs.uci.edu/git/?p=smartthings-infrastructure.git;a=blobdiff_plain;f=TemperatureMeasurement%2FTemperatureMeasurements.groovy;fp=TemperatureMeasurement%2FTemperatureMeasurements.groovy;h=db6ac723c33d4e10983db9d60624966c57ed9e14;hp=608d18b1dc88df40cdd5690b6d8771eb1324a509;hb=d0b538d93e64c63d2673796db08570953b57f947;hpb=2932def9bb947d617975235763f7338360f0e5a4 diff --git a/TemperatureMeasurement/TemperatureMeasurements.groovy b/TemperatureMeasurement/TemperatureMeasurements.groovy index 608d18b..db6ac72 100644 --- a/TemperatureMeasurement/TemperatureMeasurements.groovy +++ b/TemperatureMeasurement/TemperatureMeasurements.groovy @@ -1,72 +1,32 @@ //Create a class for temperature measurement package TemperatureMeasurement -import Timer.SimulatedTimer +import SmartThing.SmartThings -//JPF's Verify API -import gov.nasa.jpf.vm.Verify +public class TemperatureMeasurements extends SmartThings { + List temperatureMeasurements = new ArrayList() -public class TemperatureMeasurements { - private int deviceNumbers - private List temperatureMeasurements - def sendEvent + TemperatureMeasurements(Closure sendEvent, boolean init) { + // Only initialize one time since we only have one device for each capability + temperatureMeasurements = smartThings - //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 = 40 - private int currentTemperature = 40 + // 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, boolean init) { - this.sendEvent = sendEvent - this.deviceNumbers = deviceNumbers - this.temperatureMeasurements = [] + if (init) + temperature.setValue(40) + else + temperature.setValue(60) - if (init) { - this.temperature = 40 - this.currentTemperature = 40 - } else { - this.temperature = 60 - this.currentTemperature = 60 - } - temperatureMeasurements.add(new TemperatureMeasurement(id, label, displayName, this.temperature)) + temperatureMeasurements.add(new TemperatureMeasurement(sendEvent, id, label, displayName, temperature)) } - //By Model Checker - def setValue(LinkedHashMap eventDataMap) { - if (eventDataMap["value"].toInteger() != temperatureMeasurements[0].temperature) { - this.temperature = eventDataMap["value"].toInteger() - this.currentTemperature = eventDataMap["value"].toInteger() - temperatureMeasurements[0].setValue(eventDataMap["value"]) - sendEvent(eventDataMap) - } - } - - def eventsSince(Date dateObj) { - return temperatureMeasurements[0].eventsSince() - } - - //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 sort(Closure Input) { - temperatureMeasurements.sort(Input) - } - def collect(Closure Input) { - temperatureMeasurements.collect(Input) - } - - def getAt(int ix) { - temperatureMeasurements[ix] + // Methods to return values + def getCurrentTemperature() { + List tmpValues = new ArrayList() + tmpValues.add(temperatureMeasurements[0].getCurrentTemperature()) + return tmpValues } }