X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=CarbonMonoxideDetector%2FCarbonMonoxideDetectors.groovy;fp=CarbonMonoxideDetector%2FCarbonMonoxideDetectors.groovy;h=162ca8dc66a14558cd9e143cbd99989fa6a941fd;hb=d0b538d93e64c63d2673796db08570953b57f947;hp=ba828d7d0542a73be5dee54e167adceb4f14e84f;hpb=2932def9bb947d617975235763f7338360f0e5a4;p=smartthings-infrastructure.git diff --git a/CarbonMonoxideDetector/CarbonMonoxideDetectors.groovy b/CarbonMonoxideDetector/CarbonMonoxideDetectors.groovy index ba828d7..162ca8d 100644 --- a/CarbonMonoxideDetector/CarbonMonoxideDetectors.groovy +++ b/CarbonMonoxideDetector/CarbonMonoxideDetectors.groovy @@ -1,79 +1,31 @@ //Create a class for carbon monoxide detector package CarbonMonoxideDetector -import Timer.SimulatedTimer - -public class CarbonMonoxideDetectors { - private int deviceNumbers - private List carbonMonoxideDetectors - def sendEvent - - //For one device(We cannot have obj.id)-> We should have obj[0].id - private String id = "carbonMonoxideDetectorID0" - private String label = "carbonMonoxideDetector0" - private String displayName = "carbonMonoxideDetector0" - private String carbonMonoxide = "clear" - private String currentCarbonMonoxideValue = "clear" - private String carbonMonoxideLatestValue = "clear" +import SmartThing.SmartThings +public class CarbonMonoxideDetectors extends SmartThings { + List carbonMonoxideDetectors = new ArrayList() - CarbonMonoxideDetectors(Closure sendEvent, int deviceNumbers, boolean init) { - this.sendEvent = sendEvent - this.deviceNumbers = deviceNumbers - this.carbonMonoxideDetectors = [] - - if (init) { - this.carbonMonoxide = "clear" - this.currentCarbonMonoxideValue = "clear" - this.carbonMonoxideLatestValue = "clear" - } else if (init == 1) { - this.carbonMonoxide = "detected" - this.currentCarbonMonoxideValue = "detected" - this.carbonMonoxideLatestValue = "detected" - } - carbonMonoxideDetectors.add(new CarbonMonoxideDetector(id, label, displayName, this.currentCarbonMonoxideValue, this.carbonMonoxideLatestValue)) - } - - //By Model Checker - def setValue(LinkedHashMap eventDataMap) { - if (eventDataMap["value"] != carbonMonoxideDetectors[0].currentCarbonMonoxideValue) { - this.carbonMonoxideLatestValue = eventDataMap["value"] - this.carbonMonoxide = eventDataMap["value"] - this.currentCarbonMonoxideValue = eventDataMap["value"] - carbonMonoxideDetectors[0].setValue(eventDataMap["value"]) - sendEvent(eventDataMap) - } - } - - //Methods for closures - def count(Closure Input) { - carbonMonoxideDetectors.count(Input) - } - def size() { - carbonMonoxideDetectors.size() - } - def each(Closure Input) { - carbonMonoxideDetectors.each(Input) - } - def find(Closure Input) { - carbonMonoxideDetectors.find(Input) - } - def sort(Closure Input) { - carbonMonoxideDetectors.sort(Input) - } - def collect(Closure Input) { - carbonMonoxideDetectors.collect(Input) - } + CarbonMonoxideDetectors(Closure sendEvent, boolean init) { + carbonMonoxideDetectors = smartThings + // Initialization + StringBuilder id = new StringBuilder("carbonMonoxideID0") + StringBuilder label = new StringBuilder("carbonMonoxide") + StringBuilder displayName = new StringBuilder("carbonMonoxide0") + StringBuilder carbonMonoxide = new StringBuilder() - def currentValue(String deviceFeature) { - carbonMonoxideDetectors[0].currentValue(deviceFeature)//It is called if we have only one device - } + if (init) + carbonMonoxide.append("clear") + else + carbonMonoxide.append("detected") - def latestValue(String deviceFeature) { - carbonMonoxideDetectors[0].latestValue(deviceFeature)//It is called if we have only one device + carbonMonoxideDetectors.add(new CarbonMonoxideDetector(sendEvent, id, label, displayName, carbonMonoxide)) } - def getAt(int ix) { - carbonMonoxideDetectors[ix] + // Methods to return values + def getCurrentCarbonMonoxideValue() { + List tmpValues = new ArrayList() + tmpValues.add(carbonMonoxideDetectors[0].getCurrentCarbonMonoxideValue()) + return tmpValues } }