🚧 WIP
This commit is contained in:
@@ -66,4 +66,25 @@ def decode_quality(raw: int) -> QualityInfo:
|
||||
name = _QUALITY_NAMES.get(low)
|
||||
if name is None:
|
||||
name = f"{_class_of(low).value}_0x{low:02X}"
|
||||
return QualityInfo(raw=raw, name=name, quality_class=_class_of(low))
|
||||
return QualityInfo(raw=raw, name=name, quality_class=_class_of(low))
|
||||
|
||||
|
||||
def status_text(raw: int) -> str:
|
||||
"""Clear-text status with the raw code in parentheses (SPECIFICATION §7).
|
||||
|
||||
Every reporter writes quality this way — e.g. ``BAD / COMM FAILURE
|
||||
(0x18)`` — so nobody decodes hex by hand while the raw code stays
|
||||
available for unambiguous correlation with vendor documentation.
|
||||
"""
|
||||
info = decode_quality(raw)
|
||||
classes = {c.value for c in QualityClass}
|
||||
name = info.name
|
||||
for cls in classes:
|
||||
prefix = cls + "_"
|
||||
if name.startswith(prefix):
|
||||
sub = name[len(prefix):].replace("_", " ")
|
||||
name = f"{cls} / {sub}" if sub else cls
|
||||
break
|
||||
else:
|
||||
name = name.replace("_", " ")
|
||||
return f"{name} ({info.raw_hex})"
|
||||
Reference in New Issue
Block a user