X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=WaterSensor%2FWaterSensors.groovy;fp=WaterSensor%2FWaterSensors.groovy;h=4813e03d0841d6b26c33b21a21f5bc026616dd3c;hb=d0b538d93e64c63d2673796db08570953b57f947;hp=10567ae1c822f933c48f2feefe8e165dceef55ee;hpb=2932def9bb947d617975235763f7338360f0e5a4;p=smartthings-infrastructure.git diff --git a/WaterSensor/WaterSensors.groovy b/WaterSensor/WaterSensors.groovy index 10567ae..4813e03 100644 --- a/WaterSensor/WaterSensors.groovy +++ b/WaterSensor/WaterSensors.groovy @@ -1,62 +1,32 @@ //Create a class for water sensor package WaterSensor -import Timer.SimulatedTimer - -public class WaterSensors { - private int deviceNumbers - private List waterSensors - def sendEvent - - //For one device(We cannot have obj.id)-> We should have obj[0].id - private String id = "waterSensorID0" - private String label = "waterSensor0" - private String displayName = "waterSensor0" - private String water = "dry" +import SmartThing.SmartThings +public class WaterSensors extends SmartThings { + List waterSensors = new ArrayList() - WaterSensors(Closure sendEvent, int deviceNumbers, boolean init) { - this.sendEvent = sendEvent - this.deviceNumbers = deviceNumbers - this.waterSensors = [] + WaterSensors(Closure sendEvent, boolean init) { + // Only initialize one time since we only have one device for each capability + waterSensors = smartThings - if (init) { - this.water = "dry" - } else { - this.water = "wet" - } - waterSensors.add(new WaterSensor(id, label, displayName, this.water)) - } + // Initialization + StringBuilder id = new StringBuilder("waterSensorID0") + StringBuilder label = new StringBuilder("waterSensor") + StringBuilder displayName = new StringBuilder("waterSensor0") + StringBuilder water = new StringBuilder() - //By Model Checker - def setValue(LinkedHashMap eventDataMap) { - if (eventDataMap["value"] != waterSensors[0].water) { - this.water = eventDataMap["value"] - waterSensors[0].setValue(eventDataMap["value"]) - sendEvent(eventDataMap) - } - } + if (init) + water.append("dry") + else + water.append("wet") - //Methods for closures - def count(Closure Input) { - waterSensors.count(Input) - } - def size() { - waterSensors.size() - } - def each(Closure Input) { - waterSensors.each(Input) + waterSensors.add(new WaterSensor(sendEvent, id, label, displayName, water)) } - def find(Closure Input) { - waterSensors.find(Input) - } - def sort(Closure Input) { - waterSensors.sort(Input) - } - def collect(Closure Input) { - waterSensors.collect(Input) - } - - def getAt(int ix) { - waterSensors[ix] + + // Methods to return values + def getCurrentWater() { + List tmpValues = new ArrayList() + tmpValues.add(waterSensors[0].getCurrentWater()) + return tmpValues } }