All checks were successful
ENGIN CI / Build, test and smoke (push) Successful in 2m58s
75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
"""Stable domain and UI configuration kept outside the presentation layer."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
FREQ_COLS = [f"mV_{frequency}" for frequency in range(21)]
|
|
LABELS = ["ok", "zakoksowany", "lejacy", "pompa", "iglica", "unknown"]
|
|
FAULT_LABELS = ["zakoksowany", "lejacy", "pompa", "iglica"]
|
|
SEVERITIES = ["male", "srednie", "duze"]
|
|
NOT_APPLICABLE = "nie_dotyczy"
|
|
ALLOWED_ENGINE_SIZES = (8, 12, 16)
|
|
MAX_UPLOAD_BYTES = 10 * 1024 * 1024
|
|
MAX_MISSING_FRACTION_PER_CYLINDER = 0.50
|
|
|
|
LABEL_DISPLAY = {
|
|
"ok": "Sprawny",
|
|
"zakoksowany": "Zakoksowany",
|
|
"lejacy": "Lejący",
|
|
"pompa": "Pompa",
|
|
"iglica": "Iglica",
|
|
"unknown": "Nieznana anomalia",
|
|
}
|
|
|
|
SEVERITY_DISPLAY = {
|
|
NOT_APPLICABLE: "Nie dotyczy",
|
|
"male": "Małe",
|
|
"srednie": "Średnie",
|
|
"duze": "Duże",
|
|
}
|
|
|
|
LABEL_COLORS = {
|
|
"ok": "#38d996",
|
|
"zakoksowany": "#f5a524",
|
|
"lejacy": "#ff6b57",
|
|
"pompa": "#a78bfa",
|
|
"iglica": "#28b7d9",
|
|
"unknown": "#d56cff",
|
|
}
|
|
|
|
LABEL_ICONS = {
|
|
"ok": "●",
|
|
"zakoksowany": "▲",
|
|
"lejacy": "◆",
|
|
"pompa": "■",
|
|
"iglica": "⬟",
|
|
"unknown": "?",
|
|
}
|
|
|
|
RECOMMENDATIONS = {
|
|
"ok": "Brak natychmiastowej interwencji. Kontynuuj standardowy harmonogram kontroli.",
|
|
"zakoksowany": "Sprawdź nagar na końcówce wtryskiwacza i jakość rozpylania. Rozważ czyszczenie oraz ponowny pomiar.",
|
|
"lejacy": "Skontroluj szczelność wtryskiwacza, przelew i ciśnienie paliwa. Ogranicz dalszą pracę przy dużym nasileniu.",
|
|
"pompa": "Zweryfikuj ciśnienie pompy, stabilność zasilania i przewody paliwowe przed wymianą elementów.",
|
|
"iglica": "Sprawdź ruch iglicy, opory mechaniczne oraz charakter rozpylania wtryskiwacza.",
|
|
"unknown": "Wynik jest anomalny, lecz nie pasuje pewnie do znanych sygnatur. Wykonaj pomiar kontrolny i diagnostykę manualną.",
|
|
}
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class AppConfig:
|
|
allowed_engine_sizes: tuple[int, ...] = ALLOWED_ENGINE_SIZES
|
|
max_upload_bytes: int = MAX_UPLOAD_BYTES
|
|
max_missing_fraction_per_cylinder: float = MAX_MISSING_FRACTION_PER_CYLINDER
|
|
|
|
|
|
__all__ = [
|
|
"AppConfig",
|
|
"FAULT_LABELS",
|
|
"FREQ_COLS",
|
|
"LABELS",
|
|
"NOT_APPLICABLE",
|
|
"SEVERITIES",
|
|
]
|