-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBody.java
More file actions
97 lines (73 loc) · 3.68 KB
/
Body.java
File metadata and controls
97 lines (73 loc) · 3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package section;
import base.PrimaryFlightDisplay;
import com.google.common.eventbus.Subscribe;
import configuration.Configuration;
import event.Subscriber;
import event.battery.BatteryCharge;
import event.battery.BatteryDischarge;
import event.apu_oil_tank.APUOilTankDecreaseLevel;
import event.apu_oil_tank.APUOilTankIncreaseLevel;
import factory.BatteryFactory;
import logging.LogEngine;
import recorder.FlightRecorder;
import java.lang.reflect.Method;
import java.util.ArrayList;
public class Body extends Subscriber {
private ArrayList<Object> batteryPortList;
public Body() {
batteryPortList = new ArrayList<>();
build();
}
public void build() {
for(int i = 0; i < Configuration.instance.numberOfBattery;i++)
{
batteryPortList.add(BatteryFactory.build());
}
}
// --- Battery -----------------------------------------------------------------------------------------------
@Subscribe
public void receive(BatteryCharge batteryCharge) {
LogEngine.instance.write("+ Body.receive(" + batteryCharge.toString() + ")");
FlightRecorder.instance.insert("Body", "receive(" + batteryCharge.toString() + ")");
try {
for (int i = 0; i < Configuration.instance.numberOfBattery; i++) {
Method onMethod = batteryPortList.get(i).getClass().getDeclaredMethod("charge");
LogEngine.instance.write("onMethod = " + onMethod);
int percentage = (int) onMethod.invoke(batteryPortList.get(i));
LogEngine.instance.write("percentage = " + percentage);
PrimaryFlightDisplay.instance.percentage = percentage;
FlightRecorder.instance.insert("Body", "Battery (percentage): " + percentage);
LogEngine.instance.write("+");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
LogEngine.instance.write("PrimaryFlightDisplay (Battery): " + PrimaryFlightDisplay.instance.percentage);
FlightRecorder.instance.insert("PrimaryFlightDisplay", "chargeBatteryPercentage: " + PrimaryFlightDisplay.instance.percentage);
}
@Subscribe
public void receive(BatteryDischarge batteryDischarge) {
LogEngine.instance.write("+ Body.receive(" + batteryDischarge.toString() + ")");
FlightRecorder.instance.insert("Body", "receive(" + batteryDischarge.toString() + ")");
try {
for (int i = 0; i < Configuration.instance.numberOfBattery; i++) {
Method onMethod = batteryPortList.get(i).getClass().getDeclaredMethod("discharge");
LogEngine.instance.write("onMethod = " + onMethod);
int percentage = (int) onMethod.invoke(batteryPortList.get(i));
LogEngine.instance.write("percentage = " + percentage);
PrimaryFlightDisplay.instance.percentage = percentage;
FlightRecorder.instance.insert("Body", "Battery (percentage): " + percentage);
LogEngine.instance.write("+");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
LogEngine.instance.write("PrimaryFlightDisplay (Battery): " + PrimaryFlightDisplay.instance.percentage);
FlightRecorder.instance.insert("PrimaryFlightDisplay", "dischargeBatteryPercentage: " + PrimaryFlightDisplay.instance.percentage);
}
// @Subscribe
// public void receive(WeatherRadarScan weatherRadarScan) {
// FlightRecorder.instance.insert("Body", "receive(" + weatherRadarScan.toString() + ")");
// }
// ----------------------------------------------------------------------------------------------------------------
}