ha(ux): пробинг отдаёт fatal-reason (одна сессия на недоступном модуле); SWITCH_PROPS без битов
This commit is contained in:
@@ -226,11 +226,12 @@ def probe_template(
|
||||
device_port: int = 80,
|
||||
listen_port: int = 10275,
|
||||
timeout: float = 10.0,
|
||||
) -> tuple[Template | None, dict[Prop, Value]]:
|
||||
) -> tuple[Template | None, dict[Prop, Value], str | None]:
|
||||
"""Определяет шаблон по ответам, перебирая A/B/F короткими сессиями.
|
||||
|
||||
Используется только когда oem_model неизвестна ядру: для известных
|
||||
моделей шаблон берётся из C-таблиц без лишних подключений.
|
||||
Возвращает (template, properties, fatal_reason): если модуль недоступен
|
||||
(или нет слотов/ключ не тот), перебор бессмыслен и причина возвращается
|
||||
третьим элементом, чтобы вызывающий не открывал ещё одну сессию.
|
||||
"""
|
||||
answered: set[Prop] = set()
|
||||
properties: dict[Prop, Value] = {}
|
||||
@@ -248,10 +249,10 @@ def probe_template(
|
||||
# Модуль доступен, но свойств шаблона нет — пробуем дальше.
|
||||
continue
|
||||
# Недоступен/нет слотов/ключ — перебор шаблонов бессмыслен.
|
||||
return None, properties
|
||||
return None, properties, result.reason
|
||||
answered |= result.answered
|
||||
properties.update(result.properties)
|
||||
detected = classify_template(answered)
|
||||
if detected is not None:
|
||||
return detected, properties
|
||||
return classify_template(answered), properties
|
||||
return detected, properties, None
|
||||
return classify_template(answered), properties, None
|
||||
|
||||
Reference in New Issue
Block a user