Доработка мини баров + сообщения оператору

This commit is contained in:
TotMaxim
2025-11-18 16:12:39 +03:00
parent 38c2aa9f80
commit 3fb2601aca
4 changed files with 220 additions and 55 deletions

View File

@@ -17,7 +17,11 @@ func _ready() -> void:
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
for temp in power_amplifier:
temp.value1 = -70
# Подписываемся на сигналы
unit_prd_n.connect('control_is_over', Callable(self, 'on_press_device'))
unit_prd_n.connect('status_updated', Callable(self, '_on_status_updated'))
# Устанавливаем начальный статус
_update_status_text(unit_prd_n.get_current_status())
start_control()
on_press_device()
@@ -50,8 +54,8 @@ static func set_default_state(default_reset_array_node: Array, power_amplifier_a
func _enter_tree() -> void:
if Engine.is_editor_hint():
return
$control_result.text = 'Ожидается запуск контроля ...' # TODO: Необходимо сделать пулл сообщений
$control_result.add_theme_color_override('font_color', Color.ALICE_BLUE)
if unit_prd_n:
_update_status_text(unit_prd_n.get_current_status())
func _exit_tree() -> void:
@@ -94,13 +98,8 @@ func on_press_device() -> void:
var dou_2: Node = $dou2_A5
var module_fs_3: Node = $kasseta_FS_ND/ref_A3
var dou_3: Node = $dou3_A6
var control_data: Dictionary = unit_prd_n.get_control_results()
var for_control_result: Dictionary = {
'control_is_over': unit_prd_n.flag_control_is_over,
'result_dic': unit_prd_n.control_results,
'power_dic': unit_prd_n.power_result,
'block_kasseta_y5_config': unit_prd_n.block_kasseta_y5_config,
'block_ip_config': unit_prd_n.block_ip_config,
'temperature_um' : unit_prd_n.temperature_um,
'nodes_y5': nodes_y5,
'node_ip_power_arr': node_ip_power_arr,
'fs_nodes': fs_nodes,
@@ -113,6 +112,7 @@ func on_press_device() -> void:
'module_fs_3': module_fs_3,
'dou_3': dou_3,
}
for_control_result.merge(control_data, true)
on_control_result(for_control_result)
@@ -154,12 +154,6 @@ static func on_control_result(for_result_dic: Dictionary) -> void:
if block_kasseta_y5_prd_config_n['yau07']:
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
var result: bool = true
for device in result_dic.values():
if not device:
result = false
log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [for_result_dic.name_prd, ['неисправен', 'исправен'][int(result)]])
func find_labels(node1: Node):
@@ -176,3 +170,20 @@ func find_labels(node1: Node):
node1.set_meta("tooltip_set", true)
for child in node1.get_children():
find_labels(child)
func _on_status_updated(status_text: String) -> void:
_update_status_text(status_text)
func _update_status_text(text: String) -> void:
$control_result.text = text
# Можно добавить смену цвета в зависимости от статуса
if "Ошибка" in text or "неисправен" in text:
$control_result.add_theme_color_override('font_color', Color.RED)
log.message(Logger.INFO, 'Прибор ПРД-%s неисправен' % [unit_prd_n.self_name])
elif "Ограничена" in text or "Предупреждение" in text:
$control_result.add_theme_color_override('font_color', Color.YELLOW)
elif "исправен" in text or "завершён" in text:
$control_result.add_theme_color_override('font_color', Color.GREEN)
log.message(Logger.INFO, 'Прибор ПРД-%s исправен' % [unit_prd_n.self_name])