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