Commit #7: Events thread-based + new easier Extractor.py + our own Timer class
[smartthings-infrastructure.git] / Lock / Locking.groovy
index f55a239234af3aab6b87362bfa887949bdc6f914..23c4e2e7923f78141739ef15d0cfc256a97138ac 100644 (file)
@@ -1,5 +1,6 @@
 //Create a class for lock device
 package Lock
+import Timer.SimulatedTimer
 
 public class Locking{
        int deviceNumbers       
@@ -7,13 +8,19 @@ public class Locking{
        def sendEvent   
        def timers
 
+       //When we have only one device
+       private int id = 0
+       private String displayName = "lock0"
+       private String lockState = "locked"
+       private String lockLatestValue = "locked"
+
        Locking(Closure sendEvent, int deviceNumbers) {
                this.sendEvent = sendEvent
-               this.timers = new Timer()
+               this.timers = new SimulatedTimer()
                this.deviceNumbers = deviceNumbers
                this.locks = []
                if (deviceNumbers == 1) {
-                       locks = [new Locks(sendEvent, 0, "lock0", "locked", "locked")]
+                       locks = [new Locks(sendEvent, this.id, this.displayName, this.lockState, this.lockLatestValue)]
                } else if (deviceNumbers == 2) {
                        locks = [new Locks(sendEvent, 0, "lock0", "locked", "locked"), new Locks(sendEvent, 1, "lock1", "locked", "locked")]
                } else if (deviceNumbers == 3) {
@@ -46,6 +53,9 @@ public class Locking{
        //By Model Checker
        def setValue(LinkedHashMap eventDataMap) {
                locks[eventDataMap["deviceId"]].setValue(eventDataMap["value"])
+               if (deviceNumbers == 1)
+                       this.lockState = locks[eventDataMap["deviceId"]].lockState
+                       this.lockLatestValue = locks[eventDataMap["deviceId"]].lockLatestValue
                sendEvent(eventDataMap)
        }