package experiments.e2dc2015.models.arm; import schedframe.resources.computing.profiles.energy.ResourceEvent; import schedframe.resources.devices.Device; import schedframe.resources.devices.PhysicalResource; import schedframe.scheduling.manager.tasks.JobRegistry; import example.energy.BaseEnergyEstimationPlugin; import experiments.e2dc2015.EnvironmentConditions; public class PowerLeakageEnergyEstimationPlugin extends BaseEnergyEstimationPlugin{ public double estimatePowerConsumption(ResourceEvent event, JobRegistry jobRegistry, PhysicalResource resource) { double powerLekage = 0; Device pl = (Device) resource; double tempDiff = pl.getComputingResource().getThermalInterface().getRecentTemperature().getValue() - EnvironmentConditions.arm_baseLeakageTemp; if(tempDiff < 0) return 0; powerLekage = EnvironmentConditions.arm_leakageFactor * tempDiff; //powerConsumption = factor * pl.getComputingResource().getPowerInterface().getRecentPowerUsage().getValue(); /*Device pl = (Device) resource; if(pl.getComputingResource().getThermalInterface().getRecentTemperature().getValue() > 90){ powerConsumption = powerConsumption + 15; }*/ return powerLekage; } }