source: DCWoRMS/trunk/src/schedframe/resources/computing/profiles/energy/thermal/ThermalProfile.java @ 803

Revision 803, 1.5 KB checked in by wojtekp, 12 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package schedframe.resources.computing.profiles.energy.thermal;
2
3import java.util.ArrayList;
4import java.util.List;
5
6import org.joda.time.DateTimeUtils;
7
8import schedframe.Parameters;
9
10public class ThermalProfile {
11       
12        protected List<TemperatureValue> temperatureHistory;
13        protected Parameters parameters;
14
15        public ThermalProfile() {
16                super();
17
18                this.temperatureHistory = new ArrayList<TemperatureValue>();
19        }
20
21        public void addToTemperatureHistory(double temperature) {
22
23                if (temperatureHistory.size() == 0) {
24                        TemperatureValue usage = new TemperatureValue(DateTimeUtils.currentTimeMillis(), temperature);
25                        temperatureHistory.add(usage);
26                        return;
27                }
28
29                int lastIdx = temperatureHistory.size() - 1;
30                double lastTemperature = temperatureHistory.get(lastIdx).getValue();
31                if (lastTemperature != temperature) {
32                        TemperatureValue usage = temperatureHistory.get(lastIdx);
33                        long currentTime = DateTimeUtils.currentTimeMillis();
34                        if (usage.getTimestamp() == currentTime) {
35                                usage.setValue(temperature);
36                                if(lastIdx > 0 && temperatureHistory.get(lastIdx - 1).getValue() == temperature)
37                                        temperatureHistory.remove(usage);
38                        } else {
39                                usage = new TemperatureValue(DateTimeUtils.currentTimeMillis(), temperature);
40                                temperatureHistory.add(usage);
41                        }
42                }
43        }
44
45        public List<TemperatureValue> getTemperatureHistory() {
46                return temperatureHistory;
47        }
48       
49        public void init(Parameters params){
50                this.parameters = params;
51        }
52
53        public Parameters getParameters() {
54                return parameters;
55        }
56}
Note: See TracBrowser for help on using the repository browser.