X-Git-Url: http://plrg.eecs.uci.edu/git/?p=smartthings-infrastructure.git;a=blobdiff_plain;f=MotionSensor%2FMotionSensor.groovy;h=01f1363256190d9c5411bcfc4da8b475c974a588;hp=79fbf9b5b018b71054fe72ac8de51005fd005b7d;hb=a506caeba94b4c035e0c47f29017f07773e3f318;hpb=e9196e0f9b6d29e4f5d9fbe51e15b5a6e7fe00b7;ds=sidebyside diff --git a/MotionSensor/MotionSensor.groovy b/MotionSensor/MotionSensor.groovy index 79fbf9b..01f1363 100644 --- a/MotionSensor/MotionSensor.groovy +++ b/MotionSensor/MotionSensor.groovy @@ -9,8 +9,6 @@ public class MotionSensor { private String motion private String currentMotion private String motionLatestValue - private List states = [] - private List timeOfStates = [] MotionSensor(String id, String label, String displayName, String motion, String motionLatestValue) { this.id = id @@ -26,18 +24,48 @@ public class MotionSensor { this.motionLatestValue = value this.motion = value this.currentMotion = value - this.states.add(value) - this.timeOfStates.add(System.currentTimeMillis()) } - def statesSince(String info, Date dateObj) { - def List happenedStates = [] - def sinceThen = dateObj.time - for (int i = 0;i < timeOfStates.size();i++) { - if (timeOfStates[i]>=sinceThen) - happenedStates.add(states[i]) + def statesSince() { + def evtActive = [[name: "motion", value: "active", deviceId: "motionSensorID0", descriptionText: "", + displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}']] + def evtInactive = [[name: "motion", value: "inactive", deviceId: "motionSensorID0", descriptionText: "", + displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}']] + def init = Verify.getInt(0,4) + def evtToSend = [] + if (init == 0) {//return empty set + return evtToSend + } else if (init == 1) {//send one active event + evtActive.each{ + evtToSend.add(it) + } + return evtToSend + } else if (init == 2) {//send two active events + evtActive.each{ + evtToSend.add(it) + } + evtActive.each{ + evtToSend.add(it) + } + return evtToSend + } else if (init == 3) {//send one inactive event + evtInactive.each{ + evtToSend.add(it) + } + return evtToSend + } else if (init == 4) {//send two inactive events + evtInactive.each{ + evtToSend.add(it) + } + evtInactive.each{ + evtToSend.add(it) + } + return evtToSend } - return happenedStates + } + + def currentState(String deviceFeature) { + currentValue(deviceFeature) }