Commit #7: Events thread-based + new easier Extractor.py + our own Timer class
[smartthings-infrastructure.git] / Switch / Switching.groovy
index f65bd41d60c14d0e2884125ff82ef1f8f10c9ac3..34b58ef58e3601889c262065dde563ae8d060f74 100644 (file)
@@ -1,5 +1,6 @@
 //Create a class for switch device
 package Switch
+import Timer.SimulatedTimer
 
 public class Switching{
        int deviceNumbers       
@@ -7,13 +8,19 @@ public class Switching{
        def timers
        def sendEvent
 
+       //If we have only one device
+       private int id = 0      
+       private String displayName = "switch0"
+       private String switchState = "off"
+       private String switchLatestValue = "off"
+
        Switching(Closure sendEvent, int deviceNumbers) {
                this.sendEvent = sendEvent
-               this.timers = new Timer()
+               this.timers = new SimulatedTimer()
                this.deviceNumbers = deviceNumbers
                this.switches = []
                if (deviceNumbers == 1) {
-                       switches = [new Switches(sendEvent, 0, "switch0", "off", "off")]
+                       switches = [new Switches(sendEvent, this.id, this.displayName, this.switchState, this.switchLatestValue)]
                } else if (deviceNumbers == 2) {
                        switches = [new Switches(sendEvent, 0, "switch0", "off", "off"), new Switches(sendEvent, 1, "switch1", "off", "off")]
                } else if (deviceNumbers == 3) {
@@ -46,6 +53,9 @@ public class Switching{
        //By Model Checker
        def setValue(LinkedHashMap eventDataMap) {
                switches[eventDataMap["deviceId"]].setValue(eventDataMap["value"])
+               if (deviceNumbers == 1)
+                       this.switchState = switches[eventDataMap["deviceId"]].switchState
+                       this.switchLatestValue = switches[eventDataMap["deviceId"]].switchLatestValue
                sendEvent(eventDataMap)
        }