fix get PIDs and restart auto

This commit is contained in:
2026-01-30 00:05:27 +03:00
parent a96328d4e6
commit 9a3fe4457c
3 changed files with 106 additions and 29 deletions

View File

@@ -25,6 +25,15 @@ class OBD2Config:
timeout: float = 0.1
@dataclass
class ScanConfig:
"""PID scan configuration."""
retries: int = 5
retry_delay: float = 1.5
initial_delay: float = 1.0
@dataclass
class PollingConfig:
"""Polling configuration."""
@@ -41,6 +50,7 @@ class Config:
can: CANConfig = field(default_factory=CANConfig)
obd2: OBD2Config = field(default_factory=OBD2Config)
scan: ScanConfig = field(default_factory=ScanConfig)
polling: PollingConfig = field(default_factory=PollingConfig)
@classmethod
@@ -87,6 +97,12 @@ class Config:
self.obd2.response_id = self._parse_hex(obd2_data["response_id"])
self.obd2.timeout = obd2_data.get("timeout", self.obd2.timeout)
if "scan" in data:
scan_data = data["scan"]
self.scan.retries = scan_data.get("retries", self.scan.retries)
self.scan.retry_delay = scan_data.get("retry_delay", self.scan.retry_delay)
self.scan.initial_delay = scan_data.get("initial_delay", self.scan.initial_delay)
if "polling" in data:
poll_data = data["polling"]
self.polling.interval_fast = poll_data.get(