X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=RelativeHumidityMeasurement%2FRelativeHumidityMeasurement.groovy;h=49c9c607c7008b73f385b0e4e8542c024fdf6b1d;hb=d0b538d93e64c63d2673796db08570953b57f947;hp=395c25275cca3fcccc7a4b9024620dc6071d4ed5;hpb=2932def9bb947d617975235763f7338360f0e5a4;p=smartthings-infrastructure.git diff --git a/RelativeHumidityMeasurement/RelativeHumidityMeasurement.groovy b/RelativeHumidityMeasurement/RelativeHumidityMeasurement.groovy index 395c252..49c9c60 100644 --- a/RelativeHumidityMeasurement/RelativeHumidityMeasurement.groovy +++ b/RelativeHumidityMeasurement/RelativeHumidityMeasurement.groovy @@ -1,55 +1,35 @@ //Create a class for relative humidity measurement package RelativeHumidityMeasurement -import Timer.SimulatedTimer +import SmartThing.SmartThing -//JPF's Verify API -import gov.nasa.jpf.vm.Verify +public class RelativeHumidityMeasurement extends SmartThing { + // id, label, and display name of the device + StringBuilder id = new StringBuilder() + StringBuilder label = new StringBuilder() + StringBuilder displayName = new StringBuilder() + // Features with numberical values + MutableInteger currentHumidity = new MutableInteger() + // Maps from features to values + HashMap deviceIntValuesMap = new HashMap() -public class RelativeHumidityMeasurement { - private String id - private String label - private String displayName - private int humidity - private int currentHumidity + RelativeHumidityMeasurement(Closure sendEvent, StringBuilder id, StringBuilder label, StringBuilder displayName, MutableInteger currentHumidity) { + deviceIntValuesMap = deviceIntValueSmartThing + idSmartThing = id + labelSmartThing = label + displayNameSmartThing = displayName + sendEventSmartThings = sendEvent - RelativeHumidityMeasurement(String id, String label, String displayName, int humidity) { + // Initialization this.id = id this.label = label this.displayName = displayName - this.humidity = humidity - } - - def eventsSince() { - def evtHumidity = [[name: "humidity", value: this.humidity.toString(), deviceId: "humidityMeasurementID0", descriptionText: "", - displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}']] - def init = Verify.getInt(0,1) - def evtToSend = [] - if (init == 0) {//return empty set - return evtToSend - } else if (init == 1) {//send one open event - evtHumidity.each{ - evtToSend.add(it) - } - return evtToSend - } - } - - //By Model Checker - def setValue(String value) { - println("the humidity is changed to $value!") - this.humidity = value.toInteger() - this.currentHumidity = value.toInteger() - } + this.currentHumidity = currentHumidity - def currentValue(String deviceFeature) { - if (deviceFeature == "humidity") { - return humidity - } + deviceIntValuesMap.put("humidity", currentHumidity) } - def latestValue(String deviceFeature) { - if (deviceFeature == "humidity") { - return humidity - } + // Methods to return values + def getCurrentHumidity() { + return currentHumidity.getValue() } }