From b1256e4ff85211a0d30d24b82b6150f307b6becb Mon Sep 17 00:00:00 2001 From: Florian Bezannier Date: Sat, 7 Oct 2023 11:35:17 +0200 Subject: [PATCH] fix: #601 --- .../psacc/application/battery_charge_curve.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/psa_car_controller/psacc/application/battery_charge_curve.py b/psa_car_controller/psacc/application/battery_charge_curve.py index 4fdef89..72ee5f0 100644 --- a/psa_car_controller/psacc/application/battery_charge_curve.py +++ b/psa_car_controller/psacc/application/battery_charge_curve.py @@ -7,6 +7,9 @@ from psa_car_controller.psacc.model.car import Car from psa_car_controller.psacc.model.charge import Charge from psa_car_controller.psacc.repository.db import Database +DEFAULT_KM_BY_KW = 5.3 +MINIMUM_AUTONOMY_FOR_GOOD_RESULT = 20 + class BatteryChargeCurve: def __init__(self, level, speed): @@ -23,7 +26,10 @@ class BatteryChargeCurve: battery_curves = [] if len(battery_curves_dto) > 0 and battery_curves_dto[-1].level > 0 and battery_curves_dto[-1].autonomy > 0: battery_capacity = battery_curves_dto[-1].level * car.battery_power / 100 - km_by_kw = 0.8 * battery_curves_dto[-1].autonomy / battery_capacity + if battery_curves_dto[-1].autonomy > MINIMUM_AUTONOMY_FOR_GOOD_RESULT: + km_by_kw = 0.8 * battery_curves_dto[-1].autonomy / battery_capacity + else: + km_by_kw = DEFAULT_KM_BY_KW start = 0 speeds = [] @@ -51,7 +57,7 @@ class BatteryChargeCurve: start = end speeds = [] battery_curves.append(BatteryChargeCurve(charge.end_level, 0)) - elif charge.end_level and charge.start_level: + elif charge.end_level and charge.start_level is not None: speed = car.get_charge_speed(charge.end_level - charge.start_level, (stop_at - start_date).total_seconds()) battery_curves.append(BatteryChargeCurve(charge.start_level, speed)) battery_curves.append(BatteryChargeCurve(charge.end_level, speed))