importing verify library for relative humidity measurement class!
[smartthings-infrastructure.git] / RelativeHumidityMeasurement / RelativeHumidityMeasurement.groovy
1 //Create a class for relative humidity measurement
2 package RelativeHumidityMeasurement
3 import Timer.SimulatedTimer
4
5 //JPF's Verify API
6 import gov.nasa.jpf.vm.Verify
7
8 public class RelativeHumidityMeasurement {
9         private String id
10         private String label
11         private String displayName
12         private int humidity
13         private int currentHumidity
14
15         RelativeHumidityMeasurement(String id, String label, String displayName, int humidity) {
16                 this.id = id
17                 this.label = label
18                 this.displayName = displayName
19                 this.humidity = humidity
20         }
21
22         def eventsSince() {
23                 def evtHumidity = [[name: "humidity", value: this.humidity.toString(), deviceId: "humidityMeasurementID0", descriptionText: "",
24                                 displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}']]
25                 def init = Verify.getInt(0,1)
26                 def evtToSend = []
27                 if (init == 0) {//return empty set
28                         return evtToSend
29                 } else if (init == 1) {//send one open event
30                         evtHumidity.each{
31                                 evtToSend.add(it)
32                         }
33                         return evtToSend
34                 }
35         }
36
37         //By Model Checker
38         def setValue(String value) {
39                 println("the humidity is changed to $value!")
40                 this.humidity = value.toInteger()
41                 this.currentHumidity = value.toInteger()
42         }
43
44         def currentValue(String deviceFeature) {
45                 if (deviceFeature == "humidity") {
46                         return humidity
47                 }
48         }
49
50         def latestValue(String deviceFeature) {
51                 if (deviceFeature == "humidity") {
52                         return humidity
53                 }
54         }
55 }