package SwitchLevel
import Timer.SimulatedTimer
-//JPF's Verify API
-import gov.nasa.jpf.vm.Verify
-
public class SwitchLevels {
int deviceNumbers
List switchLevels
private String displayName = "switchLevel0"
private int level = 50
private int rate = 50
+ private int hue = 30
+ private int saturation = 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.rate = 50
+ this.hue = 30
+ this.saturation = 70
this.switchState = "off"
this.currentSwitch = "off"
this.switchLatestValue = "off"
} else {
+ this.level = 60
+ this.rate = 60
+ this.hue = 50
+ this.saturation = 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.rate = metaData["level"]
+ this.hue = metaData["hue"]
+ this.saturation = 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)