package RelaySwitch
import Timer.SimulatedTimer
-//JPF's Verify API
-import gov.nasa.jpf.vm.Verify
-
public class RelaySwitches {
int deviceNumbers
List relaySwitches
private String currentSwitch = "off"
private String switchLatestValue = "off"
- RelaySwitches(Closure sendEvent, int deviceNumbers) {
+ RelaySwitches(Closure sendEvent, int deviceNumbers, boolean init) {
this.sendEvent = sendEvent
this.timers = new SimulatedTimer()
this.deviceNumbers = deviceNumbers
this.relaySwitches = []
- /*def init = Verify.getBoolean()
if (init) {
this.switchState = "off"
this.currentSwitch = "off"
this.switchState = "on"
this.currentSwitch = "on"
this.switchLatestValue = "on"
- }*/
+ }
relaySwitches.add(new RelaySwitch(sendEvent, id, label, displayName, this.switchState, this.currentSwitch, this.switchLatestValue))
}
def find(Closure Input) {
relaySwitches.find(Input)
}
+ def sort(Closure Input) {
+ relaySwitches.sort(Input)
+ }
def collect(Closure Input) {
relaySwitches.collect(Input)
}
//By Apps
def on() {
if (switchState != "on") {
- relaySwitches[0].on()
- switchLatestValue = switchState
+ switchLatestValue = "on"
switchState = "on"
currentSwitch = "on"
+ relaySwitches[0].on()
}
}
def on(LinkedHashMap metaData) {
if (switchState != "on") {
def task = timers.runAfter(metaData["delay"]) {
- relaySwitches[0].on()
- switchLatestValue = switchState
+ switchLatestValue = "on"
switchState = "on"
currentSwitch = "on"
+ relaySwitches[0].on()
}
}
}
def off() {
if (switchState != "off") {
- relaySwitches[0].off()
- switchLatestValue = switchState
+ switchLatestValue = "off"
switchState = "off"
currentSwitch = "off"
+ relaySwitches[0].off()
}
}
def off(LinkedHashMap metaData) {
if (switchState != "off") {
def task = timers.runAfter(metaData["delay"]) {
- relaySwitches[0].off()
- switchLatestValue = switchState
+ switchLatestValue = "off"
switchState = "off"
currentSwitch = "off"
+ relaySwitches[0].off()
}
}
}
//By Model Checker
def setValue(LinkedHashMap eventDataMap) {
if (eventDataMap["value"] != relaySwitches[0].switchState) {
+ this.switchState = eventDataMap["value"]
+ this.switchLatestValue = eventDataMap["value"]
relaySwitches[0].setValue(eventDataMap["value"])
- this.switchState = relaySwitches[0].switchState
- this.switchLatestValue = relaySwitches[0].switchLatestValue
sendEvent(eventDataMap)
}
}