fix timeout for flipper connection
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user