From 87b4e83c314f25b3a6d603d5871304ce20efc17a Mon Sep 17 00:00:00 2001 From: sasha80 Date: Thu, 9 Oct 2025 14:08:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.=20=D0=A0=D0=B5=D0=B6=D0=B8=D0=BC=20=D0=9A=D0=BE?= =?UTF-8?q?=D0=BD=D1=82=D1=80=D0=BE=D0=BB=D1=8C.=20=D0=9F=D1=80=D0=B8?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=D1=8B=20=D0=9F=D0=A0=D0=94.=20=D0=9F=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20=D0=BD=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D1=87=D0=B8=D1=8F=20=D0=94=D0=9A=D0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/pribor-prd-k/pribor-prd-k.gd | 7 +++++-- scripts/pribor-prd.gd | 9 +++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index 3c7b47f..b392fac 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -166,7 +166,7 @@ func on_mode_changed(in_tree: bool) -> void: mashine_timer.start() -func power_fill(pow_dic: Dictionary) -> void: +func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> 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 var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') @@ -179,6 +179,9 @@ func power_fill(pow_dic: Dictionary) -> void: if pow_dic[powamp_meta].size() < 6: status = STATE_VAL.ERROR else: + if powamp_meta == 'um_7' and not fs_result.fs_1: return + if powamp_meta in ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'] and not fs_result.fs_6: return + 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 < constants_k.POWER_THRESHOLD: @@ -228,7 +231,7 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: else: result_dic.fs_7 = false - power_fill(power_dic) + power_fill(power_dic, result_dic) var result = true for device in result_dic.values(): diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index 6031b73..121c283 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -61,6 +61,7 @@ class TestPRD extends Node: var state: int = STATE_MASHINE.INIT var current_litera: int var flag_timer_started: bool = false + var flag_fs_status_ok: bool = false var unit_prd: Object var module_prd: Object var power_amplify: Array @@ -123,6 +124,7 @@ class TestPRD extends Node: var fs_result := {fs_key: 0} fs_result = on_fs_state(packet_type_7, fs_mapping, fs_result) control_results[fs_key] = fs_result[fs_key] + flag_fs_status_ok = control_results[fs_key] == 1 ## @@ -134,13 +136,14 @@ class TestPRD extends Node: _handle_fs_turn_on_state() state = STATE_MASHINE.FS_WORK STATE_MASHINE.FS_WORK: - if ecms.size(): + if ecms.size() and flag_fs_status_ok: _handle_fs_work_state() STATE_MASHINE.CHEK_KASSETA_Y5: if block_kasseta_y5_config['yau07']: state = STATE_MASHINE.WRITE_ISA STATE_MASHINE.WRITE_ISA: _handle_ug_set_state(0x6) + await get_tree().create_timer(1.5).timeout state = STATE_MASHINE.READ_ISA STATE_MASHINE.READ_ISA: if (unit_prd.cmd_state == unit_prd.CmdState.DONE) or (unit_prd.cmd_state == unit_prd.CmdState.FAIL): @@ -171,7 +174,7 @@ class TestPRD extends Node: STATE_MASHINE.UG_SET_RAY_0: _handle_ug_set_state(0x0) - await get_tree().create_timer(1.2).timeout + await get_tree().create_timer(0.5).timeout state = STATE_MASHINE.READ_ISA STATE_MASHINE.UG_SET_RAY_1: _handle_ug_set_state(0x1) @@ -263,6 +266,7 @@ class TestPRD extends Node: func _handle_fs_turn_off_state() -> void: control_label.text = 'Выполняется отключение ФС-%s' % current_litera + flag_fs_status_ok = false manage_fs(false, self_name, pribor_config, fs_parameters, current_litera, constants.POWER_UM) @@ -421,6 +425,7 @@ class TestPRD extends Node: params.width, sectors[litera - 1] if litera == 1 else sectors[litera - 5] if litera > 5 else sectors[litera - 4] if litera > 3 else sectors[litera - 2] ]) + signaller.emit_signal('emit_changed', mode) signaller.emit_signal('interfer_init', interfer_name, fs_arr, power_um)