From 30b26bd15b483457c1e9705335a0b479e86d9101 Mon Sep 17 00:00:00 2001 From: Florian Bezannier Date: Sat, 2 Apr 2022 12:14:37 +0200 Subject: [PATCH] fix(map): fix last position marker on the box --- psa_car_controller/common/mylogger.py | 2 +- .../psacc/application/charge_control.py | 2 +- .../psacc/application/psa_client.py | 27 ++++++++++--------- psa_car_controller/web/view/views.py | 2 +- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/psa_car_controller/common/mylogger.py b/psa_car_controller/common/mylogger.py index 9a10b8f..b64666e 100644 --- a/psa_car_controller/common/mylogger.py +++ b/psa_car_controller/common/mylogger.py @@ -8,7 +8,7 @@ logging.addLevelName(DEBUG_LEVELV_NUM, "DEBUGV") class CustomLogger(logging.Logger): - def _log(self, level, # pylint: disable=too-many-arguments,unused-argument,arguments-differ + def _log(self, level, # pylint: disable=too-many-arguments,unused-argument msg, args, exc_info=None, diff --git a/psa_car_controller/psacc/application/charge_control.py b/psa_car_controller/psacc/application/charge_control.py index e9da0d6..a2035e1 100644 --- a/psa_car_controller/psacc/application/charge_control.py +++ b/psa_car_controller/psacc/application/charge_control.py @@ -74,8 +74,8 @@ class ChargeControl: vehicle_status = self.psacc.vehicles_list.get_car_by_vin(self.vin).get_status() status = vehicle_status.get_energy('Electric').charging.status level = vehicle_status.get_energy('Electric').level - logger.info("charging status of %s is %s, battery level: %d", self.vin, status, level) if status == "InProgress" and self.percentage_threshold < 100: + logger.info("charging status of %s is %s, battery level: %d", self.vin, status, level) charging_mode = vehicle_status.get_energy('Electric').charging.charging_mode quick_refresh = isinstance(charging_mode, str) and charging_mode == "Quick" self.force_update(quick_refresh) diff --git a/psa_car_controller/psacc/application/psa_client.py b/psa_car_controller/psacc/application/psa_client.py index e078408..4b349a2 100644 --- a/psa_car_controller/psacc/application/psa_client.py +++ b/psa_car_controller/psacc/application/psa_client.py @@ -3,7 +3,6 @@ import threading from datetime import datetime, timedelta, timezone from json import JSONEncoder from hashlib import md5 -from time import sleep from oauth2_client.credentials_manager import ServiceInformation from urllib3.exceptions import InvalidHeader @@ -115,21 +114,23 @@ class PSAClient: def __refresh_vehicle_info(self): if self.info_refresh_rate is not None: - while True: - try: - logger.debug("refresh_vehicle_info") - for car in self.vehicles_list: - self.get_vehicle_info(car.vin) - for callback in self.info_callback: - callback() - except BaseException: - logger.exception("refresh_vehicle_info: ") - sleep(self.info_refresh_rate) + if self.refresh_thread and self.refresh_thread.is_alive(): + logger.warning("refresh_vehicle_info: precedent task still alive") + self.refresh_thread = threading.Timer(self.info_refresh_rate, self.__refresh_vehicle_info) + self.refresh_thread.setDaemon(True) + self.refresh_thread.start() + try: + logger.debug("refresh_vehicle_info") + for car in self.vehicles_list: + self.get_vehicle_info(car.vin) + for callback in self.info_callback: + callback() + except BaseException: + logger.exception("refresh_vehicle_info: ") def start_refresh_thread(self): if self.refresh_thread is None: - self.refresh_thread = threading.Thread(target=self.__refresh_vehicle_info, daemon=True) - self.refresh_thread.start() + self.__refresh_vehicle_info() def get_vehicles(self): try: diff --git a/psa_car_controller/web/view/views.py b/psa_car_controller/web/view/views.py index e140a39..5a975f9 100644 --- a/psa_car_controller/web/view/views.py +++ b/psa_car_controller/web/view/views.py @@ -161,7 +161,7 @@ def get_style(): res = json.loads(f.read()) STYLE_CACHE = res url_root = request.url_root - STYLE_CACHE["sprite"] = url_root + "assets/sprites/osm-liberty@2x" + STYLE_CACHE["sprite"] = url_root + "assets/sprites/osm-liberty" return jsonify(STYLE_CACHE)