Fixing some bugs
[smartthings-infrastructure.git] / MotionSensor / MotionSensors.groovy
index 764aa3e9c505d0c405933f12b2b7489eb2d38abe..c799b0e77766697fd893a67c8bebcdfe314452e5 100644 (file)
@@ -2,9 +2,6 @@
 package MotionSensor
 import Timer.SimulatedTimer
 
-//JPF's Verify API
-import gov.nasa.jpf.vm.Verify
-
 public class MotionSensors {
        private int deviceNumbers
        private List motionSensors
@@ -19,29 +16,30 @@ public class MotionSensors {
        private String motionLatestValue = "inactive"
 
                
-       MotionSensors(Closure sendEvent, int deviceNumbers) {
+       MotionSensors(Closure sendEvent, int deviceNumbers, boolean init) {
                this.sendEvent = sendEvent              
                this.deviceNumbers = deviceNumbers
                this.motionSensors = []
 
-               /*def init = Verify.getBoolean()
                if (init) {
                        this.motion = "inactive"
+                       this.currentMotion = "inactive"
                        this.motionLatestValue = "inactive"
                } else {
                        this.motion = "active"
+                       this.currentMotion = "active"
                        this.motionLatestValue = "active"
-               }*/
+               }
                motionSensors.add(new MotionSensor(id, label, displayName, this.motion, this.motionLatestValue))
        }
 
        //By Model Checker
        def setValue(LinkedHashMap eventDataMap) {
                if (eventDataMap["value"] != motionSensors[0].motion) {
+                       this.motionLatestValue = eventDataMap["value"]
+                       this.motion = eventDataMap["value"]
+                       this.currentMotion = eventDataMap["value"]
                        motionSensors[0].setValue(eventDataMap["value"])
-                       this.motionLatestValue = motionSensors[0].motionLatestValue
-                       this.motion = motionSensors[0].motion
-                       this.currentMotion = motionSensors[0].motion
                        sendEvent(eventDataMap)
                }
        }
@@ -59,10 +57,16 @@ public class MotionSensors {
        def find(Closure Input) {
                motionSensors.find(Input)
        }
+       def sort(Closure Input) {
+               motionSensors.sort(Input)
+       }
        def collect(Closure Input) {
                motionSensors.collect(Input)
        }
-
+       
+       def currentState(String deviceFeature) {
+               currentValue(deviceFeature)
+       }
 
        def currentValue(String deviceFeature) {
                motionSensors[0].currentValue(deviceFeature)//It is called if we have only one device
@@ -73,7 +77,7 @@ public class MotionSensors {
        }
 
        def statesSince(String info, Date dateObj) {
-               return motionSensors[0].statesSince(info, dateObj)
+               return motionSensors[0].statesSince()
        }
 
        def getAt(int ix) {