diff --git a/obd2_client/src/flipper/server.py b/obd2_client/src/flipper/server.py index 33a3e1f..7f4c5f1 100644 --- a/obd2_client/src/flipper/server.py +++ b/obd2_client/src/flipper/server.py @@ -46,7 +46,6 @@ class FlipperServer: # Timing constants PAGE_UPDATE_INTERVAL = 0.5 # Send PAGE every 500ms - CONNECTION_TIMEOUT = 10.0 # Consider disconnected after 10s of silence def __init__( self, @@ -73,7 +72,6 @@ class FlipperServer: self._page_manager = PageManager() self._last_page_sent = 0.0 - self._last_command_received = 0.0 self._logger = get_logger("obd2_client.flipper") self._ip_address = "0.0.0.0" @@ -151,7 +149,6 @@ class FlipperServer: # Send periodic PAGE updates if connected if self._state == ServerState.CONNECTED: self._send_page_updates() - self._check_connection_timeout() except Exception as e: self._logger.error(f"Server error: {e}") @@ -207,7 +204,6 @@ class FlipperServer: self._logger.debug(f"Unknown command: {line.strip()}") return - self._last_command_received = time.time() self._logger.debug(f"Received: {cmd.cmd_type.name}") # INIT can be received at any time (reconnection support) @@ -252,7 +248,6 @@ class FlipperServer: # Reset state for fresh connection self._state = ServerState.CONNECTED - self._last_command_received = time.time() self._last_page_sent = 0.0 # Force immediate PAGE send # Reset page manager to first page @@ -333,17 +328,6 @@ class FlipperServer: if (current_time - self._last_page_sent) >= self.PAGE_UPDATE_INTERVAL: self._send_current_page() - def _check_connection_timeout(self) -> None: - """Check if connection has timed out (no commands from Flipper).""" - if self._last_command_received == 0: - return - - elapsed = time.time() - self._last_command_received - if elapsed > self.CONNECTION_TIMEOUT: - self._logger.warning(f"Connection timeout ({elapsed:.1f}s since last command)") - self._state = ServerState.IDLE - self._last_command_received = 0 - def _send_current_page(self) -> None: """Send current page content.""" page = self._page_manager.get_current_page() diff --git a/obd2_client/src/obd2/scanner.py b/obd2_client/src/obd2/scanner.py index d15809f..61ea1bd 100644 --- a/obd2_client/src/obd2/scanner.py +++ b/obd2_client/src/obd2/scanner.py @@ -66,9 +66,12 @@ class OBD2Scanner: """ import time - if use_cache and self._load_cache(): - self._logger.info(f"Loaded {len(self._supported_pids)} PIDs from cache") - return self.supported_pids + if use_cache: + if self._load_cache() and len(self._supported_pids) > 0: + self._logger.info(f"Loaded {len(self._supported_pids)} PIDs from cache") + return self.supported_pids + else: + self._logger.debug("Cache empty or invalid, will scan") # Initial delay to let CAN interface and ECU stabilize if initial_delay > 0: