fix uds client
This commit is contained in:
@@ -405,41 +405,43 @@ class PageManager:
|
||||
|
||||
# UDS Data Section
|
||||
uds_values = mgr.get_data("uds_values", {})
|
||||
uds_stats = mgr.get_data("uds_stats", {})
|
||||
_logger.debug(f"Car data: UDS values={len(uds_values) if uds_values else 0}, stats={uds_stats}")
|
||||
|
||||
if uds_values:
|
||||
has_uds = True
|
||||
lines.append("--- UDS ---")
|
||||
|
||||
# Boost pressure
|
||||
if 0x202A in uds_values:
|
||||
v = uds_values[0x202A]
|
||||
lines.append(f"Boost: {v.value:.0f} kPa")
|
||||
# Display order for known PIDs
|
||||
uds_display = [
|
||||
(0x202A, "Boost", lambda v: f"{v.value:.0f} kPa"),
|
||||
(0x437C, "Torque", lambda v: f"{v.value:.0f} Nm"),
|
||||
(0x10C0, "Lambda", lambda v: f"{v.value:.3f}"),
|
||||
(0x2004, "Timing", lambda v: f"{v.value:.1f} deg"),
|
||||
(0x39A2, "Wastegate", lambda v: f"{v.value:.0f}%"),
|
||||
(0x3816, "Gear", lambda v: "R" if int(v.value) == -1 else ("N" if int(v.value) == 0 else str(int(v.value)))),
|
||||
]
|
||||
|
||||
# Torque
|
||||
if 0x437C in uds_values:
|
||||
v = uds_values[0x437C]
|
||||
lines.append(f"Torque: {v.value:.0f} Nm")
|
||||
shown_pids = set()
|
||||
for pid_code, label, formatter in uds_display:
|
||||
if pid_code in uds_values:
|
||||
v = uds_values[pid_code]
|
||||
lines.append(f"{label}: {formatter(v)}")
|
||||
shown_pids.add(pid_code)
|
||||
|
||||
# Lambda
|
||||
if 0x10C0 in uds_values:
|
||||
v = uds_values[0x10C0]
|
||||
lines.append(f"Lambda: {v.value:.3f}")
|
||||
|
||||
# Ignition timing
|
||||
if 0x2004 in uds_values:
|
||||
v = uds_values[0x2004]
|
||||
lines.append(f"Timing: {v.value:.1f} deg")
|
||||
|
||||
# Wastegate
|
||||
if 0x39A2 in uds_values:
|
||||
v = uds_values[0x39A2]
|
||||
lines.append(f"Wastegate: {v.value:.0f}%")
|
||||
|
||||
# Gear
|
||||
if 0x3816 in uds_values:
|
||||
v = uds_values[0x3816]
|
||||
gear = int(v.value)
|
||||
gear_str = "R" if gear == -1 else ("N" if gear == 0 else str(gear))
|
||||
lines.append(f"Gear: {gear_str}")
|
||||
# Show any other UDS PIDs not in display order
|
||||
for pid_code, v in sorted(uds_values.items()):
|
||||
if pid_code not in shown_pids:
|
||||
# Use PID name if available
|
||||
name = v.pid.name if hasattr(v, 'pid') and hasattr(v.pid, 'name') else f"0x{pid_code:04X}"
|
||||
lines.append(f"{name}: {v.value:.1f} {v.unit}")
|
||||
elif uds_stats:
|
||||
# UDS is running but no data yet
|
||||
has_uds = True
|
||||
lines.append("--- UDS ---")
|
||||
queries = uds_stats.get("queries", 0)
|
||||
successes = uds_stats.get("successes", 0)
|
||||
lines.append(f"Polling... ({successes}/{queries})")
|
||||
|
||||
if not has_obd2 and not has_uds:
|
||||
lines = ["No vehicle data", "", "Use Actions menu", "to reconnect"]
|
||||
|
||||
Reference in New Issue
Block a user