From a2c7f5185fb36b050beba962feaebd4ba061be9e Mon Sep 17 00:00:00 2001 From: Maxim Date: Mon, 25 Aug 2025 11:52:28 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BC=D0=BE=D1=89=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= =?UTF-8?q?=20=D0=BE=D1=82=20=D1=83=D0=BC=20=D0=B8=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D1=86=D0=B5?= =?UTF-8?q?=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/pribor-prd-k/pribor-prd-k.gd | 35 +++++-- scenes/pribor-prd-k/pribor-prd-k.tscn | 23 ++++- scenes/pribor-prd-n/pribor-prd-n.gd | 27 +++++- scenes/pribor-prd-n/pribor-prd-n.tscn | 112 ++++++++++------------ scenes/pribor-prd-v/pribor-prd-v.gd | 25 ++++- scenes/pribor-prd-v/pribor-prd-v.tscn | 114 ++++++++++------------ scenes/контроль/блок-в.tscn | 19 ++-- scripts/pribor-prd.gd | 132 ++++++++++++++++++-------- 8 files changed, 282 insertions(+), 205 deletions(-) diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index 4fc4616c..de584de5 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -13,7 +13,7 @@ const constants_k: Dictionary = { 'ADDR_UG_LITERA_3': 0x10A, 'TEMP_THRESHOLD': 40, 'POWER_THRESHOLD': 40, - 'TIMER_DELAY': 5.0, + 'TIMER_DELAY': 0.50, 'RAY_DOU_NUM': 0x3, 'ATT_UM_1': 0x0, 'ATT_UM_6': 0x7, @@ -97,11 +97,6 @@ func _ready() -> void: func on_state_mashine() -> void: control_prd_k.state_control_machine() - $um1535_A10.value0 = [10, 20, 30, 40, 50, 60] - $um1535_A11.value0 = [60, 50, 40, 30, 20, 10] - $um1535_A12.set_value0_by_index(5, 100) - $um1535_A13.set_value0_by_index(2, 0) - $um1535_A13.value1 = -20 func initialize_connections() -> void: @@ -174,7 +169,25 @@ func on_mode_changed(in_tree: bool) -> void: mashine_timer.start() -func on_control_result(result_dic: Dictionary) -> void: +func power_fill(pow_dic: Dictionary) -> void: + var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') + 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 pow_dic: + if not pow_dic.has(powamp_meta): + break + if pow_dic[powamp_meta].size() < 6: + status = STATE_VAL.ERROR + else: + i_powapm.value0 = pow_dic[powamp_meta] + for i_p in pow_dic[powamp_meta]: + if i_p < constants_k.POWER_THRESHOLD: + status = STATE_VAL.ERROR + i_powapm.state = status + + +func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: mashine_timer.stop() block_kasseta_y5_prd_config_k = control_prd_k.block_kasseta_y5_config var nodes_y5: Array = get_tree().get_nodes_in_group('y-5') @@ -183,7 +196,7 @@ func on_control_result(result_dic: Dictionary) -> void: if block_kasseta_y5_prd_config_k.has(meta_y5): if block_kasseta_y5_prd_config_k['yau07'] == false: node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE - return + break node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_k[meta_y5] else STATE_VAL.ERROR block_ip_config_k = control_prd_k.block_ip_config @@ -212,6 +225,8 @@ func on_control_result(result_dic: Dictionary) -> void: $kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if dkm.dkm_7 else STATE_VAL.ERROR $dou7_A8.state = STATE_VAL.GOOD if result_dic.dou_7 else STATE_VAL.ERROR + power_fill(power_dic) + var result = true for device in result_dic.values(): if not device: @@ -220,7 +235,7 @@ func on_control_result(result_dic: Dictionary) -> void: var name_prd = control_prd_k.self_name if result: $control_result.text = 'Прибор ПРД-%s исправен' % name_prd - $control_result.add_theme_color_override('font_color', Color.AQUAMARINE) + $control_result.add_theme_color_override('font_color', Color.GREEN) else: $control_result.text = 'Прибор ПРД-%s неисправен' % name_prd - $control_result.add_theme_color_override('font_color', Color.CRIMSON) + $control_result.add_theme_color_override('font_color', Color.RED) diff --git a/scenes/pribor-prd-k/pribor-prd-k.tscn b/scenes/pribor-prd-k/pribor-prd-k.tscn index a3601a78..6c859216 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.tscn +++ b/scenes/pribor-prd-k/pribor-prd-k.tscn @@ -1,11 +1,10 @@ -[gd_scene load_steps=16 format=3 uid="uid://m5s87q7m66lj"] +[gd_scene load_steps=15 format=3 uid="uid://m5s87q7m66lj"] [ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="1_8dmgr"] [ext_resource type="Script" uid="uid://cwvikiygf8b1m" path="res://scenes/pribor-prd-k/pribor-prd-k.gd" id="1_tpdyp"] [ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="2_14h25"] [ext_resource type="PackedScene" uid="uid://cm5jd4gjrrpba" path="res://scenes/контроль/кассета-у-5-к.tscn" id="2_tb85r"] [ext_resource type="PackedScene" uid="uid://bcyxqni7gxvtq" path="res://scenes/контроль/блок-в.tscn" id="5_c7lv8"] -[ext_resource type="PackedScene" uid="uid://bkxblfoj7ejv0" path="res://scenes/контроль/блок-а.tscn" id="6_fmhtx"] [ext_resource type="PackedScene" uid="uid://bmagw8nd0ulhj" path="res://scenes/pribor-prd-k/kasseta-fs-kd.tscn" id="7_ia27q"] [ext_resource type="Script" uid="uid://crpedygm3gohi" path="res://scenes/контроль/кассета.gd" id="7_xpa2n"] [ext_resource type="PackedScene" uid="uid://dq31j24gv5vi4" path="res://scenes/контроль/кассета-п-2.tscn" id="8_6fdp7"] @@ -120,10 +119,12 @@ offset_left = 485.0 offset_top = 242.0 offset_right = 652.0 offset_bottom = 337.0 +value0 = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] fname = "УМ1535Б" rname = "A10" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_1" [node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -135,6 +136,7 @@ fname = "УМ1535Б" rname = "A11" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_2" [node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -146,6 +148,7 @@ fname = "УМ1535Б" rname = "A12" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_3" [node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -157,6 +160,7 @@ fname = "УМ1535Б" rname = "A13" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_4" [node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -168,6 +172,7 @@ fname = "УМ1535Б" rname = "A14" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_5" [node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -179,17 +184,19 @@ fname = "УМ1535Б" rname = "A15" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_6" -[node name="utm80_A9" parent="." groups=["power_amplifier"] instance=ExtResource("6_fmhtx")] +[node name="utm80_A9" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 offset_left = 485.0 offset_top = 812.0 offset_right = 652.0 offset_bottom = 907.0 -value_name0 = "°C" -value_name1 = "P, %" fname = "УТМ80" rname = "A9" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_7" [node name="rm1620m_A16" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -201,6 +208,7 @@ fname = "РМ16-20М" rname = "A16" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_8" [node name="rm1620m_A17" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -212,6 +220,7 @@ fname = "РМ16-20М" rname = "A17" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_9" [node name="rm1620m_A18" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -223,6 +232,7 @@ fname = "РМ16-20М" rname = "A18" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_10" [node name="rm1620m_A19" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -234,6 +244,7 @@ fname = "РМ16-20М" rname = "A19" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_11" [node name="rm1620m_A20" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -245,6 +256,7 @@ fname = "РМ16-20М" rname = "A20" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_12" [node name="rm1620m_A21" parent="." groups=["power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -256,6 +268,7 @@ fname = "РМ16-20М" rname = "A21" value0_info = "Мощность, Вт" value1_info = "Температура,°C" +metadata/um = "um_13" [node name="kasseta_fs_kd" parent="." instance=ExtResource("7_ia27q")] layout_mode = 0 diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index 603619b9..e6fe22f8 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.gd +++ b/scenes/pribor-prd-n/pribor-prd-n.gd @@ -12,7 +12,7 @@ const constants_n = { 'ADDR_UG_LITERA_3': 0x10A, 'TEMP_THRESHOLD': 70, 'POWER_THRESHOLD': 40, - 'TIMER_DELAY': 5.0, + 'TIMER_DELAY': 0.10, 'RAY_DOU_NUM': 0x3, 'ATT_UM_2': 0x7, 'ATT_UM_3': 0x7, @@ -163,7 +163,22 @@ func on_mode_changed(in_tree: bool) -> void: mashine_timer.start() -func on_control_result(result_dic: Dictionary) -> void: +func power_fill(pow_dic: Dictionary) -> void: + var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') + for i_powapm in power_amplifier: + var powamp_meta: String = i_powapm.get_meta('um') + var status = STATE_VAL.GOOD + if pow_dic[powamp_meta].size() < 6: + status = STATE_VAL.ERROR + else: + i_powapm.value0 = pow_dic[powamp_meta] + for i_p in pow_dic[powamp_meta]: + if i_p < constants_n.POWER_THRESHOLD: + status = STATE_VAL.ERROR + i_powapm.state = status + + +func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: mashine_timer.stop() block_kasseta_y5_prd_config_n = control_prd_n.block_kasseta_y5_config var nodes_y5: Array = get_tree().get_nodes_in_group('y-5') @@ -172,7 +187,7 @@ func on_control_result(result_dic: Dictionary) -> void: if block_kasseta_y5_prd_config_n.has(meta_y5): if block_kasseta_y5_prd_config_n['yau07'] == false: node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE - return + break node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR block_ip_config_n = control_prd_n.block_ip_config @@ -199,6 +214,8 @@ func on_control_result(result_dic: Dictionary) -> void: $kasseta_FS_ND/ref_A3.state = STATE_VAL.GOOD if dkm.dkm_3 else STATE_VAL.ERROR $dou3_A6.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR + power_fill(power_dic) + var result = true for device in result_dic.values(): if not device: @@ -207,7 +224,7 @@ func on_control_result(result_dic: Dictionary) -> void: var name_prd = control_prd_n.self_name if result: $control_result.text = 'Прибор ПРД-%s исправен' % name_prd - $control_result.add_theme_color_override('font_color', Color.AQUAMARINE) + $control_result.add_theme_color_override('font_color', Color.GREEN) else: $control_result.text = 'Прибор ПРД-%s неисправен' % name_prd - $control_result.add_theme_color_override('font_color', Color.CRIMSON) + $control_result.add_theme_color_override('font_color', Color.RED) diff --git a/scenes/pribor-prd-n/pribor-prd-n.tscn b/scenes/pribor-prd-n/pribor-prd-n.tscn index 151bb06b..ae171850 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.tscn +++ b/scenes/pribor-prd-n/pribor-prd-n.tscn @@ -5,8 +5,8 @@ [ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="3_meukj"] [ext_resource type="PackedScene" uid="uid://bk1655p4e8y4u" path="res://scenes/контроль/кассета-у-5-нв.tscn" id="4_xkifg"] [ext_resource type="Script" uid="uid://crpedygm3gohi" path="res://scenes/контроль/кассета.gd" id="6_b5wvk"] +[ext_resource type="PackedScene" uid="uid://bcyxqni7gxvtq" path="res://scenes/контроль/блок-в.tscn" id="7_bnnv3"] [ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="7_eoqf2"] -[ext_resource type="PackedScene" uid="uid://bkxblfoj7ejv0" path="res://scenes/контроль/блок-а.tscn" id="8_sia5h"] [ext_resource type="Texture2D" uid="uid://belwchvdktrw0" path="res://data/эмс-бланк.png" id="9_k1x0o"] [ext_resource type="Texture2D" uid="uid://bwddxs24es81u" path="res://data/эмс-бланк-пост.png" id="10_7dcjd"] [ext_resource type="Texture2D" uid="uid://pfoscstbm025" path="res://data/эмс-бланк-перем.png" id="11_ius1v"] @@ -223,161 +223,149 @@ text = "Кассета П-1" horizontal_alignment = 1 vertical_alignment = 1 -[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 485.0 offset_top = 242.0 offset_right = 652.0 offset_bottom = 337.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) -fname = "УМ1535А" +fname = "УМ1535Б" rname = "A7" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_1" -[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 485.0 offset_top = 337.0 offset_right = 652.0 offset_bottom = 432.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A8" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_2" -[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 485.0 offset_top = 432.0 offset_right = 652.0 offset_bottom = 527.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A9" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_3" -[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 485.0 offset_top = 527.0 offset_right = 652.0 offset_bottom = 622.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A10" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_4" -[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 485.0 offset_top = 622.0 offset_right = 652.0 offset_bottom = 717.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A11" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_5" -[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 485.0 offset_top = 717.0 offset_right = 652.0 offset_bottom = 812.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A12" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_6" -[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 8.0 offset_top = 242.0 offset_right = 175.0 offset_bottom = 337.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A13" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_7" -[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 8.0 offset_top = 337.0 offset_right = 175.0 offset_bottom = 432.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A14" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_8" -[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 8.0 offset_top = 432.0 offset_right = 175.0 offset_bottom = 527.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A15" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_9" -[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 8.0 offset_top = 527.0 offset_right = 175.0 offset_bottom = 622.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A16" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_10" -[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 8.0 offset_top = 622.0 offset_right = 175.0 offset_bottom = 717.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A17" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_11" -[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("8_sia5h")] +[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 offset_left = 8.0 offset_top = 717.0 offset_right = 175.0 offset_bottom = 812.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A18" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_12" [node name="Monitoring_panel" type="Panel" parent="."] visible = false diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index a5a5737a..6307f897 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -161,7 +161,22 @@ func on_mode_changed(in_tree: bool) -> void: mashine_timer.start() -func on_control_result(result_dic: Dictionary) -> void: +func power_fill(pow_dic: Dictionary) -> void: + var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') + for i_powapm in power_amplifier: + var powamp_meta: String = i_powapm.get_meta('um') + var status = STATE_VAL.GOOD + if pow_dic[powamp_meta].size() < 6: + status = STATE_VAL.ERROR + else: + i_powapm.value0 = pow_dic[powamp_meta] + for i_p in pow_dic[powamp_meta]: + if i_p < constants_v.POWER_THRESHOLD: + status = STATE_VAL.ERROR + i_powapm.state = status + + +func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: mashine_timer.stop() block_kasseta_y5_prd_config_v = control_prd_v.block_kasseta_y5_config var nodes_y5: Array = get_tree().get_nodes_in_group('y-5') @@ -170,7 +185,7 @@ func on_control_result(result_dic: Dictionary) -> void: if block_kasseta_y5_prd_config_v.has(meta_y5): if block_kasseta_y5_prd_config_v['yau07'] == false: node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE - return + break node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_v[meta_y5] else STATE_VAL.ERROR block_ip_config_v = control_prd_v.block_ip_config @@ -197,6 +212,8 @@ func on_control_result(result_dic: Dictionary) -> void: $kasseta_FS_VD/ref_A6.state = STATE_VAL.GOOD if dkm.dkm_5 else STATE_VAL.ERROR $dou5_A6.state = STATE_VAL.GOOD if result_dic.dou_5 else STATE_VAL.ERROR + power_fill(power_dic) + var result = true for device in result_dic.values(): if not device: @@ -205,7 +222,7 @@ func on_control_result(result_dic: Dictionary) -> void: var name_prd = control_prd_v.self_name if result: $control_result.text = 'Прибор ПРД-%s исправен' % name_prd - $control_result.add_theme_color_override('font_color', Color.AQUAMARINE) + $control_result.add_theme_color_override('font_color', Color.GREEN) else: $control_result.text = 'Прибор ПРД-%s неисправен' % name_prd - $control_result.add_theme_color_override('font_color', Color.CRIMSON) + $control_result.add_theme_color_override('font_color', Color.RED) diff --git a/scenes/pribor-prd-v/pribor-prd-v.tscn b/scenes/pribor-prd-v/pribor-prd-v.tscn index 38702ac3..4f502206 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.tscn +++ b/scenes/pribor-prd-v/pribor-prd-v.tscn @@ -7,7 +7,7 @@ [ext_resource type="PackedScene" uid="uid://cd5sue1e8iyrv" path="res://scenes/pribor-prd-n/kasseta-fs-nd.tscn" id="5_nhd2k"] [ext_resource type="Script" uid="uid://crpedygm3gohi" path="res://scenes/контроль/кассета.gd" id="6_os4mt"] [ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="7_38u2b"] -[ext_resource type="PackedScene" uid="uid://bkxblfoj7ejv0" path="res://scenes/контроль/блок-а.tscn" id="7_e22c6"] +[ext_resource type="PackedScene" uid="uid://bcyxqni7gxvtq" path="res://scenes/контроль/блок-в.tscn" id="8_4e87c"] [ext_resource type="Texture2D" uid="uid://belwchvdktrw0" path="res://data/эмс-бланк.png" id="10_4e87c"] [ext_resource type="Texture2D" uid="uid://bwddxs24es81u" path="res://data/эмс-бланк-пост.png" id="11_g8fvp"] [ext_resource type="Texture2D" uid="uid://pfoscstbm025" path="res://data/эмс-бланк-перем.png" id="12_gsby4"] @@ -172,163 +172,149 @@ text = "Кассета П-1В" horizontal_alignment = 1 vertical_alignment = 1 -[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 485.0 offset_top = 242.0 offset_right = 652.0 offset_bottom = 337.0 -step0 = 1.0 -step1 = 1.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) -fname = "УМ1535А" +fname = "УМ1535Б" rname = "A7" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_1" -[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 485.0 offset_top = 337.0 offset_right = 652.0 offset_bottom = 432.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A8" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_2" -[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 485.0 offset_top = 432.0 offset_right = 652.0 offset_bottom = 527.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A9" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_3" -[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 485.0 offset_top = 527.0 offset_right = 652.0 offset_bottom = 622.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A10" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_4" -[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 485.0 offset_top = 622.0 offset_right = 652.0 offset_bottom = 717.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A11" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_5" -[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 485.0 offset_top = 717.0 offset_right = 652.0 offset_bottom = 812.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A12" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_6" -[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 8.0 offset_top = 242.0 offset_right = 175.0 offset_bottom = 337.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A13" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_7" -[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 8.0 offset_top = 337.0 offset_right = 175.0 offset_bottom = 432.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A14" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_8" -[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 8.0 offset_top = 432.0 offset_right = 175.0 offset_bottom = 527.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A15" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_9" -[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 8.0 offset_top = 527.0 offset_right = 175.0 offset_bottom = 622.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A16" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_10" -[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 8.0 offset_top = 622.0 offset_right = 175.0 offset_bottom = 717.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A17" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_11" -[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("7_e22c6")] +[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("8_4e87c")] layout_mode = 0 offset_left = 8.0 offset_top = 717.0 offset_right = 175.0 offset_bottom = 812.0 -value_name0 = "°C" -value_name1 = "P, %" -name_min_size0 = Vector2i(35, 20) -name_min_size1 = Vector2i(35, 20) fname = "УМ1535А" rname = "A18" +value0_info = "Мощность, Вт" +value1_info = "Температура,°C" +metadata/um = "um_12" [node name="Monitoring_panel" type="Panel" parent="."] visible = false diff --git a/scenes/контроль/блок-в.tscn b/scenes/контроль/блок-в.tscn index 4426c9c0..b8e9a74d 100644 --- a/scenes/контроль/блок-в.tscn +++ b/scenes/контроль/блок-в.tscn @@ -175,7 +175,6 @@ func _enter_tree_defered(): var items: Array = get_level_nodes() var count: int = min(items.size(), value0.size()) for i in count: - items[i].value = value0[i] items[i].min_value = min_value0 items[i].max_value = max_value0 items[i].step = step0 @@ -349,10 +348,9 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " -Текущее: 20.00 +Текущее: 0.00 Диапазон: 0.00…100.00" mouse_filter = 0 -value = 20.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -369,10 +367,9 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " -Текущее: 30.00 +Текущее: 0.00 Диапазон: 0.00…100.00" mouse_filter = 0 -value = 30.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -389,10 +386,9 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " -Текущее: 40.00 +Текущее: 0.00 Диапазон: 0.00…100.00" mouse_filter = 0 -value = 40.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -409,10 +405,9 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " -Текущее: 50.00 +Текущее: 0.00 Диапазон: 0.00…100.00" mouse_filter = 0 -value = 50.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -429,10 +424,9 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " -Текущее: 60.00 +Текущее: 0.00 Диапазон: 0.00…100.00" mouse_filter = 0 -value = 60.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 @@ -449,10 +443,9 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " -Текущее: 70.00 +Текущее: 0.00 Диапазон: 0.00…100.00" mouse_filter = 0 -value = 70.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index c30320bd..91480df7 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -70,7 +70,7 @@ class TestPRD extends Node: var control_label: Label var control_timer: Timer = Timer.new() var ems_6666_timer: Timer = Timer.new() - signal control_is_over(control_results) + signal control_is_over(control_results, power_result) ## Инициализация аргуметнов @@ -107,7 +107,7 @@ class TestPRD extends Node: var status: PackedByteArray = unit_pribor.status block_kasseta_y5_config = check_block_kasseta_y5(status, block_kasseta_y5_config) block_ip_config = check_block_ip(status, block_ip_config) - check_temperature_um(status, power_amplify) + #check_temperature_um(status, power_amplify) _process_dkm_status(status) if current_litera != 0: var tek_litera: Dictionary = power_result[current_litera] @@ -208,11 +208,13 @@ class TestPRD extends Node: func _handle_init_state() -> void: control_label.text = 'Выполняется инициализация ФС-%s' % current_litera if current_litera in [1, 2, 3, 4, 5, 6, 7]: - state = STATE_MASHINE.FS_TURN_ON - #state = STATE_MASHINE.STOP_CONTROL + #state = STATE_MASHINE.FS_TURN_ON + state = STATE_MASHINE.STOP_CONTROL else: control_results = on_control_result(block_ip_config, block_dkm_config, block_fs_config, control_results) - emit_signal('control_is_over', control_results) + var send_power_pack = prep_power(power_result, self_name) + + emit_signal('control_is_over', control_results, send_power_pack) state = STATE_MASHINE.AWAIT @@ -443,39 +445,39 @@ class TestPRD extends Node: ## Проверка температур УМ от УКП - static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void: - const Constants: Dictionary = { - 'CONST_MIN_TEMP': -25, - 'MAXIMUM_CODE_ADC': 3796, - 'MINIMUM_CODE_AD': 2660, - 'TEMPERATURE_UKP_1': 47, - 'TEMPERATURE_UKP_2': 79, - } - const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD) - var ukp1_online: int = (status_prd[0] >> 2) & 1 - var ukp2_online = (status_prd[0] >> 3) & 1 - - if ukp1_online: - var tmp_1: int - var temperature_ukp_1: int - for i_temp in 6: - temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * i_temp) - tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3) - power_amplifier[i_temp].value0 = tmp_1 - - if power_amplifier.size() > 12: # Темпуратура от УМ литеры 1 - temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7) - tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3) - power_amplifier[6].value0 = tmp_1 - - if ukp2_online: - for i_temp in 6: - var temperature_ukp_2: int = status_prd.decode_u16(Constants.TEMPERATURE_UKP_2 + 2 * i_temp) - var tmp_2: int = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * TEMP + 3) - if power_amplifier.size() > 12: - power_amplifier[i_temp+7].value0 = tmp_2 - else: - power_amplifier[i_temp+6].value0 = tmp_2 + #static func check_temperature_um(status_prd: PackedByteArray, power_amplifier: Array) -> void: + #const Constants: Dictionary = { + #'CONST_MIN_TEMP': -25, + #'MAXIMUM_CODE_ADC': 3796, + #'MINIMUM_CODE_AD': 2660, + #'TEMPERATURE_UKP_1': 47, + #'TEMPERATURE_UKP_2': 79, + #} + #const TEMP: float = 115.0 / (Constants.MAXIMUM_CODE_ADC - Constants.MINIMUM_CODE_AD) + #var ukp1_online: int = (status_prd[0] >> 2) & 1 + #var ukp2_online = (status_prd[0] >> 3) & 1 +# + #if ukp1_online: + #var tmp_1: int + #var temperature_ukp_1: int + #for i_temp in 6: + #temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * i_temp) + #tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3) + #power_amplifier[i_temp].value1 = tmp_1 +# + #if power_amplifier.size() > 12: # Темпуратура от УМ литеры 1 + #temperature_ukp_1 = status_prd.decode_u16(Constants.TEMPERATURE_UKP_1 + 2 * 7) + #tmp_1 = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * TEMP + 3) + #power_amplifier[6].value1 = tmp_1 +# + #if ukp2_online: + #for i_temp in 6: + #var temperature_ukp_2: int = status_prd.decode_u16(Constants.TEMPERATURE_UKP_2 + 2 * i_temp) + #var tmp_2: int = round(Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * TEMP + 3) + #if power_amplifier.size() > 12: + #power_amplifier[i_temp+7].value1 = tmp_2 + #else: + #power_amplifier[i_temp+6].value1 = tmp_2 ## Проверка ДКМ @@ -645,13 +647,59 @@ class TestPRD extends Node: print_debug('dou_%s: false' % litera) all_dou_ok = false - print([litera, ray_dic]) control_dic[dou] = all_dou_ok return control_dic - static func get_minimum_pow(pow_dic: Dictionary, cur_litera: int)-> Dictionary: - var minimum_value_dic: Dictionary + static func prep_power(power_dic: Dictionary, prd_name: String)-> Dictionary: + const RAY_KEYS := ["RAY_m5", "RAY_5", "RAY_15", "RAY_25", "RAY_35", "RAY_45"] + var prep_pow_dic: Dictionary = {} - return minimum_value_dic + var arr_litera: Array[int] + match prd_name: + '1н', '2н', '3н', '4н': + arr_litera = [2, 3] + '1в', '2в', '3в', '4в': + arr_litera = [4, 5] + '1к', '2к', '3к', '4к': + arr_litera = [6, 7, 1] + + if not arr_litera: + print_debug('Ошибка в prd_name') + return prep_pow_dic + + var um_names: Array[Array] = [] + if arr_litera.size() != 3: + um_names = [ + ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'], + ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] + ] + else: + um_names = [ + ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'], + ['um_8', 'um_9', 'um_10', 'um_11', 'um_12', 'um_13'], + ['um_7'] # Особый случай для третьего элемента + ] + + for litera_index in arr_litera.size(): + var litera: int = arr_litera[litera_index] + var litera_data: Dictionary = power_dic.get(litera, {}) + var um_data: Array[Array] = [[], [], [], [], [], []] + + for i in range(RAY_KEYS.size()): + var ray_key: String = RAY_KEYS[i] + var ray_array: Array = litera_data.get(ray_key, []) + + if ray_array.size() == 1: + var single_value = ray_array[0] + for j in range(6): + um_data[j].append(single_value) + else: + for j in range(6): + um_data[j].append(ray_array[j] if j < ray_array.size() else 0) + + var current_um_names: Array = um_names[litera_index] + for um_index in range(current_um_names.size()): + prep_pow_dic[current_um_names[um_index]] = um_data[um_index] + return prep_pow_dic