X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=RelativeHumidityMeasurement%2FRelativeHumidityMeasurements.groovy;fp=RelativeHumidityMeasurement%2FRelativeHumidityMeasurements.groovy;h=2cc026834664f43b8a3933caaeafab4be9d4e3af;hb=d0b538d93e64c63d2673796db08570953b57f947;hp=d4f13e0d2869589d7d2c71becdfb637725eb2382;hpb=2932def9bb947d617975235763f7338360f0e5a4;p=smartthings-infrastructure.git diff --git a/RelativeHumidityMeasurement/RelativeHumidityMeasurements.groovy b/RelativeHumidityMeasurement/RelativeHumidityMeasurements.groovy index d4f13e0..2cc0268 100644 --- a/RelativeHumidityMeasurement/RelativeHumidityMeasurements.groovy +++ b/RelativeHumidityMeasurement/RelativeHumidityMeasurements.groovy @@ -1,82 +1,32 @@ //Create a class for relative humidity measurement package RelativeHumidityMeasurement -import Timer.SimulatedTimer - -//JPF's Verify API -import gov.nasa.jpf.vm.Verify - -public class RelativeHumidityMeasurements { - private int deviceNumbers - private List humidityMeasurements - def sendEvent - - //For one device(We cannot have obj.id)-> We should have obj[0].id - private String id = "humidityMeasurementID0" - private String label = "humidityMeasurement0" - private String displayName = "humidityMeasurement0" - private int humidity = 50 - private int currentHumidity = 50 - - - RelativeHumidityMeasurements(Closure sendEvent, int deviceNumbers, boolean init) { - this.sendEvent = sendEvent - this.deviceNumbers = deviceNumbers - this.humidityMeasurements = [] - - if (init) { - this.humidity = 50 - this.currentHumidity = 50 - } else { - this.humidity = 60 - this.currentHumidity = 60 - } - humidityMeasurements.add(new RelativeHumidityMeasurement(id, label, displayName, this.humidity)) - } - - //By Model Checker - def setValue(LinkedHashMap eventDataMap) { - if (eventDataMap["value"].toInteger() != humidityMeasurements[0].humidity) { - this.humidity = eventDataMap["value"].toInteger() - this.currentHumidity = eventDataMap["value"].toInteger() - humidityMeasurements[0].setValue(eventDataMap["value"]) - sendEvent(eventDataMap) - } - } - - def eventsSince(Date dateObj) { - return humidityMeasurements[0].eventsSince() - } - - //Methods for closures - def count(Closure Input) { - humidityMeasurements.count(Input) - } - def size() { - humidityMeasurements.size() - } - def each(Closure Input) { - humidityMeasurements.each(Input) - } - def find(Closure Input) { - humidityMeasurements.find(Input) - } - def sort(Closure Input) { - humidityMeasurements.sort(Input) - } - def collect(Closure Input) { - humidityMeasurements.collect(Input) - } - - - def currentValue(String deviceFeature) { - humidityMeasurements[0].currentValue(deviceFeature)//It is called if we have only one device - } - - def latestValue(String deviceFeature) { - humidityMeasurements[0].latestValue(deviceFeature)//It is called if we have only one device - } - - def getAt(int ix) { - humidityMeasurements[ix] +import SmartThing.SmartThings + +public class RelativeHumidityMeasurements extends SmartThings { + List humidityMeasurements = new ArrayList() + + RelativeHumidityMeasurements(Closure sendEvent, boolean init) { + // Only initialize one time since we only have one device for each capability + humidityMeasurements = smartThings + + // Initialization + StringBuilder id = new StringBuilder("humidityID0") + StringBuilder label = new StringBuilder("humidity") + StringBuilder displayName = new StringBuilder("humidity0") + MutableInteger humidity = new MutableInteger() + + if (init) + humidity.setValue(50) + else + humidity.setValue(60) + + humidityMeasurements.add(new RelativeHumidityMeasurement(sendEvent, id, label, displayName, humidity)) + } + + // Methods to return values + def getCurrentHumidity() { + List tmpValues = new ArrayList() + tmpValues.add(humidityMeasurements[0].getCurrentHumidity()) + return tmpValues } }