generated from clean-code-craft-tcq-1/bms-monitor-cs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TestBatteryCondition.cs
56 lines (47 loc) · 2.19 KB
/
TestBatteryCondition.cs
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
namespace BatteryManagementSystem
{
class TestBatteryCondition
{
private IReport report;
public TestBatteryCondition(IReport reporter)
{
report = reporter;
}
public void CheckBatteryStatus(float temperature, float soc, float chargeRate)
{
CheckTemperature(temperature);
CheckChargeState(soc);
CheckChargeRate(chargeRate);
}
public void CheckChargeRate(float chargeRate)
{
float minChargeRate = 0.3f;
float maxChargeRate = 0.8f;
CheckBatteryLevel(chargeRate, minChargeRate, maxChargeRate);
BatteryCondition.BatteryLevel batteryChargeRate = BatteryCondition.CheckBatteryCondition(chargeRate, minChargeRate, maxChargeRate);
StatusMessages.DisplayBatteryStatus("Charge Rate", batteryChargeRate, report);
}
public void CheckChargeState(float soc)
{
float minStateOfCharge = 20;
float maxStateOfCharge = 80;
CheckBatteryLevel(soc, minStateOfCharge, maxStateOfCharge);
BatteryCondition.BatteryLevel batteryChargeState = BatteryCondition.CheckBatteryCondition(soc, minStateOfCharge, maxStateOfCharge);
StatusMessages.DisplayBatteryStatus("State of charge",batteryChargeState, report);
}
public void CheckTemperature(float temperature)
{
float minTemperature = 0;
float maxTemperature = 45;
CheckBatteryLevel(temperature, minTemperature, maxTemperature);
BatteryCondition.BatteryLevel batteryTemperature = BatteryCondition.CheckBatteryCondition(temperature, minTemperature, maxTemperature);
StatusMessages.DisplayBatteryStatus("Temperature", batteryTemperature, report);
}
public static void CheckBatteryLevel(float chargeValue, float minValue, float maxValue)
{
float chargeLevel = BatteryBreachLevel.CalculateBreachLevel(chargeValue);
BatteryBreachLevel.CheckMinBreachLevel(chargeLevel, chargeValue, minValue);
BatteryBreachLevel.CheckMaxBreachLevel(chargeLevel, chargeValue, maxValue);
}
}
}