Infrastructure compatible with 2 types of switches.(Normal switches and otherVsGeneri...
[smartthings-infrastructure.git] / EnergyMeter / EnergyMeters.groovy
index 296cdaad7b5e820e1838990846eeaaeb8918d308..5d8b74aa73146c8ee7106b8ce993639984354f09 100644 (file)
@@ -2,9 +2,6 @@
 package EnergyMeter
 import Timer.SimulatedTimer
 
-//JPF's Verify API
-import gov.nasa.jpf.vm.Verify
-
 public class EnergyMeters {
        private int deviceNumbers
        private List energyMeters
@@ -16,17 +13,22 @@ public class EnergyMeters {
        private String displayName = "energyMeter0"
        private int energy = 50
        private int currentEnergy = 50
+       private String status = "off"
 
                
-       EnergyMeters(Closure sendEvent, int deviceNumbers) {
+       EnergyMeters(Closure sendEvent, int deviceNumbers, boolean init) {
                this.sendEvent = sendEvent              
                this.deviceNumbers = deviceNumbers
                this.energyMeters = []
 
-               def init = Verify.getIntFromList(30, 50, 70)
-               this.energy = init
-
-               energyMeters.add(new EnergyMeter(id, label, displayName, this.energy))
+               if (init) {
+                       this.energy = 50
+                       this.currentEnergy = 50
+               } else {
+                       this.energy = 60
+                       this.currentEnergy = 60
+               }
+               energyMeters.add(new EnergyMeter(id, label, displayName, this.energy, this.status))
        }
 
        //By Model Checker
@@ -59,6 +61,19 @@ public class EnergyMeters {
                energyMeters.collect(Input)
        }
 
+       def reset() {
+               if (status != "on") {
+                       status = "on"
+                       energyMeters[0].reset()
+               }
+       }
+       
+       def off() {
+               if (status != "off") {
+                       status = "off"
+                       energyMeters[0].off()
+               }
+       }
 
        def currentValue(String deviceFeature) {
                energyMeters[0].currentValue(deviceFeature)//It is called if we have only one device