package SwitchLevel
import Timer.SimulatedTimer
-//JPF's Verify API
-import gov.nasa.jpf.vm.Verify
-
public class SwitchLevels {
int deviceNumbers
List switchLevels
private String label = "switchLevel0"
private String displayName = "switchLevel0"
private int level = 50
+ private int currentLevel = 50
private int rate = 50
+ private int currentRate = 50
+ private int hue = 30
+ private int currentHue = 30
+ private int saturation = 70
+ private int currentSaturation = 70
private String switchState = "on"
private String currentSwitch = "on"
private String switchLatestValue = "on"
- SwitchLevels(Closure sendEvent, int deviceNumbers) {
+ SwitchLevels(Closure sendEvent, int deviceNumbers, boolean init) {
this.sendEvent = sendEvent
this.timers = new SimulatedTimer()
this.deviceNumbers = deviceNumbers
this.switchLevels = []
- /*def initLevel = Verify.getIntFromList(30, 50, 70)
- this.level = initLevel
- def init = Verify.getBoolean()
if (init) {
+ this.level = 50
+ this.currentLevel = 50
+ this.rate = 50
+ this.currentRate = 50
+ this.hue = 30
+ this.currentHue = 30
+ this.saturation = 70
+ this.currentSaturation = 70
this.switchState = "off"
this.currentSwitch = "off"
this.switchLatestValue = "off"
} else {
+ this.level = 60
+ this.currentLevel = 60
+ this.rate = 60
+ this.currentRate = 60
+ this.hue = 50
+ this.currentHue = 50
+ this.saturation = 90
+ this.currentSaturation = 90
this.switchState = "on"
this.currentSwitch = "on"
this.switchLatestValue = "on"
- }*/
- switchLevels.add(new SwitchLevel(sendEvent, id, label, displayName, this.level, this.switchState, this.switchLatestValue))
+ }
+ switchLevels.add(new SwitchLevel(sendEvent, id, label, displayName, this.level, this.hue, this.saturation, this.switchState, this.switchLatestValue))
}
//Methods for closures
}
//By Apps
+ def setColor(LinkedHashMap metaData) {
+ if ((this.level != metaData["level"]) || (this.hue != metaData["hue"]) || (this.saturation != metaData["saturation"])) {
+ this.level = metaData["level"]
+ this.currentLevel = metaData["level"]
+ this.rate = metaData["level"]
+ this.currentRate = metaData["level"]
+ this.hue = metaData["hue"]
+ this.currentHue = metaData["hue"]
+ this.saturation = metaData["saturation"]
+ this.currentSaturation = metaData["saturation"]
+ switchLevels[0].setColor(metaData)
+ }
+ }
+
+ def setLevel(String level) {
+ def newLevel = level.toInteger()
+ setLevel(newLevel)
+ }
+
def setLevel(int level) {
if (this.level != level) {
switchLevels[0].setLevel(level)
this.level = level
+ this.currentLevel = level
this.rate = level
+ this.currentRate = level
}
}
switchLevels[0].setLevel(level)
this.level = level
this.rate = level
+ this.currentLevel = level
+ this.currentRate = level
}
}
} else if (eventDataMap["name"] == "level") {
if (eventDataMap["value"].toInteger() != switchLevels[0].level) {
this.level = eventDataMap["value"].toInteger()
+ this.currentLevel = eventDataMap["value"].toInteger()
+ this.currentRate = eventDataMap["value"].toInteger()
this.rate = eventDataMap["value"].toInteger()
switchLevels[0].setValue(eventDataMap["value"], "level")
sendEvent(eventDataMap)