41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
# =============================
|
||
# app/tabs/dtc.py
|
||
# =============================
|
||
|
||
from __future__ import annotations
|
||
import tkinter as tk
|
||
from tkinter import ttk
|
||
from typing import Dict, Any
|
||
|
||
DTC_LIST = [
|
||
("P0300", "Random/Multiple Cylinder Misfire"),
|
||
("P0130", "O2 Sensor Circuit (Bank1-Sensor1)"),
|
||
("C0035", "Wheel Speed Sensor LF"),
|
||
("U0121", "Lost Communication With ABS")
|
||
]
|
||
|
||
class DtcTab:
|
||
def __init__(self, parent, sim):
|
||
self.sim = sim
|
||
self.frame = ttk.Frame(parent, padding=8)
|
||
self.vars: Dict[str, tk.BooleanVar] = {}
|
||
row = 0
|
||
ttk.Label(self.frame, text="Diagnose-Flags (Demo)", style="Header.TLabel").grid(row=row, column=0, sticky="w"); row += 1
|
||
for code, label in DTC_LIST:
|
||
var = tk.BooleanVar(value=False)
|
||
ttk.Checkbutton(self.frame, text=f"{code} – {label}", variable=var).grid(row=row, column=0, sticky="w")
|
||
self.vars[code] = var; row += 1
|
||
ttk.Button(self.frame, text="Alle löschen", command=self.clear_all).grid(row=row, column=0, sticky="w", pady=(8,0))
|
||
|
||
def clear_all(self):
|
||
for v in self.vars.values(): v.set(False)
|
||
|
||
def save_into_config(self, out: Dict[str, Any]) -> None:
|
||
out.setdefault("dtc", {})
|
||
out["dtc"].update({code: bool(v.get()) for code, v in self.vars.items()})
|
||
|
||
def load_from_config(self, cfg: Dict[str, Any]) -> None:
|
||
dtc = cfg.get("dtc", {})
|
||
for code, v in self.vars.items():
|
||
v.set(bool(dtc.get(code, False)))
|
||
self.sim.load_config(cfg) |