diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index de584de5..9d7fbf5a 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': 0.50, + 'TIMER_DELAY': 5.0, 'RAY_DOU_NUM': 0x3, 'ATT_UM_1': 0x0, 'ATT_UM_6': 0x7, @@ -45,18 +45,6 @@ var block_ip_config_k := { 'ip12_50_2': [6, false], 'ip5_25': [7, false], } -# Проверка ДКМ -var block_dkm_config_k: = { - 'dkm_1': false, - 'dkm_6': false, - 'dkm_7': false, -} -# Проверка ФС -var block_fs_prd_config_k: = { - 'fs_1': false, - 'fs_6': false, - 'fs_7': false, -} var block_kasseta_y5_prd_config_k: = { 'yau07': false, 'ems': false, @@ -75,11 +63,15 @@ var unit_prd_k: Object # Результаты контроля var control_results_k: Dictionary = { 'block_ip': false, # Проверка касет П1 и ИП МА2000 - 'temperature': true, # Проверка температур УМ - 'dkm': false, + 'temperature': true, + 'dkm_1': false, + 'dkm_6': false, + 'dkm_7': false, 'dou_6': false, - 'dou_7': false, # Мощность от УКП - 'fs': false, + 'dou_7': false, + 'fs_1': false, + 'fs_6': false, + 'fs_7': false, } var test = preload('res://scripts/pribor-prd.gd') @@ -115,8 +107,6 @@ func initialize_connections() -> void: 'prd_config': PRIBOR_CONFIG, 'fs_params': FS_PARAMS, 'block_ip_prd_config': block_ip_config_k, - 'block_dkm_prd_config': block_dkm_config_k, - 'block_fs_prd_config': block_fs_prd_config_k, 'block_kasseta_y5_prd_config': block_kasseta_y5_prd_config_k, 'control_results': control_results_k, 'current_litera': start_litera, @@ -147,6 +137,10 @@ func _enter_tree() -> void: $control_result.text = 'Выполняется ...' $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: @@ -166,10 +160,14 @@ func on_mode_changed(in_tree: bool) -> 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]]) signaller.emit_signal('interfer_off_all') else: + set_default_state() + control_prd_k.state = control_prd_k.STATE_MASHINE.INIT mashine_timer.start() func power_fill(pow_dic: 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') for i_powapm in power_amplifier: var powamp_meta: String = i_powapm.get_meta('um') @@ -206,23 +204,21 @@ 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_results: Dictionary = control_prd_k.block_fs_config var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') for f in fs_nodes: var fs_meta: String = f.get_meta('fs') - if fs_results.has(fs_meta): - var new_state = fs_results[fs_meta] + if result_dic.has(fs_meta): + var new_state = result_dic[fs_meta] f.state = new_state - fs_results[fs_meta] = new_state + result_dic[fs_meta] = new_state - var dkm: Dictionary = control_prd_k.block_dkm_config - if fs_results.fs_1: - $kasseta_fs_kd/ref_A2.state = STATE_VAL.GOOD if dkm.dkm_1 else STATE_VAL.ERROR - if fs_results.fs_6: - $kasseta_fs_kd/ref_A4.state = STATE_VAL.GOOD if dkm.dkm_6 else STATE_VAL.ERROR + if result_dic.fs_1: + $kasseta_fs_kd/ref_A2.state = STATE_VAL.GOOD if result_dic.dkm_1 else STATE_VAL.ERROR + if result_dic.fs_6: + $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 - if fs_results.fs_7: - $kasseta_fs_kd/ref_A7.state = STATE_VAL.GOOD if dkm.dkm_7 else STATE_VAL.ERROR + if result_dic.fs_7: + $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 power_fill(power_dic) diff --git a/scenes/pribor-prd-k/pribor-prd-k.tscn b/scenes/pribor-prd-k/pribor-prd-k.tscn index 6c859216..b7def9a6 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.tscn +++ b/scenes/pribor-prd-k/pribor-prd-k.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=3 uid="uid://m5s87q7m66lj"] +[gd_scene load_steps=10 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"] @@ -9,31 +9,6 @@ [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"] [ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="8_la5yt"] -[ext_resource type="Texture2D" uid="uid://belwchvdktrw0" path="res://data/эмс-бланк.png" id="11_c7lv8"] -[ext_resource type="Texture2D" uid="uid://bwddxs24es81u" path="res://data/эмс-бланк-пост.png" id="12_wd1vi"] -[ext_resource type="Texture2D" uid="uid://pfoscstbm025" path="res://data/эмс-бланк-перем.png" id="13_bjebg"] - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_kc77u"] - -[sub_resource type="SpriteFrames" id="SpriteFrames_di0aa"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("11_c7lv8") -}, { -"duration": 1.0, -"texture": ExtResource("12_wd1vi") -}, { -"duration": 1.0, -"texture": ExtResource("13_bjebg") -}, { -"duration": 1.0, -"texture": null -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] [node name="pribor_prd_k" type="Control"] layout_mode = 3 @@ -204,7 +179,7 @@ offset_left = 8.0 offset_top = 242.0 offset_right = 175.0 offset_bottom = 337.0 -fname = "РМ16-20М" +fname = "УМ1535Б" rname = "A16" value0_info = "Мощность, Вт" value1_info = "Температура,°C" @@ -216,7 +191,7 @@ offset_left = 8.0 offset_top = 337.0 offset_right = 173.0 offset_bottom = 432.0 -fname = "РМ16-20М" +fname = "УМ1535Б" rname = "A17" value0_info = "Мощность, Вт" value1_info = "Температура,°C" @@ -228,7 +203,7 @@ offset_left = 8.0 offset_top = 432.0 offset_right = 175.0 offset_bottom = 527.0 -fname = "РМ16-20М" +fname = "УМ1535Б" rname = "A18" value0_info = "Мощность, Вт" value1_info = "Температура,°C" @@ -240,7 +215,7 @@ offset_left = 8.0 offset_top = 527.0 offset_right = 175.0 offset_bottom = 622.0 -fname = "РМ16-20М" +fname = "УМ1535Б" rname = "A19" value0_info = "Мощность, Вт" value1_info = "Температура,°C" @@ -252,7 +227,7 @@ offset_left = 8.0 offset_top = 622.0 offset_right = 175.0 offset_bottom = 717.0 -fname = "РМ16-20М" +fname = "УМ1535Б" rname = "A20" value0_info = "Мощность, Вт" value1_info = "Температура,°C" @@ -264,7 +239,7 @@ offset_left = 8.0 offset_top = 717.0 offset_right = 175.0 offset_bottom = 812.0 -fname = "РМ16-20М" +fname = "УМ1535Б" rname = "A21" value0_info = "Мощность, Вт" value1_info = "Температура,°C" @@ -349,117 +324,3 @@ theme_override_font_sizes/font_size = 28 text = "Прибор ПРД- неисправен" horizontal_alignment = 1 metadata/_edit_lock_ = true - -[node name="Monitoring_panel" type="Panel" parent="."] -visible = false -layout_mode = 0 -offset_left = 496.0 -offset_top = 8.0 -offset_right = 496.0 -offset_bottom = 8.0 -theme_override_styles/panel = SubResource("StyleBoxTexture_kc77u") - -[node name="in_fs_1" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(206, 577) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_di0aa") - -[node name="in_fs_1" type="Label" parent="Monitoring_panel/in_fs_1"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "In FS 1" -horizontal_alignment = 1 -metadata/_edit_use_anchors_ = true - -[node name="in_fs_2" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(319, 577) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_di0aa") - -[node name="in_fs_3" type="Label" parent="Monitoring_panel/in_fs_2"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "In FS 3" -horizontal_alignment = 1 - -[node name="out_ems_1" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(206, 465) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_di0aa") - -[node name="Out_ems_1" type="Label" parent="Monitoring_panel/out_ems_1"] -anchors_preset = -1 -anchor_left = 0.0185185 -anchor_right = 0.0185185 -anchor_bottom = 0.555556 -offset_left = -18.5 -offset_top = 14.0 -offset_right = 17.5 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "Out -ems 1" -horizontal_alignment = 1 -metadata/_edit_use_anchors_ = true - -[node name="out_ems_2" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(319, 465) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_di0aa") - -[node name="Out_ems_1" type="Label" parent="Monitoring_panel/out_ems_2"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "Out -ems 2" -horizontal_alignment = 1 - -[node name="in_fs_3" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(264, 577) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_di0aa") - -[node name="in_fs_2" type="Label" parent="Monitoring_panel/in_fs_3"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "In FS 2" -horizontal_alignment = 1 -metadata/_edit_use_anchors_ = true - -[node name="out_ems_3" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(264, 465) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_di0aa") - -[node name="Out_ems_1" type="Label" parent="Monitoring_panel/out_ems_3"] -anchors_preset = -1 -anchor_left = 0.0185185 -anchor_right = 0.0185185 -anchor_bottom = 0.555556 -offset_left = -18.5 -offset_top = 14.0 -offset_right = 17.5 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "Out -ems 3" -horizontal_alignment = 1 -metadata/_edit_use_anchors_ = true diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index e6fe22f8..b0449b88 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': 0.10, + 'TIMER_DELAY': 5.0, 'RAY_DOU_NUM': 0x3, 'ATT_UM_2': 0x7, 'ATT_UM_3': 0x7, @@ -39,17 +39,6 @@ var block_ip_config_n:= { 'ip12_50_1': [4, false], 'ip5_25': [7, false], } -# Проверка ДКМ -var block_dkm_config_n: = { - 'dkm_2': false, - 'dkm_3': false, -} -# Проверка ФС -var block_fs_prd_config_n: = { - 'fs_2': false, - 'fs_3': false, -} - var block_kasseta_y5_prd_config_n: = { 'yau07': false, 'ems': false, @@ -71,10 +60,12 @@ var control_prd_n: Object var control_results_n: Dictionary = { 'block_ip': false, # Проверка касет П1 и ИП МА2000 'temperature': true, # Проверка температур УМ - 'dkm': false, + 'dkm_2': false, + 'dkm_3': false, 'dou_2': false, 'dou_3': false, - 'fs': false, + 'fs_2': false, + 'fs_3': false, } var test = preload('res://scripts/pribor-prd.gd') @@ -109,8 +100,6 @@ func initialize_connections() -> void: 'prd_config': PRIBOR_CONFIG_N, 'fs_params': FS_PARAMS_N, 'block_ip_prd_config': block_ip_config_n, - 'block_dkm_prd_config': block_dkm_config_n, - 'block_fs_prd_config': block_fs_prd_config_n, 'block_kasseta_y5_prd_config': block_kasseta_y5_prd_config_n, 'control_results': control_results_n, 'current_litera': start_litera, @@ -141,6 +130,10 @@ func _enter_tree() -> void: $control_result.text = 'Выполняется ...' $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: @@ -160,14 +153,18 @@ func on_mode_changed(in_tree: bool) -> void: 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: + set_default_state() + control_prd_n.state = control_prd_n.STATE_MASHINE.INIT mashine_timer.start() func power_fill(pow_dic: Dictionary) -> 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 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 + var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE if pow_dic[powamp_meta].size() < 6: status = STATE_VAL.ERROR else: @@ -197,21 +194,19 @@ 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_results: Dictionary = control_prd_n.block_fs_config var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') for f in fs_nodes: var fs_meta: String = f.get_meta('fs') - if fs_results.has(fs_meta): - var new_state = fs_results[fs_meta] + if result_dic.has(fs_meta): + var new_state = result_dic[fs_meta] f.state = new_state - fs_results[fs_meta] = new_state + result_dic[fs_meta] = new_state - var dkm: Dictionary = control_prd_n.block_dkm_config - if fs_results.fs_2: - $kasseta_FS_ND/ref_A4.state = STATE_VAL.GOOD if dkm.dkm_2 else STATE_VAL.ERROR + if result_dic.fs_2: + $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 - if fs_results.fs_3: - $kasseta_FS_ND/ref_A3.state = STATE_VAL.GOOD if dkm.dkm_3 else STATE_VAL.ERROR + if result_dic.fs_3: + $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 power_fill(power_dic) diff --git a/scenes/pribor-prd-n/pribor-prd-n.tscn b/scenes/pribor-prd-n/pribor-prd-n.tscn index ae171850..0b67fd40 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.tscn +++ b/scenes/pribor-prd-n/pribor-prd-n.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=3 uid="uid://dnuexoef2nnv5"] +[gd_scene load_steps=8 format=3 uid="uid://dnuexoef2nnv5"] [ext_resource type="Script" uid="uid://cto2r4ipew65m" path="res://scenes/pribor-prd-n/pribor-prd-n.gd" id="1_bnnv3"] [ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_is25t"] @@ -7,31 +7,6 @@ [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="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"] - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_bnnv3"] - -[sub_resource type="SpriteFrames" id="SpriteFrames_xkifg"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("9_k1x0o") -}, { -"duration": 1.0, -"texture": ExtResource("10_7dcjd") -}, { -"duration": 1.0, -"texture": ExtResource("11_ius1v") -}, { -"duration": 1.0, -"texture": null -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] [node name="pribor_prd_n" type="Control"] layout_mode = 3 @@ -367,79 +342,6 @@ value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_12" -[node name="Monitoring_panel" type="Panel" parent="."] -visible = false -layout_mode = 0 -theme_override_styles/panel = SubResource("StyleBoxTexture_bnnv3") - -[node name="in_fs_1" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(454, 577) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_xkifg") - -[node name="in_fs_1" type="Label" parent="Monitoring_panel/in_fs_1"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "In FS 1" -horizontal_alignment = 1 -metadata/_edit_use_anchors_ = true - -[node name="in_fs_2" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(207, 577) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_xkifg") - -[node name="in_fs_2" type="Label" parent="Monitoring_panel/in_fs_2"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "In FS 2" -horizontal_alignment = 1 - -[node name="out_ems_1" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(454, 465) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_xkifg") - -[node name="Out_ems_1" type="Label" parent="Monitoring_panel/out_ems_1"] -anchors_preset = -1 -anchor_left = 0.0185185 -anchor_right = 0.0185185 -anchor_bottom = 0.555556 -offset_left = -18.5 -offset_top = 14.0 -offset_right = 17.5 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "Out -ems 1" -horizontal_alignment = 1 -metadata/_edit_use_anchors_ = true - -[node name="out_ems_2" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(207, 465) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_xkifg") - -[node name="Out_ems_1" type="Label" parent="Monitoring_panel/out_ems_2"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "Out -ems 2" -horizontal_alignment = 1 - [node name="control_result" type="Label" parent="."] layout_mode = 0 offset_left = 9.0 diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index 6307f897..15df6004 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -39,16 +39,6 @@ var block_ip_config_v := { 'ip12_50_1': [4, false], 'ip5_25': [7, false], } -# Проверка ДКМ -var block_dkm_config_v: = { - 'dkm_4': false, - 'dkm_5': false, -} -# Проверка ФС -var block_fs_prd_config_v: = { - 'fs_4': false, - 'fs_5': false, -} var block_kasseta_y5_prd_config_v: = { 'yau07': false, 'ems': false, @@ -70,10 +60,12 @@ var control_prd_v: Object var control_results_v: Dictionary = { 'block_ip': false, # Проверка касет П1 и ИП МА2000 'temperature': true, # Проверка температур УМ - 'dkm': false, + 'dkm_4': false, + 'dkm_5': false, 'dou_4': false, 'dou_5': false, - 'fs': false, + 'fs_4': false, + 'fs_5': false, } var test = preload('res://scripts/pribor-prd.gd') @@ -107,8 +99,6 @@ func initialize_connections() -> void: 'prd_config': PRIBOR_CONFIG_V, 'fs_params': FS_PARAMS_V, 'block_ip_prd_config': block_ip_config_v, - 'block_dkm_prd_config': block_dkm_config_v, - 'block_fs_prd_config': block_fs_prd_config_v, 'block_kasseta_y5_prd_config': block_kasseta_y5_prd_config_v, 'control_results': control_results_v, 'current_litera': start_litera, @@ -139,6 +129,11 @@ func _enter_tree() -> void: $control_result.text = 'Выполняется ...' $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: @@ -158,14 +153,18 @@ func on_mode_changed(in_tree: bool) -> void: prd_v_module.cmd_array.append([unit_prd_v.CmdCode.WRITE_ISA, [constants_v.ADDR_UG_LITERA_1, ug_work_1, constants_v.ADDR_UG_LITERA_2, ug_work_2]]) signaller.emit_signal('interfer_off_all') else: + set_default_state() + control_prd_v.state = control_prd_v.STATE_MASHINE.INIT mashine_timer.start() func power_fill(pow_dic: Dictionary) -> void: + if not control_prd_v.block_kasseta_y5_config.yau07 or not control_prd_v.block_kasseta_y5_config.ukp1 or not control_prd_v.block_kasseta_y5_config.ukp2: + return 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 + var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE if pow_dic[powamp_meta].size() < 6: status = STATE_VAL.ERROR else: @@ -195,21 +194,19 @@ func on_control_result(result_dic: Dictionary, power_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 fs_results: Dictionary = control_prd_v.block_fs_config - var dkm: Dictionary = control_prd_v.block_dkm_config var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') for f in fs_nodes: var fs_meta: String = f.get_meta('fs') - if fs_results.has(fs_meta): - var new_state = fs_results[fs_meta] + if result_dic.has(fs_meta): + var new_state = result_dic[fs_meta] f.state = new_state - fs_results[fs_meta] = new_state + result_dic[fs_meta] = new_state - if fs_results.fs_4: - $kasseta_FS_VD/ref_A2.state = STATE_VAL.GOOD if dkm.dkm_4 else STATE_VAL.ERROR + if result_dic.fs_4: + $kasseta_FS_VD/ref_A2.state = STATE_VAL.GOOD if result_dic.dkm_4 else STATE_VAL.ERROR $dou4_A5.state = STATE_VAL.GOOD if result_dic.dou_4 else STATE_VAL.ERROR - if fs_results.fs_5: - $kasseta_FS_VD/ref_A6.state = STATE_VAL.GOOD if dkm.dkm_5 else STATE_VAL.ERROR + if result_dic.fs_5: + $kasseta_FS_VD/ref_A6.state = STATE_VAL.GOOD if result_dic.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) diff --git a/scenes/pribor-prd-v/pribor-prd-v.tscn b/scenes/pribor-prd-v/pribor-prd-v.tscn index 4f502206..6a8ac267 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.tscn +++ b/scenes/pribor-prd-v/pribor-prd-v.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://cvskpe1ti3p45"] +[gd_scene load_steps=9 format=3 uid="uid://cvskpe1ti3p45"] [ext_resource type="Script" uid="uid://cvuosuvjaci1h" path="res://scenes/pribor-prd-v/pribor-prd-v.gd" id="1_c20s6"] [ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_xpo4b"] @@ -8,31 +8,6 @@ [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://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"] - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_vxfkm"] - -[sub_resource type="SpriteFrames" id="SpriteFrames_s5gcy"] -animations = [{ -"frames": [{ -"duration": 1.0, -"texture": ExtResource("10_4e87c") -}, { -"duration": 1.0, -"texture": ExtResource("11_g8fvp") -}, { -"duration": 1.0, -"texture": ExtResource("12_gsby4") -}, { -"duration": 1.0, -"texture": null -}], -"loop": true, -"name": &"default", -"speed": 5.0 -}] [node name="pribor_prd_v" type="Control"] layout_mode = 3 @@ -316,79 +291,6 @@ value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_12" -[node name="Monitoring_panel" type="Panel" parent="."] -visible = false -layout_mode = 0 -theme_override_styles/panel = SubResource("StyleBoxTexture_vxfkm") - -[node name="in_fs_1" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(454, 577) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_s5gcy") - -[node name="in_fs_1" type="Label" parent="Monitoring_panel/in_fs_1"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "In FS 1" -horizontal_alignment = 1 -metadata/_edit_use_anchors_ = true - -[node name="in_fs_2" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(207, 577) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_s5gcy") - -[node name="in_fs_2" type="Label" parent="Monitoring_panel/in_fs_2"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "In FS 2" -horizontal_alignment = 1 - -[node name="out_ems_1" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(454, 465) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_s5gcy") - -[node name="Out_ems_1" type="Label" parent="Monitoring_panel/out_ems_1"] -anchors_preset = -1 -anchor_left = 0.0185185 -anchor_right = 0.0185185 -anchor_bottom = 0.555556 -offset_left = -18.5 -offset_top = 14.0 -offset_right = 17.5 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "Out -ems 1" -horizontal_alignment = 1 -metadata/_edit_use_anchors_ = true - -[node name="out_ems_2" type="AnimatedSprite2D" parent="Monitoring_panel"] -position = Vector2(207, 465) -scale = Vector2(1.2, 1.2) -sprite_frames = SubResource("SpriteFrames_s5gcy") - -[node name="Out_ems_1" type="Label" parent="Monitoring_panel/out_ems_2"] -offset_left = -15.1667 -offset_top = 14.0 -offset_right = 14.8333 -offset_bottom = 33.0 -theme_override_colors/font_color = Color(0.890196, 0.486275, 0.196078, 1) -theme_override_font_sizes/font_size = 10 -text = "Out -ems 2" -horizontal_alignment = 1 - [node name="control_result" type="Label" parent="."] layout_mode = 0 offset_left = 9.0 diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index 91480df7..1ef7526c 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -56,8 +56,6 @@ class TestPRD extends Node: var pribor_config: Dictionary var fs_parameters: Dictionary var block_ip_config: Dictionary - var block_dkm_config: Dictionary - var block_fs_config: Dictionary var block_kasseta_y5_config: Dictionary var control_results: Dictionary var self_name: String @@ -83,8 +81,6 @@ class TestPRD extends Node: pribor_config = init_data['prd_config'] fs_parameters = init_data['fs_params'] block_ip_config = init_data['block_ip_prd_config'] - block_dkm_config = init_data['block_dkm_prd_config'] - block_fs_config = init_data['block_fs_prd_config'] block_kasseta_y5_config = init_data['block_kasseta_y5_prd_config'] control_results = init_data['control_results'] current_litera = init_data['current_litera'] @@ -125,7 +121,7 @@ class TestPRD extends Node: var fs_result := {fs_key: STATE_VAL.NONE} fs_result = on_fs_state(packet_type_7, fs_mapping, fs_result) - block_fs_config[fs_key] = fs_result[fs_key] + control_results[fs_key] = fs_result[fs_key] ## @@ -208,10 +204,10 @@ 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) + control_results = on_control_result(block_ip_config, control_results) var send_power_pack = prep_power(power_result, self_name) emit_signal('control_is_over', control_results, send_power_pack) @@ -229,13 +225,13 @@ class TestPRD extends Node: control_label.text = 'Выполняется проверка ФС-%s' % current_litera if not module_prd.unit_yau07.online: return - if (current_litera == 2 and block_fs_config.fs_2) or \ - (current_litera == 3 and block_fs_config.fs_3) or \ - (current_litera == 4 and block_fs_config.fs_4) or \ - (current_litera == 5 and block_fs_config.fs_5) or \ - (current_litera == 6 and block_fs_config.fs_6) or \ - (current_litera == 7 and block_fs_config.fs_7) or \ - (current_litera == 1 and block_fs_config.fs_1): + if (current_litera == 2 and control_results.fs_2) or \ + (current_litera == 3 and control_results.fs_3) or \ + (current_litera == 4 and control_results.fs_4) or \ + (current_litera == 5 and control_results.fs_5) or \ + (current_litera == 6 and control_results.fs_6) or \ + (current_litera == 7 and control_results.fs_7) or \ + (current_litera == 1 and control_results.fs_1): state = STATE_MASHINE.CHEK_KASSETA_Y5 @@ -323,10 +319,23 @@ class TestPRD extends Node: func _process_dkm_status(status: PackedByteArray) -> void: - if not block_fs_config.has(_get_current_fs_key()): + if not control_results.has(_get_current_fs_key()): return var dkm_bit = _get_dkm_bit_for_current_fs(current_litera, constants) - block_dkm_config = check_dkm(status, dkm_bit, block_dkm_config) + if dkm_bit == 0: + control_results['dkm_1'] = check_dkm(status, dkm_bit) + elif dkm_bit == 1: + control_results['dkm_2'] = check_dkm(status, dkm_bit) + elif dkm_bit == 2: + control_results['dkm_3'] = check_dkm(status, dkm_bit) + elif dkm_bit == 3: + control_results['dkm_4'] = check_dkm(status, dkm_bit) + elif dkm_bit == 4: + control_results['dkm_5'] = check_dkm(status, dkm_bit) + elif dkm_bit == 5: + control_results['dkm_6'] = check_dkm(status, dkm_bit) + elif dkm_bit == 6: + control_results['dkm_7'] = check_dkm(status, dkm_bit) func _get_current_fs_key() -> String: @@ -360,25 +369,14 @@ class TestPRD extends Node: state = STATE_MASHINE.FS_TURN_OFF - static func on_control_result(ip_config: Dictionary, dkm_config: Dictionary, fs_config: Dictionary, ctrl_results: Dictionary) -> Dictionary: + static func on_control_result(ip_config: Dictionary, ctrl_results: Dictionary) -> Dictionary: var all_blocks_ip_ok = true - var all_blocks_dkm_ok = true - var all_blocks_fs_ok = true for block in ip_config: if not ip_config[block][1]: all_blocks_ip_ok = false ctrl_results['block_ip'] = all_blocks_ip_ok - for block in dkm_config: - if not dkm_config[block]: - all_blocks_dkm_ok = false - ctrl_results['dkm'] = all_blocks_dkm_ok - - for block in fs_config: - if not fs_config[block]: - all_blocks_fs_ok = false - ctrl_results['fs'] = all_blocks_fs_ok return ctrl_results @@ -481,24 +479,10 @@ class TestPRD extends Node: ## Проверка ДКМ - static func check_dkm(status_prd: PackedByteArray, bit_dkm: int, dkm_result: Dictionary) -> Dictionary: + static func check_dkm(status_prd: PackedByteArray, bit_dkm: int) -> bool: var dkm: int = 28 - var status_dkm = status_prd[dkm] >> bit_dkm & 1 - if bit_dkm == 0: - dkm_result['dkm_1'] = status_dkm - elif bit_dkm == 1: - dkm_result['dkm_2'] = status_dkm - elif bit_dkm == 2: - dkm_result['dkm_3'] = status_dkm - elif bit_dkm == 3: - dkm_result['dkm_4'] = status_dkm - elif bit_dkm == 4: - dkm_result['dkm_5'] = status_dkm - elif bit_dkm == 5: - dkm_result['dkm_6'] = status_dkm - elif bit_dkm == 6: - dkm_result['dkm_7'] = status_dkm - return dkm_result + var status_dkm: bool = status_prd[dkm] >> bit_dkm & 1 + return status_dkm ##