//Create a class for switch device
package Switch
+import Timer.SimulatedTimer
public class Switching{
int deviceNumbers
def timers
def sendEvent
+ //If we have only one device
+ private int id = 0
+ private String displayName = "switch0"
+ private String switchState = "off"
+ private String switchLatestValue = "off"
+
Switching(Closure sendEvent, int deviceNumbers) {
this.sendEvent = sendEvent
- this.timers = new Timer()
+ this.timers = new SimulatedTimer()
this.deviceNumbers = deviceNumbers
this.switches = []
if (deviceNumbers == 1) {
- switches = [new Switches(sendEvent, 0, "switch0", "off", "off")]
+ switches = [new Switches(sendEvent, this.id, this.displayName, this.switchState, this.switchLatestValue)]
} else if (deviceNumbers == 2) {
switches = [new Switches(sendEvent, 0, "switch0", "off", "off"), new Switches(sendEvent, 1, "switch1", "off", "off")]
} else if (deviceNumbers == 3) {
//By Model Checker
def setValue(LinkedHashMap eventDataMap) {
switches[eventDataMap["deviceId"]].setValue(eventDataMap["value"])
+ if (deviceNumbers == 1)
+ this.switchState = switches[eventDataMap["deviceId"]].switchState
+ this.switchLatestValue = switches[eventDataMap["deviceId"]].switchLatestValue
sendEvent(eventDataMap)
}