package EnergyMeter
import Timer.SimulatedTimer
-//JPF's Verify API
-import gov.nasa.jpf.vm.Verify
-
public class EnergyMeters {
private int deviceNumbers
private List energyMeters
private String displayName = "energyMeter0"
private int energy = 50
private int currentEnergy = 50
+ private String status = "off"
- EnergyMeters(Closure sendEvent, int deviceNumbers) {
+ EnergyMeters(Closure sendEvent, int deviceNumbers, boolean init) {
this.sendEvent = sendEvent
this.deviceNumbers = deviceNumbers
this.energyMeters = []
- //def init = Verify.getIntFromList(30, 50, 70)
- //this.energy = init
-
- energyMeters.add(new EnergyMeter(id, label, displayName, this.energy))
+ if (init) {
+ this.energy = 50
+ this.currentEnergy = 50
+ } else {
+ this.energy = 60
+ this.currentEnergy = 60
+ }
+ energyMeters.add(new EnergyMeter(id, label, displayName, this.energy, this.status))
}
//By Model Checker
def setValue(LinkedHashMap eventDataMap) {
- if (eventDataMap["value"] != energyMeters[0].energy) {
- energyMeters[0].setValue(eventDataMap["value"])
- this.energy = energyMeters[0].energy
- this.currentEnergy = energyMeters[0].currentEnergy
+ if (eventDataMap["value"].toInteger() != energyMeters[0].energy) {
+ this.energy = eventDataMap["value"].toInteger()
+ this.currentEnergy = eventDataMap["value"].toInteger()
+ energyMeters[0].setValue(eventDataMap["value"])
sendEvent(eventDataMap)
}
}
def find(Closure Input) {
energyMeters.find(Input)
}
+ def sort(Closure Input) {
+ energyMeters.sort(Input)
+ }
def collect(Closure Input) {
energyMeters.collect(Input)
}
+ def reset() {
+ if (status != "on") {
+ status = "on"
+ energyMeters[0].reset()
+ }
+ }
+
+ def off() {
+ if (status != "off") {
+ status = "off"
+ energyMeters[0].off()
+ }
+ }
def currentValue(String deviceFeature) {
energyMeters[0].currentValue(deviceFeature)//It is called if we have only one device
}
+ def latestValue(String deviceFeature) {
+ energyMeters[0].latestValue(deviceFeature)//It is called if we have only one device
+ }
+
def getAt(int ix) {
energyMeters[ix]
}