X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=Thermostat%2FThermostats.groovy;h=2d0bc6c87558abc3c68db150e88e66fcd8761277;hb=fb6f6cdeaeba72a4d60cccd18ad1b9f8f5e8c2eb;hp=d8f7adaff9a9e14d69d32fa48f9f30f2b9471d60;hpb=d3802bd96ca8963ae52b9740443f9be6896f0e18;p=smartthings-infrastructure.git diff --git a/Thermostat/Thermostats.groovy b/Thermostat/Thermostats.groovy index d8f7ada..2d0bc6c 100644 --- a/Thermostat/Thermostats.groovy +++ b/Thermostat/Thermostats.groovy @@ -2,9 +2,6 @@ package Thermostat import Timer.SimulatedTimer -//JPF's Verify API -import gov.nasa.jpf.vm.Verify - public class Thermostats{ int deviceNumbers List thermostats @@ -40,68 +37,39 @@ public class Thermostats{ private int latestHeatingSetPoint = 50 - Thermostats(Closure sendEvent, int deviceNumbers) { + Thermostats(Closure sendEvent, int deviceNumbers, boolean init) { this.sendEvent = sendEvent this.timers = new SimulatedTimer() this.deviceNumbers = deviceNumbers this.thermostats = [] - def initTemperature = Verify.getIntFromList(60, 66, 70) - this.temperature = initTemperature - this.currentTemperature = initTemperature - - def initCoolingSetpoint = Verify.getIntFromList(70, 80, 90) - this.currentCoolingSetpoint = initCoolingSetpoint - this.coolingSetpoint = initCoolingSetpoint - - def initHeatingSetpoint = Verify.getIntFromList(20, 35, 50) - this.currentHeatingSetpoint = initHeatingSetpoint - this.heatingSetpoint = initHeatingSetpoint - - def initThermostatSetpoint = Verify.getIntFromList(50, 60, 70) - this.thermostatSetpoint = initThermostatSetpoint - - def initFanMode = Verify.getInt(0,4) - if (initFanMode == 0) { + if (init) { + this.temperature = 60 + this.currentTemperature = 60 + this.currentCoolingSetpoint = 70 + this.coolingSetpoint = 70 + this.currentHeatingSetpoint = 35 + this.heatingSetpoint = 35 + this.thermostatSetpoint = 50 this.thermostatFanMode = "auto" this.thermostatLatestFanMode = "auto" - } else if (initFanMode == 1) { - this.thermostatFanMode = "fanCirculate" - this.thermostatLatestFanMode = "fanCirculate" - } else if (initFanMode == 2) { - this.thermostatFanMode = "circulate" - this.thermostatLatestFanMode = "circulate" - } else if (initFanMode == 3) { - this.thermostatFanMode = "fanOn" - this.thermostatLatestFanMode = "fanOn" - } else { - this.thermostatFanMode = "on" - this.thermostatLatestFanMode = "on" - } - - def initMode = Verify.getInt(0,4) - if (initMode == 0) { this.thermostatMode = "auto" this.currentThermostatMode = "auto" this.thermostatLatestMode = "auto" - } else if (initMode == 1) { - this.thermostatMode = "cool" - this.currentThermostatMode = "cool" - this.thermostatLatestMode = "cool" - } else if (initMode == 2) { - this.thermostatMode = "emergencyHeat" - this.currentThermostatMode = "emergencyHeat" - this.thermostatLatestMode = "emergencyHeat" - } else if (initMode == 3) { - this.thermostatMode = "heat" - this.currentThermostatMode = "heat" - this.thermostatLatestMode = "heat" } else { + this.temperature = 66 + this.currentTemperature = 66 + this.currentCoolingSetpoint = 80 + this.coolingSetpoint = 80 + this.currentHeatingSetpoint = 50 + this.heatingSetpoint = 50 + this.thermostatSetpoint = 60 + this.thermostatFanMode = "circulate" + this.thermostatLatestFanMode = "circulate" this.thermostatMode = "off" this.currentThermostatMode = "off" - this.thermostatLatestMode = "off" + this.thermostatLatestMode = "off" } - thermostats.add(new Thermostat(sendEvent, id, label, displayName, this.temperature, this.currentCoolingSetpoint, this.currentHeatingSetpoint, this.coolingSetpoint, this.thermostatSetpoint, this.heatingSetpoint, this.coolingSetpointRange, this.thermostatSetpointRange, this.heatingSetpointRange, this.supportedThermostatFanModes, this.supportedThermostatModes, @@ -195,7 +163,7 @@ public class Thermostats{ thermostats[0].heat() } } - + def auto() { if (thermostatMode != "auto") { this.thermostatLatestMode = "auto" @@ -205,6 +173,15 @@ public class Thermostats{ } } + def emergencyHeat() { + if (thermostatMode != "emergencyHeat") { + this.thermostatLatestMode = "emergencyHeat" + this.thermostatMode = "emergencyHeat" + this.currentThermostatMode = "emergencyHeat" + thermostats[0].emergencyHeat() + } + } + def off() { if (thermostatMode != "off") { this.thermostatLatestMode = "off" @@ -227,6 +204,8 @@ public class Thermostats{ this.coolingSetpoint = coolingSetpoint this.currentHeatingSetpoint = heatingSetpoint this.heatingSetpoint = heatingSetpoint + this.latestCoolingSetPoint = coolingSetpoint + this.latestHeatingSetPoint = heatingSetpoint thermostats[0].setHold(info1, coolingSetpoint, heatingSetpoint, info2, info3) } } @@ -242,7 +221,7 @@ public class Thermostats{ } } else if (eventDataMap["name"] == "heatingSetpoint") { if (eventDataMap["value"].toInteger() != thermostats[0].heatingSetpoint) { - this.latestHeatingSetpoint = eventDataMap["value"].toInteger() + this.latestHeatingSetPoint = eventDataMap["value"].toInteger() this.heatingSetpoint = eventDataMap["value"].toInteger() thermostats[0].setValue(eventDataMap["value"], "heatingSetpoint") sendEvent(eventDataMap) @@ -256,7 +235,7 @@ public class Thermostats{ } } else if (eventDataMap["name"] == "thermostatSetpoint") { if (eventDataMap["value"].toInteger() != thermostats[0].thermostatSetpoint) { - this.latestThermostatSetpoint = eventDataMap["value"].toInteger() + this.latestThermostatSetPoint = eventDataMap["value"].toInteger() this.thermostatSetpoint = eventDataMap["value"].toInteger() thermostats[0].setValue(eventDataMap["value"], "thermostatSetpoint") sendEvent(eventDataMap)