X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=TemperatureMeasurement%2FTemperatureMeasurement.groovy;fp=TemperatureMeasurement%2FTemperatureMeasurement.groovy;h=65fca9cdc8a949d904ae9f5eb31fd5fe0e00bbf0;hb=d0b538d93e64c63d2673796db08570953b57f947;hp=88c3c8d4191f0f95bc6bdccae105188d622ce897;hpb=2932def9bb947d617975235763f7338360f0e5a4;p=smartthings-infrastructure.git diff --git a/TemperatureMeasurement/TemperatureMeasurement.groovy b/TemperatureMeasurement/TemperatureMeasurement.groovy index 88c3c8d..65fca9c 100644 --- a/TemperatureMeasurement/TemperatureMeasurement.groovy +++ b/TemperatureMeasurement/TemperatureMeasurement.groovy @@ -1,45 +1,36 @@ //Create a class for temperature measurement package TemperatureMeasurement -import Timer.SimulatedTimer +import SmartThing.SmartThing -//JPF's Verify API -import gov.nasa.jpf.vm.Verify +public class TemperatureMeasurement 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 currentTemperature = new MutableInteger() + // Maps from features to values + HashMap deviceIntValuesMap = new HashMap() -public class TemperatureMeasurement { - private String id - private String label - private String displayName - private int temperature - private int currentTemperature + TemperatureMeasurement(Closure sendEvent, StringBuilder id, StringBuilder label, StringBuilder displayName, MutableInteger currentTemperature) { + deviceIntValuesMap = deviceIntValueSmartThing + idSmartThing = id + labelSmartThing = label + displayNameSmartThing = displayName + sendEventSmartThings = sendEvent - TemperatureMeasurement(String id, String label, String displayName, int temperature) { + // Initialization this.id = id this.label = label this.displayName = displayName - this.temperature = temperature - this.currentTemperature = temperature - } + this.currentTemperature = currentTemperature - def eventsSince() { - def evtTemp = [[name: "temperature", value: this.temperature.toString(), deviceId: "temperatureMeasurementID0", 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 - evtTemp.each{ - evtToSend.add(it) - } - return evtToSend - } + deviceIntValuesMap.put("temperature", currentTemperature) } - //By Model Checker - def setValue(String value) { - println("the temperature is changed to $value!") - this.temperature = value.toInteger() - this.currentTemperature = value.toInteger() + // Methods to return values + def getCurrentTemperature() { + return currentTemperature.getValue() } }