Infrastruction modification
[smartthings-infrastructure.git] / Alarm / Alarms.groovy
index 7e5edd408eb6fe26ab8bd0c92db7cde18d5d74c3..ac37de69feffeec7a48e15418da79f4904ceae63 100644 (file)
 //Create a class for alarm device
 package Alarm
-import Timer.SimulatedTimer
-
-public class Alarms {
-       int deviceNumbers       
-       List alarms
-       def timers
-       def sendEvent
-
-       //If we have only one device
-       private String id = "alarmID0"
-       private String label = "alarm0"
-       private String displayName = "alarm0"
-       private String alarm = "off"
-       private String currentAlarm = "off"
-       private String alarmLatestValue = "off"
-
-       Alarms(Closure sendEvent, int deviceNumbers, boolean init) {
-               this.sendEvent = sendEvent
-               this.timers = new SimulatedTimer()
-               this.deviceNumbers = deviceNumbers
-               this.alarms = []
-
-               if (init) {
-                       this.alarm = "off"
-                       this.currentAlarm = "off"
-                       this.alarmLatestValue = "off"
-               } else {
-                       this.alarm = "on"
-                       this.currentAlarm = "on"
-                       this.alarmLatestValue = "on"
-               }
-               alarms.add(new Alarm(sendEvent, id, label, displayName, this.alarm, this.currentAlarm, this.alarmLatestValue))
-       }
+import SmartThing.SmartThings
+
+public class Alarms extends SmartThings {
+       List alarms = new ArrayList()
+
+       Alarms(Closure sendEvent, boolean init) {
+               alarms = smartThings
+
+               // Initialization
+               StringBuilder id = new StringBuilder("alarmID0")
+               StringBuilder label = new StringBuilder("alarm")
+               StringBuilder displayName = new StringBuilder("alarm0")
+               StringBuilder alarm = new StringBuilder()
+       
+               if (init)
+                       alarm.append("off")
+               else
+                       alarm.append("on")
                
-       //By Model Checker
-       def setValue(LinkedHashMap eventDataMap) {
-               if (eventDataMap["value"] != alarms[0].alarm) {
-                       this.alarmLatestValue = eventDataMap["value"]
-                       this.alarm = eventDataMap["value"]
-                       this.currentAlarm = eventDataMap["value"]
-                       alarms[0].setValue(eventDataMap["value"])
-                       sendEvent(eventDataMap)
-               }
-       }
-
-       //Methods for closures
-       def count(Closure Input) {
-               alarms.count(Input)
-       }
-       def size() {
-               alarms.size()
-       }
-       def each(Closure Input) {
-               alarms.each(Input)
-       }
-       def find(Closure Input) {
-               alarms.find(Input)
-       }
-       def sort(Closure Input) {
-               alarms.sort(Input)
-       }
-       def collect(Closure Input) {
-               alarms.collect(Input)
+               alarms.add(new Alarm(sendEvent, id, label, displayName, alarm))
        }
 
-       //By Apps
+       // Methods to set values
        def both() {
-               if (alarm != "both") {
-                       alarmLatestValue = "both"
-                       alarm = "both"
-                       currentAlarm = "both"
-                       alarms[0].both()
-               }
+               alarms[0].both()
        }
 
        def off() {
-               if (alarm != "off") {
-                       alarmLatestValue = "off"
-                       alarm = "off"
-                       currentAlarm = "off"
-                       alarms[0].off()
-               }
+               alarms[0].off()
        }
 
        def on() {
-               both()
+               alarms[0].on()
        }
 
        def siren() {
-               if (alarm != "siren") {
-                       alarmLatestValue = "siren"
-                       alarm = "siren"
-                       currentAlarm = "siren"
-                       alarms[0].siren()
-               }
+               alarms[0].siren()
        }
 
        def strobe() {
-               if (alarm != "strobe") {
-                       alarmLatestValue = "strobe"
-                       alarm = "strobe"
-                       currentAlarm = "strobe"
-                       alarms[0].strobe()
-               }
-       }
-
-       def currentValue(String deviceFeature) {
-               alarms[0].currentValue(deviceFeature)
-       }
-
-       def latestValue(String deviceFeature) {
-               alarms[0].latestValue(deviceFeature)
+               alarms[0].strobe()
        }
 
-       def getAt(int ix) {
-               alarms[ix]
+       // Methods to return values
+       def getCurrentAlarm() {
+               List tmpValues = new ArrayList()
+               tmpValues.add(alarms[0].getCurrentAlarm())
+               return tmpValues
        }
 }