From bd78e1010dde819b3da70f7f77b11528a9bf421b Mon Sep 17 00:00:00 2001 From: MaD_CaT Date: Tue, 9 Dec 2025 10:26:14 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B5=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=20=D0=BE=D1=82=20ide=20=D1=82=D0=B0=D0=B1=D1=83=D0=BB?= =?UTF-8?q?=D1=8F=D1=86=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/pribor-uf/pribor-uf.gd | 2 +- scenes/tabs-switch/lbl_ready.gd | 36 ++++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/scenes/pribor-uf/pribor-uf.gd b/scenes/pribor-uf/pribor-uf.gd index 4ae83252..8d23ab15 100644 --- a/scenes/pribor-uf/pribor-uf.gd +++ b/scenes/pribor-uf/pribor-uf.gd @@ -90,7 +90,7 @@ func status_uf(status_uf_dic: Dictionary) -> void: elif status_uf_dic['УФ-онлайн']: for socket in status_uf_dic: if not status_uf_dic[socket]: - is_ok = false + is_ok = false if is_ok: $lbl_header2.text = 'Прибор исправен' $lbl_header2.modulate = Color.GREEN diff --git a/scenes/tabs-switch/lbl_ready.gd b/scenes/tabs-switch/lbl_ready.gd index a9dd3d2a..00eadda9 100644 --- a/scenes/tabs-switch/lbl_ready.gd +++ b/scenes/tabs-switch/lbl_ready.gd @@ -79,7 +79,7 @@ func _ready() -> void: # Подписка на УФ signaller.connect('update_uf_serviceability', _on_uf_status_receive) - + # Инициализация начального состояния _recalculate_overall_state() @@ -118,16 +118,16 @@ func _on_uf_status_receive(unit_uf_status: int) -> void: func _recalculate_overall_state() -> void: var new_state := DEVICE_STATE.NONE - + # Проверяем статус ПРД var prd_state := DEVICE_STATE.NONE var has_online_prd := false var all_prd_operational := true - + for observer in device_observers.values(): if observer.status[DEVICE_STATUS.ONLINE]: has_online_prd = true - + if observer.status[DEVICE_STATUS.CONTROL]: if not observer.status[DEVICE_STATUS.STATUS]: all_prd_operational = false @@ -135,7 +135,7 @@ func _recalculate_overall_state() -> void: else: if not observer.status[DEVICE_STATUS.STATUS]: all_prd_operational = false - + if has_online_prd: if all_prd_operational: prd_state = DEVICE_STATE.GOOD @@ -143,19 +143,19 @@ func _recalculate_overall_state() -> void: prd_state = DEVICE_STATE.ERR else: prd_state = DEVICE_STATE.NONE - + # Комбинируем статусы по правилу: # 1. Если хоть один ERROR → ERROR # 2. Если нет ERROR и хоть один GOOD → GOOD # 3. Иначе → NONE - + if prd_state == DEVICE_STATE.ERR or status_uf == DEVICE_STATE.ERR: new_state = DEVICE_STATE.ERR elif prd_state == DEVICE_STATE.GOOD or status_uf == DEVICE_STATE.GOOD: new_state = DEVICE_STATE.GOOD else: new_state = DEVICE_STATE.NONE - + if overall_prd_state != new_state: overall_prd_state = new_state _update_display() @@ -172,11 +172,11 @@ func _update_display() -> void: func _get_tooltip_text() -> String: var tooltip := "" - + # Получаем статистику по ПРД var prd_summary = _get_prd_summary() var uf_status_str = _get_uf_status_text() - + match overall_prd_state: DEVICE_STATE.NONE: tooltip = "Нет исправных систем в комплексе" @@ -184,13 +184,13 @@ func _get_tooltip_text() -> String: tooltip = "Комплекс исправен" DEVICE_STATE.ERR: tooltip = "Обнаружены неисправности в комплексе" - + tooltip += "\n\nСтатус ПРД систем: " + prd_summary tooltip += "\nСтатус УФ: " + uf_status_str - + # Детализация по источникам статуса tooltip += "\n\nСостояние систем:" - + # ПРД системы var prd_ok_count = 0 var prd_total = 0 @@ -199,25 +199,25 @@ func _get_tooltip_text() -> String: prd_total += 1 if observer.status[DEVICE_STATUS.STATUS]: prd_ok_count += 1 - + tooltip += "\nПРД: %d/%d исправно" % [prd_ok_count, prd_total] - + # УФ система tooltip += "\nУФ: " + _get_uf_status_text() - + return tooltip func _get_prd_summary() -> String: var online_count := 0 var operational_count := 0 - + for observer in device_observers.values(): if observer.status[DEVICE_STATUS.ONLINE]: online_count += 1 if observer.status[DEVICE_STATUS.STATUS]: operational_count += 1 - + if online_count == 0: return "Нет связи" else: