diff --git a/scenes/pribor-prd-k/kasseta-fs-kd.tscn b/scenes/pribor-prd-k/kasseta-fs-kd.tscn index 89fe6386..d785ed11 100644 --- a/scenes/pribor-prd-k/kasseta-fs-kd.tscn +++ b/scenes/pribor-prd-k/kasseta-fs-kd.tscn @@ -33,6 +33,7 @@ offset_right = 55.0 offset_bottom = 183.0 fname = "Блок ФС-1" rname = "A4" +metadata/case = 2 [node name="ref_A3" parent="." groups=["case", "default_reset", "fs_group"] instance=ExtResource("3_kqnvt")] offset_left = 55.0 @@ -42,6 +43,7 @@ offset_bottom = 183.0 fname = "Модуль ФС" rname = "A1" metadata/fs = "fs_1" +metadata/case = 3 [node name="ref_A4" parent="." groups=["case", "default_reset"] instance=ExtResource("3_kqnvt")] offset_left = 105.0 @@ -50,6 +52,7 @@ offset_right = 155.0 offset_bottom = 183.0 fname = "Блок ФС-2" rname = "A2" +metadata/case = 0 [node name="ref_A6" parent="." groups=["case", "default_reset", "fs_group"] instance=ExtResource("3_kqnvt")] offset_left = 155.0 @@ -59,6 +62,7 @@ offset_bottom = 183.0 fname = "Модуль ФС" rname = "A5" metadata/fs = "fs_6" +metadata/case = 4 [node name="ref_A5" parent="." groups=["case", "default_reset", "fs_group"] instance=ExtResource("3_kqnvt")] offset_left = 205.0 @@ -68,6 +72,7 @@ offset_bottom = 183.0 fname = "Модуль ФС" rname = "A3" metadata/fs = "fs_7" +metadata/case = 3 [node name="ref_A7" parent="." groups=["case", "default_reset"] instance=ExtResource("3_kqnvt")] offset_left = 255.0 @@ -76,3 +81,4 @@ offset_right = 305.0 offset_bottom = 183.0 fname = "Блок ФС-6" rname = "A6" +metadata/case = 5 diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index bd237cbb..70e1fe4d 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -95,9 +95,9 @@ func _ready() -> void: func _on_element_hover(case_node: Node) -> void: $ref_ZZ4.visible = true - var case_mata = case_node.get_meta('case') - if not case_mata: return - $ref_ZZ4/label.text = 'Ящик - %s Позиция - %s' % [case_mata, case_mata+3] + if 'case' in case_node.get_meta_list(): + var case_mata = case_node.get_meta('case') + $ref_ZZ4/label.text = 'Ящик - %s Позиция - %s' % [case_mata, case_mata+3] func _on_element_unhover() -> void: @@ -164,6 +164,7 @@ func _exit_tree() -> void: if Engine.is_editor_hint(): return 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') func on_line_changed(unit_pribor: Object) -> void: @@ -255,9 +256,4 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: result = false var name_prd = control_prd_k.self_name - if result: - $ref_ZZ4/label.text = 'Прибор ПРД-%s исправен' % name_prd - $ref_ZZ4/label.add_theme_color_override('font_color', Color.GREEN) - else: - $ref_ZZ4/label.text = 'Прибор ПРД-%s неисправен' % name_prd - $ref_ZZ4/label.add_theme_color_override('font_color', Color.RED) + log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [name_prd, ['неисправен', 'исправен'][int(result)]]) diff --git a/scenes/pribor-prd-k/pribor-prd-k.tscn b/scenes/pribor-prd-k/pribor-prd-k.tscn index 40abefec..bbf684a4 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.tscn +++ b/scenes/pribor-prd-k/pribor-prd-k.tscn @@ -35,6 +35,7 @@ offset_bottom = 949.0 fname = "MAA2000" rname = "A28" metadata/ip = "maa2000_1" +metadata/case = 1 [node name="dou6_A7" parent="." groups=["case", "default_reset"] instance=ExtResource("1_8dmgr")] layout_mode = 0 @@ -44,6 +45,7 @@ offset_right = 175.0 offset_bottom = 907.0 fname = "ДОУ-6" rname = "A7" +metadata/case = 3 [node name="maa2000_A23" parent="." groups=["case", "default_reset", "power_supply"] instance=ExtResource("1_8dmgr")] layout_mode = 0 @@ -54,6 +56,7 @@ offset_bottom = 949.0 fname = "MAA2000" rname = "A27" metadata/ip = "maa2000_2" +metadata/case = 4 [node name="dou7_A8" parent="." groups=["case", "default_reset"] instance=ExtResource("1_8dmgr")] layout_mode = 0 @@ -63,6 +66,7 @@ offset_right = 175.0 offset_bottom = 860.0 fname = "ДОУ-7" rname = "A8" +metadata/case = 2 [node name="ref_ZZ3" type="NinePatchRect" parent="."] layout_mode = 0 @@ -100,6 +104,7 @@ rname = "A10" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_1" +metadata/case = 0 [node name="um1535_A11" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -112,6 +117,7 @@ rname = "A11" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_2" +metadata/case = 7 [node name="um1535_A12" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -124,6 +130,7 @@ rname = "A12" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_3" +metadata/case = 8 [node name="um1535_A13" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -136,6 +143,7 @@ rname = "A13" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_4" +metadata/case = 9 [node name="um1535_A14" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -148,6 +156,7 @@ rname = "A14" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_5" +metadata/case = 11 [node name="um1535_A15" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -160,6 +169,7 @@ rname = "A15" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_6" +metadata/case = 12 [node name="utm80_A9" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -172,6 +182,7 @@ rname = "A9" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_7" +metadata/case = 13 [node name="rm1620m_A16" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -184,6 +195,7 @@ rname = "A16" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_8" +metadata/case = 1 [node name="rm1620m_A17" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -196,6 +208,7 @@ rname = "A17" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_9" +metadata/case = 2 [node name="rm1620m_A18" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -208,6 +221,7 @@ rname = "A18" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_10" +metadata/case = 3 [node name="rm1620m_A19" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -220,6 +234,7 @@ rname = "A19" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_11" +metadata/case = 4 [node name="rm1620m_A20" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -232,6 +247,7 @@ rname = "A20" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_12" +metadata/case = 5 [node name="rm1620m_A21" parent="." groups=["case", "power_amplifier"] instance=ExtResource("5_c7lv8")] layout_mode = 0 @@ -244,6 +260,7 @@ rname = "A21" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_13" +metadata/case = 6 [node name="kasseta_fs_kd" parent="." instance=ExtResource("7_ia27q")] layout_mode = 0 @@ -275,6 +292,7 @@ offset_bottom = 183.0 fname = "ИП9-50" rname = "A23" metadata/ip = "ip9_50_1" +metadata/case = 0 [node name="ref_A23" parent="kasseta_p_1" groups=["case", "default_reset", "power_supply"] instance=ExtResource("8_la5yt")] offset_left = 59.0 @@ -284,6 +302,7 @@ offset_bottom = 183.0 fname = "ИП9-50" rname = "A24" metadata/ip = "ip9_50_2" +metadata/case = 1 [node name="ref_A24" parent="kasseta_p_1" groups=["case", "default_reset", "power_supply"] instance=ExtResource("8_la5yt")] offset_left = 109.0 @@ -293,6 +312,7 @@ offset_bottom = 183.0 fname = "ИП12-50" rname = "A26" metadata/ip = "ip12_50_1" +metadata/case = 3 [node name="lbl_fname" type="Label" parent="kasseta_p_1"] self_modulate = Color(1, 1, 1, 0.62) diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index 8d6d41e6..5564b2b0 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.gd +++ b/scenes/pribor-prd-n/pribor-prd-n.gd @@ -53,7 +53,7 @@ var start_litera: int = 2 var ug_work_1: int = 2 ## Аттенюация усилителей мощности var ug_work_2: int = 3 ## Аттенюация усилителей мощности # Флаги и таймеры -var mashine_timer: Timer = Timer.new() +var machine_timer: Timer = Timer.new() var prd_n_module: Object var unit_prd_n: Object var control_prd_n: Object @@ -95,9 +95,9 @@ func _ready() -> void: func _on_element_hover(case_node: Node) -> void: $ref_ZZ4.visible = true - var case_mata = case_node.get_meta('case') - if not case_mata: return - $ref_ZZ4/label.text = 'Ящик - %s Позиция - %s' % [case_mata, case_mata+3] + if 'case' in case_node.get_meta_list(): + var case_mata = case_node.get_meta('case') + $ref_ZZ4/label.text = 'Ящик - %s Позиция - %s' % [case_mata, case_mata+3] func _on_element_unhover() -> void: @@ -130,10 +130,10 @@ func initialize_connections() -> void: func setup_timer() -> void: - add_child(mashine_timer) - mashine_timer.connect('timeout', Callable(self, 'on_state_mashine')) - mashine_timer.wait_time = constants_n.STATE_MASHINE_TIMER - mashine_timer.start() + add_child(machine_timer) + machine_timer.connect('timeout', Callable(self, 'on_state_mashine')) + machine_timer.wait_time = constants_n.STATE_MASHINE_TIMER + machine_timer.start() func set_default_state() -> void: @@ -160,6 +160,7 @@ func _exit_tree() -> void: if Engine.is_editor_hint(): return 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]]) + signaller.emit_signal('interfer_off_all') func on_line_changed(unit_pribor: Object) -> void: @@ -169,13 +170,13 @@ func on_line_changed(unit_pribor: Object) -> void: func on_mode_changed(in_tree: bool) -> void: if not in_tree: - mashine_timer.stop() + machine_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: set_default_state() control_prd_n.state = control_prd_n.STATE_MASHINE.INIT - mashine_timer.start() + machine_timer.start() func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void: @@ -198,7 +199,7 @@ func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void: func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: - mashine_timer.stop() + machine_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') for node_y5 in nodes_y5: @@ -243,9 +244,4 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: result = false var name_prd = control_prd_n.self_name - if result: - $ref_ZZ4/label.text = 'Прибор ПРД-%s исправен' % name_prd - #$ref_ZZ4/label.add_theme_color_override('font_color', Color.GREEN) - else: - $ref_ZZ4/label.text = 'Прибор ПРД-%s неисправен' % name_prd - #$ref_ZZ4/label.add_theme_color_override('font_color', Color.RED) + log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [name_prd, ['неисправен', 'исправен'][int(result)]]) diff --git a/scenes/pribor-prd-n/pribor-prd-n.tscn b/scenes/pribor-prd-n/pribor-prd-n.tscn index a0ed48a2..1bcd0778 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.tscn +++ b/scenes/pribor-prd-n/pribor-prd-n.tscn @@ -26,6 +26,7 @@ offset_bottom = 949.0 fname = "MAA2000" rname = "A23" metadata/ip = "maa2000_2" +metadata/case = 1 [node name="maa2000_A22" parent="." groups=["case", "default_reset", "power_supply"] instance=ExtResource("2_is25t")] layout_mode = 2 @@ -36,6 +37,7 @@ offset_bottom = 949.0 fname = "MAA2000" rname = "A22" metadata/ip = "maa2000_1" +metadata/case = 0 [node name="dou2_A5" parent="." groups=["case", "default_reset"] instance=ExtResource("2_is25t")] layout_mode = 2 @@ -45,6 +47,7 @@ offset_right = 652.0 offset_bottom = 877.0 fname = "ДОУ-2" rname = "A5" +metadata/case = 0 [node name="dou3_A6" parent="." groups=["case", "default_reset"] instance=ExtResource("2_is25t")] layout_mode = 2 @@ -54,6 +57,7 @@ offset_right = 175.0 offset_bottom = 877.0 fname = "ДОУ-3" rname = "A6" +metadata/case = 2 [node name="ref_ZZ3" type="NinePatchRect" parent="."] layout_mode = 0 @@ -119,6 +123,7 @@ offset_right = 105.0 offset_bottom = 182.0 fname = "Блок ФС-3" rname = "A3" +metadata/case = 11 [node name="ref_A1" parent="kasseta_FS_ND" groups=["case", "default_reset", "fs_group"] instance=ExtResource("7_eoqf2")] offset_left = 105.0 @@ -128,6 +133,7 @@ offset_bottom = 182.0 fname = "Модуль ФС" rname = "A1" metadata/fs = "fs_3" +metadata/case = 11 [node name="ref_A2" parent="kasseta_FS_ND" groups=["case", "default_reset", "fs_group"] instance=ExtResource("7_eoqf2")] offset_left = 155.0 @@ -137,6 +143,7 @@ offset_bottom = 182.0 fname = "Модуль ФС" rname = "A2" metadata/fs = "fs_2" +metadata/case = 11 [node name="ref_A4" parent="kasseta_FS_ND" groups=["case", "default_reset"] instance=ExtResource("7_eoqf2")] offset_left = 205.0 @@ -145,6 +152,7 @@ offset_right = 255.0 offset_bottom = 182.0 fname = "Блок ФС-2" rname = "A4" +metadata/case = 11 [node name="kasseta_P_1" type="NinePatchRect" parent="."] layout_mode = 0 @@ -168,6 +176,7 @@ offset_bottom = 183.0 fname = "ИП12-50" rname = "A21" metadata/ip = "ip12_50_1" +metadata/case = 11 [node name="ref_A20" parent="kasseta_P_1" groups=["case", "default_reset", "power_supply"] instance=ExtResource("7_eoqf2")] offset_left = 59.0 @@ -177,6 +186,7 @@ offset_bottom = 183.0 fname = "ИП9-50" rname = "A20" metadata/ip = "ip9_50_1" +metadata/case = 11 [node name="ref_A19" parent="kasseta_P_1" groups=["case", "default_reset", "power_supply"] instance=ExtResource("7_eoqf2")] offset_left = 109.0 @@ -186,6 +196,7 @@ offset_bottom = 183.0 fname = "ИП9-50" rname = "A19" metadata/ip = "ip9_50_2" +metadata/case = 11 [node name="lbl_fname" type="Label" parent="kasseta_P_1"] self_modulate = Color(1, 1, 1, 0.62) @@ -209,6 +220,7 @@ rname = "A7" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_1" +metadata/case = 11 [node name="um1535_A8" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -221,6 +233,7 @@ rname = "A8" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_2" +metadata/case = 11 [node name="um1535_A9" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -233,6 +246,7 @@ rname = "A9" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_3" +metadata/case = 11 [node name="um1535_A10" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -245,6 +259,7 @@ rname = "A10" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_4" +metadata/case = 11 [node name="um1535_A11" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -257,6 +272,7 @@ rname = "A11" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_5" +metadata/case = 11 [node name="um1535_A12" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -269,6 +285,7 @@ rname = "A12" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_6" +metadata/case = 11 [node name="um1535_A13" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -281,6 +298,7 @@ rname = "A13" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_7" +metadata/case = 11 [node name="um1535_A14" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -293,6 +311,7 @@ rname = "A14" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_8" +metadata/case = 11 [node name="um1535_A15" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -305,6 +324,7 @@ rname = "A15" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_9" +metadata/case = 11 [node name="um1535_A16" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -317,6 +337,7 @@ rname = "A16" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_10" +metadata/case = 11 [node name="um1535_A17" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -329,6 +350,7 @@ rname = "A17" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_11" +metadata/case = 11 [node name="um1535_A18" parent="." groups=["case", "power_amplifier"] instance=ExtResource("7_bnnv3")] layout_mode = 0 @@ -341,6 +363,7 @@ rname = "A18" value0_info = "Мощность, Вт" value1_info = "Температура,°C" metadata/um = "um_12" +metadata/case = 11 [node name="ref_ZZ4" type="NinePatchRect" parent="."] layout_mode = 0 diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index 6a01429e..122207d5 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -91,9 +91,9 @@ func _ready() -> void: func _on_element_hover(case_node: Node) -> void: $ref_ZZ4.visible = true - var case_mata = case_node.get_meta('case') - if not case_mata: return - $ref_ZZ4/label.text = 'Ящик - %s Позиция - %s' % [case_mata, case_mata+3] + if 'case' in case_node.get_meta_list(): + var case_mata = case_node.get_meta('case') + $ref_ZZ4/label.text = 'Ящик - %s Позиция - %s' % [case_mata, case_mata+3] func _on_element_unhover() -> void: @@ -157,6 +157,7 @@ func _exit_tree() -> void: if Engine.is_editor_hint(): return 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') func on_line_changed(unit_pribor: Object) -> void: @@ -237,9 +238,4 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: result = false var name_prd = control_prd_v.self_name - if result: - $ref_ZZ4/label.text = 'Прибор ПРД-%s исправен' % name_prd - #$ref_ZZ4/label.add_theme_color_override('font_color', Color.GREEN) - else: - $ref_ZZ4/label.text = 'Прибор ПРД-%s неисправен' % name_prd - #$ref_ZZ4/label.add_theme_color_override('font_color', Color.RED) + log.message(Logger.INFO, 'Прибор ПРД-%s %s' % [name_prd, ['неисправен', 'исправен'][int(result)]]) diff --git a/scenes/контроль/кассета-п-2.tscn b/scenes/контроль/кассета-п-2.tscn index 0db2d21b..20c0332e 100644 --- a/scenes/контроль/кассета-п-2.tscn +++ b/scenes/контроль/кассета-п-2.tscn @@ -22,6 +22,7 @@ offset_bottom = 180.0 fname = "ИП9-50" rname = "A22" metadata/ip = "ip9_50_3" +metadata/case = 1 [node name="ref_A23" parent="." groups=["case", "default_reset", "power_supply"] instance=ExtResource("3_4a27g")] offset_left = 60.0 @@ -31,6 +32,7 @@ offset_bottom = 180.0 fname = "ИП12-50" rname = "A25" metadata/ip = "ip12_50_2" +metadata/case = 2 [node name="lbl_fname" type="Label" parent="."] self_modulate = Color(1, 1, 1, 0.62) diff --git a/scenes/контроль/кассета-у-5-к.tscn b/scenes/контроль/кассета-у-5-к.tscn index 868b22a5..b1f5cc02 100644 --- a/scenes/контроль/кассета-у-5-к.tscn +++ b/scenes/контроль/кассета-у-5-к.tscn @@ -33,6 +33,7 @@ offset_bottom = 182.0 fname = "ИП5-25" rname = "A31" metadata/ip = "ip5_25" +metadata/case = 1 [node name="ref_A30" parent="." groups=["case", "y-5"] instance=ExtResource("3_wtlpi")] offset_left = 55.0 @@ -42,6 +43,7 @@ offset_bottom = 182.0 fname = "ЯУ-07Б" rname = "A37" metadata/y5 = "yau07" +metadata/case = 2 [node name="ref_A26" parent="." groups=["case", "y-5"] instance=ExtResource("3_wtlpi")] offset_left = 105.0 @@ -51,6 +53,7 @@ offset_bottom = 182.0 fname = "ЭМС-Г" rname = "A33" metadata/y5 = "ems" +metadata/case = 3 [node name="ref_A27" parent="." groups=["case", "y-5"] instance=ExtResource("3_wtlpi")] offset_left = 155.0 @@ -60,6 +63,7 @@ offset_bottom = 182.0 fname = "УГ" rname = "A34" metadata/y5 = "ug" +metadata/case = 0 [node name="ref_A28" parent="." groups=["case", "y-5"] instance=ExtResource("3_wtlpi")] offset_left = 205.0 @@ -69,6 +73,7 @@ offset_bottom = 182.0 fname = "УКП" rname = "A35" metadata/y5 = "ukp1" +metadata/case = 4 [node name="ref_A29" parent="." groups=["case", "y-5"] instance=ExtResource("3_wtlpi")] offset_left = 254.0 @@ -78,3 +83,4 @@ offset_bottom = 182.0 fname = "УКП" rname = "A36" metadata/y5 = "ukp2" +metadata/case = 5 diff --git a/scenes/контроль/кассета-у-5-нв.tscn b/scenes/контроль/кассета-у-5-нв.tscn index f02c88b3..22247922 100644 --- a/scenes/контроль/кассета-у-5-нв.tscn +++ b/scenes/контроль/кассета-у-5-нв.tscn @@ -33,7 +33,7 @@ offset_bottom = 182.0 fname = "ИП5-25" rname = "A24" metadata/ip = "ip5_25" -metadata/case = 0 +metadata/case = 1 [node name="ref_A30" parent="." groups=["case", "y-5"] instance=ExtResource("3_picsk")] offset_left = 55.0 @@ -43,7 +43,7 @@ offset_bottom = 182.0 fname = "ЯУ-07Б" rname = "A30" metadata/y5 = "yau07" -metadata/case = 0 +metadata/case = 2 [node name="ref_A26" parent="." groups=["case", "y-5"] instance=ExtResource("3_picsk")] offset_left = 105.0 @@ -63,7 +63,7 @@ offset_bottom = 182.0 fname = "УГ" rname = "A27" metadata/y5 = "ug" -metadata/case = 0 +metadata/case = 2 [node name="ref_A28" parent="." groups=["case", "y-5"] instance=ExtResource("3_picsk")] offset_left = 205.0 @@ -73,7 +73,7 @@ offset_bottom = 182.0 fname = "УКП" rname = "A28" metadata/y5 = "ukp1" -metadata/case = 0 +metadata/case = 1 [node name="ref_A29" parent="." groups=["case", "y-5"] instance=ExtResource("3_picsk")] offset_left = 254.0 diff --git a/scenes/контроль/кнопка-прибора.gd b/scenes/контроль/кнопка-прибора.gd index 626d810f..a3466277 100644 --- a/scenes/контроль/кнопка-прибора.gd +++ b/scenes/контроль/кнопка-прибора.gd @@ -24,7 +24,10 @@ func update_progress_bar(target_value) -> void: set(v): progress_value = v if is_inside_tree(): - update_progress_bar(v) + #$progress.value = progress_value + #update_progress_bar(v) + var result = (progress_value/20.0) * 100.0 + $progress.tooltip_text = 'Процесс контроля %s' % progress_value + '%' @export var progress_visible: bool: diff --git a/scenes/контроль/контроль.tscn b/scenes/контроль/контроль.tscn index e9db2cac..97146b61 100644 --- a/scenes/контроль/контроль.tscn +++ b/scenes/контроль/контроль.tscn @@ -85,7 +85,7 @@ func _ready(): for item in unit_names: if prd.prd_dict.has(item): var prd_module = prd.prd_dict[item] - prd_module.connect('update_progress', Callable(self, 'update_serviceability').bind(prd_module, pribor_node)) + prd_module.unit_control.connect('update_progress', Callable(self, 'on_update_progress').bind(pribor_node)) prd_module.connect('update_serviceability', Callable(self, 'on_update_serviceability').bind(prd_module, pribor_node)) if item == 'уарэп-эмс': signaller.connect('update_uf_serviceability', Callable(self, 'on_update_uf_serviceability').bind(pribor_node)) @@ -149,9 +149,17 @@ func on_update_uf_serviceability(uf_serviceaability: bool, uf_pribor: Node)-> vo uf_pribor.state = 1 if uf_serviceaability else 2 -func update_serviceability(prd_module: Object, prd_pribor:Node) -> void: - prd_pribor.progress_visible = prd_module.progress_value > 0 - prd_pribor.progress_value = prd_module.progress_value +func _on_control_prd_pressed() -> void: + var prim = prd.prd_dict['уарэп-яу07-1н'].unit_control + prim.machine_timer.start() + + +func on_update_progress(value_progress: float, pribor_node: Node) -> void: # Пока не надо + print([pribor_node.get_meta('unit_name'), value_progress]) + var progress = get_node('pribor_prd_n_1/progress') + progress.value = value_progress + pribor_node.progress_value = value_progress + pribor_node.progress_visible = value_progress > 0 " [sub_resource type="SpriteFrames" id="SpriteFrames_foasq"] @@ -406,7 +414,6 @@ frame_progress = 0.72355 script = ExtResource("11_u7tym") [node name="progress" type="TextureProgressBar" parent="pribor_prd_n_1"] -visible = false layout_mode = 0 offset_left = -4.0 offset_top = 123.0 @@ -418,7 +425,9 @@ tooltip_text = " Состояние процесса контрля прибора " mouse_filter = 0 -max_value = 30.0 +max_value = 20.0 +step = 0.1 +value = 3.0 nine_patch_stretch = true stretch_margin_left = 2 stretch_margin_top = 2 @@ -781,6 +790,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_v_2"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 20.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_n_2" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -835,6 +869,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_n_2"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 20.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_k_2" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -887,6 +946,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_k_2"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 30.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_v_3" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -939,6 +1023,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_v_3"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 20.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_n_3" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -991,6 +1100,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_n_3"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 20.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_k_3" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -1043,6 +1177,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_k_3"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 30.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_v_1" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -1095,6 +1254,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_v_1"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 20.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_k_1" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -1147,6 +1331,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_k_1"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 30.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_v_4" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -1198,6 +1407,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_v_4"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 20.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_n_4" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -1249,6 +1483,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_n_4"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 20.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="pribor_prd_k_4" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 @@ -1300,6 +1559,31 @@ sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="progress" type="TextureProgressBar" parent="pribor_prd_k_4"] +visible = false +layout_mode = 0 +offset_left = -4.0 +offset_top = 123.0 +offset_right = 89.0 +offset_bottom = 131.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +tooltip_text = " +Состояние процесса контрля прибора +" +mouse_filter = 0 +max_value = 30.0 +nine_patch_stretch = true +stretch_margin_left = 2 +stretch_margin_top = 2 +stretch_margin_right = 2 +stretch_margin_bottom = 2 +texture_under = ExtResource("9_w6m6a") +texture_progress = ExtResource("10_lbx5w") +tint_under = Color(1, 1, 1, 0.419608) +tint_progress = Color(0.890196, 0.486275, 0.196078, 1) +metadata/_edit_lock_ = true + [node name="txr_legend0" type="TextureRect" parent="."] layout_mode = 0 offset_left = 219.0 @@ -1421,6 +1705,14 @@ points = PackedVector2Array(-8, 0, 608, 0) width = 2.0 default_color = Color(1, 1, 1, 0.352941) +[node name="control_prd" type="Button" parent="."] +layout_mode = 0 +offset_left = 1101.0 +offset_top = 64.0 +offset_right = 1326.0 +offset_bottom = 104.0 +text = "Запуск контроля приборов ПРД" + [connection signal="toggled" from="pribor_prd_n_1" to="pribor_prd_n_1" method="_on_toggled"] [connection signal="toggled" from="pribor_uf" to="pribor_uf" method="_on_toggled"] [connection signal="toggled" from="pribor_rtr" to="pribor_rtr" method="_on_toggled"] @@ -1438,3 +1730,4 @@ default_color = Color(1, 1, 1, 0.352941) [connection signal="toggled" from="pribor_prd_v_4" to="pribor_prd_v_4" method="_on_toggled"] [connection signal="toggled" from="pribor_prd_n_4" to="pribor_prd_n_4" method="_on_toggled"] [connection signal="toggled" from="pribor_prd_k_4" to="pribor_prd_k_4" method="_on_toggled"] +[connection signal="pressed" from="control_prd" to="." method="_on_control_prd_pressed"] diff --git a/scripts/prd.gd b/scripts/prd.gd index c857ed18..4cc43403 100644 --- a/scripts/prd.gd +++ b/scripts/prd.gd @@ -153,6 +153,7 @@ class Fs: class PRD: var prd_name: String ## Имя прибора var unit_yau07 ## Юнит эмс + var unit_control: Object var fs_dic: Dictionary ## Массив блоков ФС var yemsg_board: yemsboards.EmsBoard ## Плата ЭМС-Г var state = PrdState.WORK @@ -162,20 +163,23 @@ class PRD: var set_ug_state: bool = true ## Необходимо ли записать в УГ настройки signal update_serviceability() - signal update_progress(progress_value) - var progress_value: float: - set(v): - if progress_value != v: - progress_value = v - #print(progress_value) - call_deferred('emit_signal', 'update_progress') - - func _init(u_name, u_yau07): + func _init(u_name, u_yau07, u_control: Object): prd_name = u_name unit_yau07 = u_yau07 + unit_control = u_control init_ems_g() + init_control(unit_control) + + + func init_control(u_control: Object)->void: + u_control.connect('control_is_over', Callable(self, 'on_control_result')) + + + func on_control_result(): + print_debug('on_control_result') + func init_ems_g(): var in_tbl: Array = [] @@ -291,7 +295,10 @@ func _ready() -> void: check_dir() for prd_name in PRD_NAMES: var unit_prd = network.get_unit_instance(prd_name) - var new_prd = PRD.new(prd_name, unit_prd) + var control_pribor_prd = preload('res://scripts/pribor-prd.gd') + var unit_control = control_pribor_prd.TestPRD.new({'unit_prd': unit_prd}) + add_child(unit_control) + var new_prd = PRD.new(prd_name, unit_prd, unit_control) prd_dict[prd_name] = new_prd for key in FS_PRD.keys(): var fs = Fs.new(key, FS_PRD[key][0]) diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index 62c1f63d..3fd8f4cf 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -1,4 +1,148 @@ class TestPRD extends Node: + const DEVICE_CONSTANT: Dictionary = { + 'PRD_N': { + CONSTANTS = { + 'POWER_UKP_1': 31, + 'POWER_UKP_2': 63, + 'DKM_BIT_2': 1, + 'DKM_BIT_3': 2, + 'BASE_ADDR_EMS_G': 0x120, + 'ADDR_UG_LITERA_1': 0x106, + 'ADDR_UG_LITERA_2': 0x108, + 'ADDR_UG_LITERA_3': 0x10A, + 'TEMP_THRESHOLD': 70, + 'POWER_THRESHOLD': 40, + 'RAY_DOU_NUM': 0x3, + 'ATT_UM_2': 0x2, + 'ATT_UM_3': 0x3, + 'POWER_UM': 100, + 'TIMER_DELAY': 10.0, + 'STATE_MASHINE_TIMER': 0.3, + }, + PRIBOR_CONFIG = { + '1н': {'angle': 0.0, 'sectors': [4, 8]}, + '2н': {'angle': 90.0, 'sectors': [7, 11]}, + '3н': {'angle': 180.0, 'sectors': [6, 10]}, + '4н': {'angle': 270.0, 'sectors': [5, 9]}, + }, + FS_PARAMS = { + 2: {'freq': 932.0, 'width': 100.0}, + 3: {'freq': 1157.0, 'width': 100.0} + }, + START_LITERA = 2 + }, + 'PRD_V': { + CONSTANTS = { + 'POWER_UKP_1': 31, + 'POWER_UKP_2': 63, + 'DKM_BIT_4': 3, + 'DKM_BIT_5': 4, + 'BASE_ADDR_EMS_G': 0x120, + 'ADDR_UG_LITERA_1': 0x106, + 'ADDR_UG_LITERA_2': 0x108, + 'ADDR_UG_LITERA_3': 0x10A, + 'TEMP_THRESHOLD': 70, + 'POWER_THRESHOLD': 40, + 'RAY_DOU_NUM': 0x3, + 'ATT_UM_4': 0x2, + 'ATT_UM_5': 0x3, + 'POWER_UM': 100, + 'TIMER_DELAY': 10.0, + 'STATE_MASHINE_TIMER': 0.3, + }, + PRIBOR_CONFIG = { + '1в': {'angle': 0.0, 'sectors': [12, 16]}, + '2в': {'angle': 90.0, 'sectors': [15, 19]}, + '3в': {'angle': 180.0, 'sectors': [14, 18]}, + '4в': {'angle': 270.0, 'sectors': [13, 17]}, + }, + FS_PARAMS = { + 4: {'freq': 1227.0, 'width': 100.0}, + 5: {'freq': 1575.0, 'width': 110.0}, + }, + START_LITERA = 4 + }, + 'PRD_K': { + CONSTANTS = { + 'POWER_UKP_1': 31, + 'POWER_UKP_2': 63, + 'DKM_BIT_1': 0, + 'DKM_BIT_6': 5, + 'DKM_BIT_7': 6, + 'BASE_ADDR_EMS_G': 0x120, + 'ADDR_UG_LITERA_1': 0x106, + 'ADDR_UG_LITERA_2': 0x108, + 'ADDR_UG_LITERA_3': 0x10A, + 'TEMP_THRESHOLD': 40, + 'POWER_THRESHOLD': 40, + 'RAY_DOU_NUM': 0x3, + 'ATT_UM_1': 0x0, + 'ATT_UM_6': 0x3, + 'ATT_UM_7': 0x2, + 'POWER_UM': 100, + 'TIMER_DELAY': 10.0, + 'STATE_MASHINE_TIMER': 0.3, + }, + PRIBOR_CONFIG = { # Конфигурация параметров для каждого прибора + '1к': {'angle': 0.0, 'sectors': [0, 20, 24]}, + '2к': {'angle': 90.0, 'sectors': [3, 23, 27]}, + '3к': {'angle': 180.0, 'sectors': [2, 22, 26]}, + '4к': {'angle': 270.0, 'sectors': [1, 21, 25]}, + }, + FS_PARAMS = { # Конфигурация частот и ширин для каждого ФС + 1: {'freq': 450.0, 'width': 80.0}, + 6: {'freq': 2450.0, 'width': 110.0}, + 7: {'freq': 4750.0, 'width': 110.0} + }, + START_LITERA = 1 + } + } + + var block_ip_config_n:= { + 'maa2000_1': [0, false], + 'maa2000_2': [1, false], + 'ip9_50_1': [2, false], + 'ip9_50_2': [3, false], + 'ip12_50_1': [4, false], + 'ip5_25': [7, false], + } + var block_kasseta_y5_prd_config_n: = { + 'yau07': false, + 'ems': false, + 'ug': false, + 'ukp1': false, + 'ukp2': false, + } + + # Результаты контроля + var control_results_n: Dictionary = { + 'block_ip': false, # Проверка касет П1 и ИП МА2000 + 'temperature': true, # Проверка температур УМ + 'dkm_2': false, + 'dkm_3': false, + 'dou_2': false, + 'dou_3': false, + 'fs_2': 2, + 'fs_3': 2, + } +#### + var block_ip_config_v := { + 'maa2000_1': [0, false], + 'maa2000_2': [1, false], + 'ip9_50_1': [2, false], + 'ip9_50_2': [3, false], + 'ip12_50_1': [4, false], + 'ip5_25': [7, false], + } + var block_kasseta_y5_prd_config_v: = { + 'yau07': false, + 'ems': false, + 'ug': false, + 'ukp1': false, + 'ukp2': false, + } + + ###### const RAY_m5:= 'RAY_m5' const RAY_5:= 'RAY_5' const RAY_15:= 'RAY_15' @@ -19,25 +163,25 @@ class TestPRD extends Node: TEMPERATURE_UKP_2 = 79, } - enum STATE_MASHINE { - INIT, - FS_TURN_ON, - FS_WORK, - WRITE_ISA, - READ_ISA, - CHEK_KASSETA_Y5, - UG_SET_RAY, - UG_SET_RAY_0, - UG_SET_RAY_1, - UG_SET_RAY_2, - UG_SET_RAY_3, - UG_SET_RAY_4, - UG_SET_RAY_5, - IN_EMS_RUN, - IN_EMS_STOP, - FS_TURN_OFF, - STOP_CONTROL, - AWAIT + enum STATE_MACHINE { + INIT, # 0 + FS_TURN_ON, # 1 + FS_WORK, # 2 + WRITE_ISA, # 3 + READ_ISA, # 4 + CHEK_KASSETA_Y5, # 5 + UG_SET_RAY, # 6 + UG_SET_RAY_0, # 7 + UG_SET_RAY_1, # 8 + UG_SET_RAY_2, # 9 + UG_SET_RAY_3, # 10 + UG_SET_RAY_4, # 11 + UG_SET_RAY_5, # 12 + IN_EMS_RUN, # 13 + IN_EMS_STOP, # 14 + FS_TURN_OFF, # 15 + STOP_CONTROL, # 16 + AWAIT # 17 } const FS_KEYS := { 1: 'fs_1', @@ -72,7 +216,7 @@ class TestPRD extends Node: var block_kasseta_y5_config: Dictionary var control_results: Dictionary var self_name: String - var state: int = STATE_MASHINE.INIT + var state: int = STATE_MACHINE.INIT var current_litera: int var flag_write_isa: bool = false var flag_fs_status_ok: bool = false @@ -81,27 +225,25 @@ class TestPRD extends Node: var unit_prd: Object var module_prd: Object var power_amplify: Array - var control_label: Label + #var control_label: Label var control_timer: Timer = Timer.new() var ems_6666_timer: Timer = Timer.new() + var machine_timer: Timer = Timer.new() var ecms: Dictionary ## Словарь помеховых воздействий - signal control_is_over(control_results, power_result) + signal control_is_over(control_results: Dictionary, power_result: Dictionary) + signal update_progress(progress_value: float) + + var progress_value: float: + set(v): + if progress_value != v: + progress_value = v + call_deferred('emit_signal', 'update_progress', progress_value) ## Инициализация аргуметнов func _init(init_data: Dictionary) -> void: - control_label = init_data['control_label'] - power_amplify = init_data['power_amplifiers'] unit_prd = init_data['unit_prd'] - module_prd = init_data['module_prd'] - constants = init_data['constants'] - pribor_config = init_data['prd_config'] - fs_parameters = init_data['fs_params'] - block_ip_config = init_data['block_ip_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'] func _ready() -> void: @@ -121,7 +263,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) - control_results.temperature = check_temperature_um(status, power_amplify) + #control_results.temperature = check_temperature_um(status, power_amplify) socket_status_ems_g(status) _process_dkm_status(status) if current_litera != 0: @@ -161,113 +303,109 @@ class TestPRD extends Node: ## func state_control_machine() -> void: - var correct_timer = 0 - if current_litera in [3, 5, 7]: - correct_timer = 10 - print(control_timer.get_wait_time()) - module_prd.progress_value = correct_timer + control_timer.get_wait_time() - control_timer.get_time_left() match state: - STATE_MASHINE.INIT: + STATE_MACHINE.INIT: + control_timer.start() _handle_init_state() - STATE_MASHINE.FS_TURN_ON: + STATE_MACHINE.FS_TURN_ON: _handle_fs_turn_on_state() - state = STATE_MASHINE.FS_WORK - STATE_MASHINE.FS_WORK: + state = STATE_MACHINE.FS_WORK + STATE_MACHINE.FS_WORK: if ecms.size() and flag_fs_status_ok: - ems_6666_timer.start() _handle_fs_work_state() - STATE_MASHINE.CHEK_KASSETA_Y5: + STATE_MACHINE.CHEK_KASSETA_Y5: if block_kasseta_y5_config['yau07']: - state = STATE_MASHINE.WRITE_ISA - STATE_MASHINE.WRITE_ISA: + ems_6666_timer.start() + state = STATE_MACHINE.WRITE_ISA + STATE_MACHINE.WRITE_ISA: if not flag_write_isa: _handle_ug_set_state(0x6) - state = STATE_MASHINE.READ_ISA - STATE_MASHINE.READ_ISA: + state = STATE_MACHINE.READ_ISA + STATE_MACHINE.READ_ISA: if (unit_prd.cmd_state == unit_prd.CmdState.DONE) or (unit_prd.cmd_state == unit_prd.CmdState.FAIL): _handle_read_isa(module_prd, unit_prd, [constants.ADDR_UG_LITERA_1, constants.ADDR_UG_LITERA_2, constants.ADDR_UG_LITERA_3]) flag_write_isa = false - state = STATE_MASHINE.UG_SET_RAY - STATE_MASHINE.UG_SET_RAY: + state = STATE_MACHINE.UG_SET_RAY + STATE_MACHINE.UG_SET_RAY: var addr: int = constants.ADDR_UG_LITERA_1 if current_litera == 3 or current_litera == 5 or current_litera == 7: addr = constants.ADDR_UG_LITERA_2 if unit_prd.isa_ports.has(addr) and (unit_prd.cmd_state == unit_prd.CmdState.DONE): if unit_prd.isa_ports[addr] & 0x07 == 0: - state = STATE_MASHINE.UG_SET_RAY_1 + state = STATE_MACHINE.UG_SET_RAY_1 elif unit_prd.isa_ports[addr] & 0x07 == 1: - state = STATE_MASHINE.UG_SET_RAY_2 + state = STATE_MACHINE.UG_SET_RAY_2 elif unit_prd.isa_ports[addr] & 0x07 == 2: - state = STATE_MASHINE.UG_SET_RAY_3 + state = STATE_MACHINE.UG_SET_RAY_3 elif unit_prd.isa_ports[addr] & 0x07 == 3: - state = STATE_MASHINE.UG_SET_RAY_4 + state = STATE_MACHINE.UG_SET_RAY_4 elif unit_prd.isa_ports[addr] & 0x07 == 4: - state = STATE_MASHINE.UG_SET_RAY_5 + state = STATE_MACHINE.UG_SET_RAY_5 elif unit_prd.isa_ports[addr] & 0x07 == 5: if not current_litera == 1: control_results = check_dou_result(control_results, power_result, self_name, current_litera, constants) - state = STATE_MASHINE.IN_EMS_STOP + state = STATE_MACHINE.IN_EMS_STOP elif unit_prd.isa_ports[addr] & 0x07 == 6: - state = STATE_MASHINE.UG_SET_RAY_0 + state = STATE_MACHINE.UG_SET_RAY_0 - STATE_MASHINE.UG_SET_RAY_0: + STATE_MACHINE.UG_SET_RAY_0: if flag_si_fs_input and not flag_write_isa: control_timer.stop() _handle_ug_set_state(0x0) await get_tree().create_timer(0.5).timeout - state = STATE_MASHINE.READ_ISA - STATE_MASHINE.UG_SET_RAY_1: + state = STATE_MACHINE.READ_ISA + STATE_MACHINE.UG_SET_RAY_1: if not flag_write_isa: _handle_ug_set_state(0x1) - state = STATE_MASHINE.READ_ISA - STATE_MASHINE.UG_SET_RAY_2: + state = STATE_MACHINE.READ_ISA + STATE_MACHINE.UG_SET_RAY_2: if not flag_write_isa: _handle_ug_set_state(0x2) - state = STATE_MASHINE.READ_ISA - STATE_MASHINE.UG_SET_RAY_3: + state = STATE_MACHINE.READ_ISA + STATE_MACHINE.UG_SET_RAY_3: if not flag_write_isa: _handle_ug_set_state(0x3) - state = STATE_MASHINE.READ_ISA - STATE_MASHINE.UG_SET_RAY_4: + state = STATE_MACHINE.READ_ISA + STATE_MACHINE.UG_SET_RAY_4: if not flag_write_isa: _handle_ug_set_state(0x4) - state = STATE_MASHINE.READ_ISA - STATE_MASHINE.UG_SET_RAY_5: + state = STATE_MACHINE.READ_ISA + STATE_MACHINE.UG_SET_RAY_5: if not flag_write_isa: _handle_ug_set_state(0x5) - state = STATE_MASHINE.READ_ISA - STATE_MASHINE.IN_EMS_STOP: - ems_6666_timer.stop() - state = STATE_MASHINE.FS_TURN_OFF - STATE_MASHINE.FS_TURN_OFF: - ems_6666_timer.stop() + state = STATE_MACHINE.READ_ISA + STATE_MACHINE.IN_EMS_STOP: + state = STATE_MACHINE.FS_TURN_OFF + STATE_MACHINE.FS_TURN_OFF: _handle_fs_turn_off_state() - state = STATE_MASHINE.STOP_CONTROL - STATE_MASHINE.STOP_CONTROL: + ems_6666_timer.stop() + state = STATE_MACHINE.STOP_CONTROL + STATE_MACHINE.STOP_CONTROL: _handle_stop_control_state() + if state != STATE_MACHINE.AWAIT: + progressbar_status() func _handle_init_state() -> void: - control_label.text = 'Выполняется инициализация ФС-%s' % current_litera + print(current_litera) + #control_label.text = 'Выполняется инициализация ФС-%s' % current_litera if current_litera in [1, 2, 3, 4, 5, 6, 7]: if not ecms.size(): - state = STATE_MASHINE.FS_TURN_ON + state = STATE_MACHINE.FS_TURN_ON else: 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) - state = STATE_MASHINE.AWAIT + state = STATE_MACHINE.AWAIT func _handle_fs_turn_on_state() -> void: - control_label.text = 'Выполняется включение ФС-%s' % current_litera + #control_label.text = 'Выполняется включение ФС-%s' % current_litera manage_fs(true, self_name, pribor_config, fs_parameters, current_litera, constants.POWER_UM) - control_timer.wait_time = constants.TIMER_DELAY - control_timer.start() func _handle_fs_work_state() -> void: - control_label.text = 'Выполняется проверка ФС-%s' % current_litera + #control_label.text = 'Выполняется проверка ФС-%s' % current_litera 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 \ @@ -275,7 +413,7 @@ class TestPRD extends Node: (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 + state = STATE_MACHINE.CHEK_KASSETA_Y5 func _handle_ug_set_state(RAY_DOU_NUM: int) -> void: @@ -298,11 +436,11 @@ class TestPRD extends Node: dic_att['ATT_UM_1'] = constants.ATT_UM_2 dic_att['ATT_UM_2'] = constants.ATT_UM_3 - var log_text = dic_att.ATT_UM_3 if current_litera == 1 else dic_att.ATT_UM_1 if current_litera in [2, 4, 6] else dic_att.ATT_UM_2 - control_label.text = 'Выполняется настройка угла (%s) и атт (0x0%s)' % [ - dic_att.RAY_DOU_NUM, - log_text - ] + #var log_text = dic_att.ATT_UM_3 if current_litera == 1 else dic_att.ATT_UM_1 if current_litera in [2, 4, 6] else dic_att.ATT_UM_2 + #control_label.text = 'Выполняется настройка угла (%s) и атт (0x0%s)' % [ + #dic_att.RAY_DOU_NUM, + #log_text + #] flag_write_isa = on_ug_setting(module_prd, unit_prd, dic_att) @@ -311,15 +449,15 @@ class TestPRD extends Node: func _handle_fs_turn_off_state() -> void: - control_label.text = 'Выполняется отключение ФС-%s' % current_litera + #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) func _handle_stop_control_state() -> void: - control_label.text = 'Выполняется завершение проверки ФС-%s' % current_litera + #control_label.text = 'Выполняется завершение проверки ФС-%s' % current_litera _advance_to_next_fs() - state = STATE_MASHINE.INIT + state = STATE_MACHINE.INIT func _advance_to_next_fs() -> void: @@ -350,6 +488,31 @@ class TestPRD extends Node: var current_unit = unit_prd.name var parts = current_unit.split('-') self_name = parts[-1] + if self_name == '1н' or self_name == '2н' or self_name == '3н' or self_name == '4н': + #module_prd = init_data['module_prd'] + constants = DEVICE_CONSTANT.PRD_N.CONSTANTS + pribor_config = DEVICE_CONSTANT.PRD_N.PRIBOR_CONFIG + fs_parameters = DEVICE_CONSTANT.PRD_N.FS_PARAMS + block_ip_config = block_ip_config_n + block_kasseta_y5_config = block_kasseta_y5_prd_config_n + control_results = control_results_n + current_litera = DEVICE_CONSTANT.PRD_N.START_LITERA + if self_name == '1в' or self_name == '2в' or self_name == '3в' or self_name == '4в': + constants = DEVICE_CONSTANT.PRD_V.CONSTANTS + pribor_config = DEVICE_CONSTANT.PRD_V.PRIBOR_CONFIG + fs_parameters = DEVICE_CONSTANT.PRD_V.FS_PARAMS + block_ip_config = block_ip_config_n + block_kasseta_y5_config = block_kasseta_y5_prd_config_v + control_results = control_results_n + current_litera = DEVICE_CONSTANT.PRD_V.START_LITERA + if self_name == '1к' or self_name == '2к' or self_name == '3к' or self_name == '4к': + constants = DEVICE_CONSTANT.PRD_K.CONSTANTS + pribor_config = DEVICE_CONSTANT.PRD_K.PRIBOR_CONFIG + fs_parameters = DEVICE_CONSTANT.PRD_K.FS_PARAMS + block_ip_config = block_ip_config_n + block_kasseta_y5_config = block_kasseta_y5_prd_config_n + control_results = control_results_n + current_litera = DEVICE_CONSTANT.PRD_K.START_LITERA func setup_timer() -> void: @@ -357,12 +520,31 @@ class TestPRD extends Node: control_timer.timeout.connect(on_stop_control) control_timer.one_shot = true control_timer.wait_time = constants.TIMER_DELAY - control_timer.start() add_child(ems_6666_timer) ems_6666_timer.timeout.connect(_on_ems_6666_timer) ems_6666_timer.wait_time = 1.0 + add_child(machine_timer) + machine_timer.timeout.connect(_on_machine_timer) + machine_timer.wait_time = 1.3 + + + func _on_machine_timer(): + #print_debug(progress_value) + state_control_machine() + + var cc: int = 0 + func progressbar_status() -> void: + match state: + STATE_MACHINE.AWAIT: + cc = 0 + STATE_MACHINE.INIT: + cc += 10 if current_litera in [3, 5] else 20 if current_litera == 7 else 0 + if control_timer.get_time_left() > 0: + progress_value = cc + control_timer.get_wait_time() - control_timer.get_time_left() + #print([cc, control_timer.get_wait_time() - control_timer.get_time_left(), state]) + func _process_dkm_status(status: PackedByteArray) -> void: if not control_results.has(_get_current_fs_key()): @@ -410,18 +592,17 @@ class TestPRD extends Node: static func _get_ray_key(machine_state: int) -> String: match machine_state: - STATE_MASHINE.UG_SET_RAY_0: return RAY_m5 - STATE_MASHINE.UG_SET_RAY_1: return RAY_5 - STATE_MASHINE.UG_SET_RAY_2: return RAY_15 - STATE_MASHINE.UG_SET_RAY_3: return RAY_25 - STATE_MASHINE.UG_SET_RAY_4: return RAY_35 - STATE_MASHINE.UG_SET_RAY_5: return RAY_45 + STATE_MACHINE.UG_SET_RAY_0: return RAY_m5 + STATE_MACHINE.UG_SET_RAY_1: return RAY_5 + STATE_MACHINE.UG_SET_RAY_2: return RAY_15 + STATE_MACHINE.UG_SET_RAY_3: return RAY_25 + STATE_MACHINE.UG_SET_RAY_4: return RAY_35 + STATE_MACHINE.UG_SET_RAY_5: return RAY_45 _: return '' func on_stop_control() -> void: - _handle_fs_turn_off_state() - state = STATE_MASHINE.FS_TURN_OFF + state = STATE_MACHINE.FS_TURN_OFF static func on_control_result(ip_config: Dictionary, ctrl_results: Dictionary) -> Dictionary: