X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=EnergyMeter%2FEnergyMeter.groovy;h=cfaa6d0f251e50350330138af372dfd80ca4fb70;hb=d0b538d93e64c63d2673796db08570953b57f947;hp=83f2283c3bdae185c2f27dd7ae8373717c863dbe;hpb=2932def9bb947d617975235763f7338360f0e5a4;p=smartthings-infrastructure.git diff --git a/EnergyMeter/EnergyMeter.groovy b/EnergyMeter/EnergyMeter.groovy index 83f2283..cfaa6d0 100644 --- a/EnergyMeter/EnergyMeter.groovy +++ b/EnergyMeter/EnergyMeter.groovy @@ -1,53 +1,35 @@ //Create a class for energy meter package EnergyMeter -import Timer.SimulatedTimer +import SmartThing.SmartThing -public class EnergyMeter { - private String id - private String label - private String displayName - private int energy - private int currentEnergy - private String status +public class EnergyMeter 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 currentEnergy = new MutableInteger() + // Maps from features to values + HashMap deviceIntValuesMap = new HashMap() - EnergyMeter(String id, String label, String displayName, int energy, String status) { + EnergyMeter(Closure sendEvent, StringBuilder id, StringBuilder label, StringBuilder displayName, MutableInteger currentEnergy) { + deviceIntValuesMap = deviceIntValueSmartThing + idSmartThing = id + labelSmartThing = label + displayNameSmartThing = displayName + sendEventSmartThings = sendEvent + + // Initialization this.id = id this.label = label this.displayName = displayName - this.energy = energy - this.status = status - } - - //By Model Checker - def setValue(String value) { - println("the enery is changed to $value!") - this.energy = value.toInteger() - this.currentEnergy = value.toInteger() - } - - def reset() { - if (status != "on") { - status = "on" - println("the energy meter is on!") - } - } - - def off() { - if (status != "off") { - status = "off" - println("the energy meter is off!") - } - } + this.currentEnergy = currentEnergy - def currentValue(String deviceFeature) { - if (deviceFeature == "energy") { - return energy - } + deviceIntValuesMap.put("energy", currentEnergy) } - def latestValue(String deviceFeature) { - if (deviceFeature == "energy") { - return energy - } + // Methods to return values + def getCurrentEnergy() { + return currentEnergy.getValue() } }