From 1785d23e43e7549b9f6b4b0fdd87108be1892605 Mon Sep 17 00:00:00 2001 From: TotMaxim Date: Tue, 11 Nov 2025 15:17:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D1=82=D1=8F=D0=BD=D1=83?= =?UTF-8?q?=D0=BB=20=D0=BF=D1=80=D0=B4-=D0=BD=20=D0=B8=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B4-=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/pribor-prd-k/pribor-prd-k.gd | 102 +++++++++++++++------------- scenes/pribor-prd-n/pribor-prd-n.gd | 90 ++++++++++++------------ scenes/pribor-prd-v/pribor-prd-v.gd | 6 +- 3 files changed, 105 insertions(+), 93 deletions(-) diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index e316232..2bd6f78 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -14,8 +14,11 @@ func _ready() -> void: var unit_name = get_meta('unit_name')[0] var prd_k_module = prd.prd_dict[unit_name] unit_prd_k = prd_k_module.unit_control - - unit_prd_k.connect('control_is_over', Callable(self, 'on_control_result')) + var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') + for temp in power_amplifier: + temp.value1 = -70 + unit_prd_k.connect('control_is_over', Callable(self, 'on_press_device')) + on_press_device() func start_control() -> void: @@ -36,11 +39,6 @@ func _enter_tree() -> void: return $control_result.text = 'Ожидается запуск контроля ...' # TODO: Необходимо сделать пулл сообщений $control_result.add_theme_color_override('font_color', Color.ALICE_BLUE) - signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false)) - signaller.connect('режим_журнал', Callable(self, 'on_mode_changed').bind(false)) - signaller.connect('режим_эмс', Callable(self, 'on_mode_changed').bind(false)) - signaller.connect('режим_настройки', Callable(self, 'on_mode_changed').bind(false)) - signaller.connect('режим_контроль', Callable(self, 'on_mode_changed').bind(true)) func _exit_tree() -> void: @@ -49,31 +47,11 @@ func _exit_tree() -> void: #prd_k_module.cmd_array.append([unit_prd_k.CmdCode.WRITE_ISA, [constants_k.ADDR_UG_LITERA_1, ug_work_1, constants_k.ADDR_UG_LITERA_2, ug_work_2, constants_k.ADDR_UG_LITERA_3, ug_work_3]]) -func on_line_changed(unit_pribor: Object) -> void: - if not unit_pribor.online: - set_default_state() - - -func on_mode_changed(in_tree: bool) -> void: - if not in_tree: - print_debug('Выход из сцены') - #mashine_timer.stop() - #prd_k_module.cmd_array.append([unit_prd_k.CmdCode.WRITE_ISA, [constants_k.ADDR_UG_LITERA_1, ug_work_1, constants_k.ADDR_UG_LITERA_2, ug_work_2, constants_k.ADDR_UG_LITERA_3, ug_work_3]]) - #signaller.emit_signal('interfer_off_all') - else: - print_debug('Вход в сцену') - #set_default_state() - #control_prd_k.state = control_prd_k.STATE_MASHINE.INIT - #mashine_timer.start() - - -static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, unit_prd: Object) -> void: - #if not control_prd_k.block_kasseta_y5_config.yau07 or not control_prd_k.block_kasseta_y5_config.ukp1 or not control_prd_k.block_kasseta_y5_config.ukp2: - #return - +static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, POWER_THRESHOLD: int) -> void: for i_powapm in power_amplifier: var powamp_meta: String = i_powapm.get_meta('um') var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE + if not pow_dic.has(powamp_meta): return if pow_dic: if not pow_dic.has(powamp_meta): break @@ -85,14 +63,45 @@ static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifi if powamp_meta in ['um_8', 'um_9', 'um_10', 'um_11', 'um_12', 'um_13'] and not fs_result.fs_7: return i_powapm.value0 = pow_dic[powamp_meta] for i_p in pow_dic[powamp_meta]: - if i_p < unit_prd.constants_k.POWER_THRESHOLD: + if i_p < POWER_THRESHOLD: status = STATE_VAL.ERROR i_powapm.state = status -func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: - var block_kasseta_y5_prd_config_k: Dictionary = unit_prd_k.block_kasseta_y5_config +func on_press_device() -> void: var nodes_y5: Array = get_tree().get_nodes_in_group('y-5') + var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') + var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') + var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') + var module_fs_1: Node = $kasseta_fs_kd/ref_A2 + var module_fs_6: Node = $kasseta_fs_kd/ref_A4 + var dou_6: Node = $dou6_A7 + var module_fs_7: Node = $kasseta_fs_kd/ref_A7 + var dou_7: Node = $dou7_A8 + var for_control_result: Dictionary = { + 'result_dic': unit_prd_k.control_results, + 'power_dic': unit_prd_k.power_result, + 'block_kasseta_y5_config': unit_prd_k.block_kasseta_y5_config, + 'block_ip_config': unit_prd_k.block_ip_config, + 'nodes_y5': nodes_y5, + 'node_ip_power_arr': node_ip_power_arr, + 'fs_nodes': fs_nodes, + 'power_amplifier': power_amplifier, + 'POWER_THRESHOLD': unit_prd_k.constants.POWER_THRESHOLD, + 'name_prd': unit_prd_k.self_name, + 'module_fs_1': module_fs_1, + 'module_fs_6': module_fs_6, + 'dou_6': dou_6, + 'module_fs_7': module_fs_7, + 'dou_7': dou_7, + } + on_control_result(for_control_result) + + +func on_control_result(for_result_dic: Dictionary) -> void: + ## If control is end + var block_kasseta_y5_prd_config_k: Dictionary = for_result_dic.block_kasseta_y5_config + var nodes_y5: Array = for_result_dic.nodes_y5 for node_y5 in nodes_y5: var meta_y5 = node_y5.get_meta('y5') if block_kasseta_y5_prd_config_k.has(meta_y5): @@ -108,8 +117,8 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: if block_ip_config_k.has(meta_ip) and block_kasseta_y5_prd_config_k.ug: power_supply.state = STATE_VAL.GOOD if block_ip_config_k[meta_ip][1] else STATE_VAL.ERROR - var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') - for f in fs_nodes: + var result_dic: Dictionary = for_result_dic.result_dic + for f in for_result_dic.fs_nodes: var fs_meta: String = f.get_meta('fs') if result_dic.has(fs_meta): var new_state = result_dic[fs_meta] @@ -117,30 +126,27 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: result_dic[fs_meta] = new_state if result_dic.fs_1 == 1: - $kasseta_fs_kd/ref_A2.state = STATE_VAL.GOOD if result_dic.dkm_1 else STATE_VAL.ERROR + for_result_dic.module_fs_1.state = STATE_VAL.GOOD if result_dic.dkm_1 else STATE_VAL.ERROR else: - result_dic.fs_1 = false + result_dic.fs_1 = 0 if result_dic.fs_6 == 1: - $kasseta_fs_kd/ref_A4.state = STATE_VAL.GOOD if result_dic.dkm_6 else STATE_VAL.ERROR - $dou6_A7.state = STATE_VAL.GOOD if result_dic.dou_6 else STATE_VAL.ERROR + for_result_dic.module_fs_6.state = STATE_VAL.GOOD if result_dic.dkm_6 else STATE_VAL.ERROR + for_result_dic.dou_6.state = STATE_VAL.GOOD if result_dic.dou_6 else STATE_VAL.ERROR else: - result_dic.fs_6 = false + result_dic.fs_6 = 0 if result_dic.fs_7 == 1: - $kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if result_dic.dkm_7 else STATE_VAL.ERROR - $dou7_A8.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR + for_result_dic.module_fs_7.state = STATE_VAL.GOOD if result_dic.dkm_7 else STATE_VAL.ERROR + for_result_dic.dou_7.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR else: - result_dic.fs_7 = false + result_dic.fs_7 = 0 - var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') - power_fill(power_dic, result_dic, power_amplifier, unit_prd_k) + power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD) - var result = true + var result: bool = true for device in result_dic.values(): if not device: result = false - - var name_prd = unit_prd_k.self_name - log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [name_prd, ['неисправен', 'исправен'][int(result)]]) + log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [for_result_dic.name_prd, ['неисправен', 'исправен'][int(result)]]) func find_labels(node1: Node): diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index 351ec2e..842b539 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.gd +++ b/scenes/pribor-prd-n/pribor-prd-n.gd @@ -14,8 +14,11 @@ func _ready() -> void: var unit_name = get_meta('unit_name')[0] var prd_n_module = prd.prd_dict[unit_name] unit_prd_n = prd_n_module.unit_control - - unit_prd_n.connect('control_is_over', Callable(self, 'on_control_result')) + 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')) + on_press_device() func start_control() -> void: @@ -36,11 +39,6 @@ func _enter_tree() -> void: return $control_result.text = 'Ожидается запуск контроля ...' # TODO: Необходимо сделать пулл сообщений $control_result.add_theme_color_override('font_color', Color.ALICE_BLUE) - signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false)) - signaller.connect('режим_журнал', Callable(self, 'on_mode_changed').bind(false)) - signaller.connect('режим_эмс', Callable(self, 'on_mode_changed').bind(false)) - signaller.connect('режим_настройки', Callable(self, 'on_mode_changed').bind(false)) - signaller.connect('режим_контроль', Callable(self, 'on_mode_changed').bind(true)) func _exit_tree() -> void: @@ -49,30 +47,11 @@ func _exit_tree() -> void: #prd_n_module.cmd_array.append([unit_prd_n.CmdCode.WRITE_ISA, [constants_n.ADDR_UG_LITERA_1, ug_work_1, constants_n.ADDR_UG_LITERA_2, ug_work_2]]) -func on_line_changed(unit_pribor: Object) -> void: - if not unit_pribor.online: - set_default_state() - - -func on_mode_changed(in_tree: bool) -> void: - if not in_tree: - print_debug('Выход из сцены') - #mashine_timer.stop() - #signaller.emit_signal('interfer_off_all') - #prd_n_module.cmd_array.append([unit_prd_n.CmdCode.WRITE_ISA, [constants_n.ADDR_UG_LITERA_1, ug_work_1, constants_n.ADDR_UG_LITERA_2, ug_work_2]]) - else: - print_debug('Вход в сцену') - #set_default_state() - #control_prd_n.state = control_prd_n.STATE_MASHINE.INIT - #mashine_timer.start() - - -static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, unit_prd: Object) -> void: - #if not control_prd_n.block_kasseta_y5_config.yau07 or not control_prd_n.block_kasseta_y5_config.ukp1 or not control_prd_n.block_kasseta_y5_config.ukp2: - #return +static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier: Array, POWER_THRESHOLD: int) -> void: for i_powapm in power_amplifier: var powamp_meta: String = i_powapm.get_meta('um') var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE + if not pow_dic.has(powamp_meta): return if pow_dic[powamp_meta].size() < 6: status = STATE_VAL.ERROR else: @@ -80,14 +59,43 @@ static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifi if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_3: return i_powapm.value0 = pow_dic[powamp_meta] for i_p in pow_dic[powamp_meta]: - if i_p < unit_prd.constants_n.POWER_THRESHOLD: + if i_p < POWER_THRESHOLD: status = STATE_VAL.ERROR i_powapm.state = status -func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: - var block_kasseta_y5_prd_config_n: Dictionary = unit_prd_n.block_kasseta_y5_config +func on_press_device() -> void: var nodes_y5: Array = get_tree().get_nodes_in_group('y-5') + var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') + var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') + var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') + var module_fs_2: Node = $kasseta_FS_ND/ref_A4 + var dou_2: Node = $dou2_A5 + var module_fs_3: Node = $kasseta_FS_ND/ref_A3 + var dou_3: Node = $dou3_A6 + var for_control_result: Dictionary = { + '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, + 'nodes_y5': nodes_y5, + 'node_ip_power_arr': node_ip_power_arr, + 'fs_nodes': fs_nodes, + 'power_amplifier': power_amplifier, + 'POWER_THRESHOLD': unit_prd_n.constants.POWER_THRESHOLD, + 'name_prd': unit_prd_n.self_name, + 'module_fs_2': module_fs_2, + 'dou_2': dou_2, + 'module_fs_3': module_fs_3, + 'dou_3': dou_3, + } + on_control_result(for_control_result) + + +func on_control_result(for_result_dic: Dictionary) -> void: + ## If control is end + var block_kasseta_y5_prd_config_n: Dictionary = for_result_dic.block_kasseta_y5_config + var nodes_y5: Array = for_result_dic.nodes_y5 for node_y5 in nodes_y5: var meta_y5 = node_y5.get_meta('y5') if block_kasseta_y5_prd_config_n.has(meta_y5): @@ -103,8 +111,8 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: if block_ip_config_n.has(meta_ip) and block_kasseta_y5_prd_config_n.ug: power_supply.state = STATE_VAL.GOOD if block_ip_config_n[meta_ip][1] else STATE_VAL.ERROR - var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') - for f in fs_nodes: + var result_dic: Dictionary = for_result_dic.result_dic + for f in for_result_dic.fs_nodes: var fs_meta: String = f.get_meta('fs') if result_dic.has(fs_meta): var new_state = result_dic[fs_meta] @@ -112,26 +120,24 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: result_dic[fs_meta] = new_state if result_dic.fs_2 == 1: - $kasseta_FS_ND/ref_A4.state = STATE_VAL.GOOD if result_dic.dkm_2 else STATE_VAL.ERROR - $dou2_A5.state = STATE_VAL.GOOD if result_dic.dou_2 else STATE_VAL.ERROR + for_result_dic.module_fs_2.state = STATE_VAL.GOOD if result_dic.dkm_2 else STATE_VAL.ERROR + for_result_dic.dou_2.state = STATE_VAL.GOOD if result_dic.dou_2 else STATE_VAL.ERROR else: result_dic.fs_2 = 0 if result_dic.fs_3 == 1: - $kasseta_FS_ND/ref_A3.state = STATE_VAL.GOOD if result_dic.dkm_3 else STATE_VAL.ERROR - $dou3_A6.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR + for_result_dic.module_fs_3.state = STATE_VAL.GOOD if result_dic.dkm_3 else STATE_VAL.ERROR + for_result_dic.dou_3.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR else: result_dic.fs_3 = 0 - var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') - power_fill(power_dic, result_dic, power_amplifier, unit_prd_n) + power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD) - var result = true + var result: bool = true for device in result_dic.values(): if not device: result = false - var name_prd = unit_prd_n.self_name - log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [name_prd, ['неисправен', 'исправен'][int(result)]]) + log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [for_result_dic.name_prd, ['неисправен', 'исправен'][int(result)]]) func find_labels(node1: Node): diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index 6548dab..76c3950 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -41,7 +41,6 @@ func _enter_tree() -> void: $control_result.add_theme_color_override('font_color', Color.ALICE_BLUE) - func _exit_tree() -> void: if Engine.is_editor_hint(): return @@ -94,6 +93,7 @@ func on_press_device() -> void: static func on_control_result(for_result_dic: Dictionary) -> void: + ## If control is end var block_kasseta_y5_prd_config_v: Dictionary = for_result_dic.block_kasseta_y5_config var nodes_y5: Array = for_result_dic.nodes_y5 for node_y5 in nodes_y5: @@ -110,7 +110,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void: if block_ip_config_v.has(meta_ip) and block_kasseta_y5_prd_config_v.ug: power_supply.state = STATE_VAL.GOOD if block_ip_config_v[meta_ip][1] else STATE_VAL.ERROR - var result_dic = for_result_dic.result_dic + var result_dic: Dictionary = for_result_dic.result_dic for f in for_result_dic.fs_nodes: var fs_meta: String = f.get_meta('fs') if result_dic.has(fs_meta): @@ -131,7 +131,7 @@ static func on_control_result(for_result_dic: Dictionary) -> void: power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD) - var result = true + var result: bool = true for device in result_dic.values(): if not device: result = false