diff --git a/scenes/pribor-afsp/pribor-afsp.gd b/scenes/pribor-afsp/pribor-afsp.gd index 67a150b..7437ff9 100644 --- a/scenes/pribor-afsp/pribor-afsp.gd +++ b/scenes/pribor-afsp/pribor-afsp.gd @@ -99,4 +99,4 @@ func _on_request_completed(result, _response_code, headers, body: PackedByteArra func _on_item_pressed(block_a: Control): var metas = block_a.get_meta_list() for n in metas: - var v = block_a.get_meta(n) + var _v = block_a.get_meta(n) diff --git a/scenes/pribor-prd-k/pribor-prd-k.gd b/scenes/pribor-prd-k/pribor-prd-k.gd index a185a98..ff63114 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.gd +++ b/scenes/pribor-prd-k/pribor-prd-k.gd @@ -37,15 +37,15 @@ func set_frame(node_frame: Node, val: int): node_frame.set_frame(val) func start_control() -> void: - set_default_state() + set_default_state(get_tree().get_nodes_in_group('default_reset'), get_tree().get_nodes_in_group('power_amplifier')) find_labels(self) -func set_default_state() -> void: - for group in get_tree().get_nodes_in_group('default_reset'): +static func set_default_state(default_reset_array_node: Array, power_amplifier_arr_node: Array) -> void: + for group in default_reset_array_node: group.state = STATE_VAL.NONE - for group in get_tree().get_nodes_in_group('power_amplifier'): + for group in power_amplifier_arr_node: group.state = STATE_VAL.NONE @@ -83,10 +83,16 @@ static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifi if powamp_meta == 'um_8' and not fs_result.fs_1: return if powamp_meta in ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'] and not fs_result.fs_6: return if powamp_meta in ['um_9', 'um_10', 'um_11', 'um_12', 'um_13', 'um_14'] and not fs_result.fs_7: return - i_powapm.value0 = pow_dic[powamp_meta] - for i_p in pow_dic[powamp_meta]: - if i_p < POWER_THRESHOLD: + + if powamp_meta == 'um_8': + i_powapm.value0 = [pow_dic[powamp_meta][5]] + if pow_dic[powamp_meta][5] < POWER_THRESHOLD: status = STATE_VAL.ERROR + else: + i_powapm.value0 = pow_dic[powamp_meta] + for i_p in pow_dic[powamp_meta]: + if i_p < POWER_THRESHOLD: + status = STATE_VAL.ERROR i_powapm.state = status @@ -121,7 +127,7 @@ func on_press_device() -> void: on_control_result(for_control_result) -func on_control_result(for_result_dic: Dictionary) -> void: +static func on_control_result(for_result_dic: Dictionary) -> void: temperature_fill(for_result_dic.power_amplifier, for_result_dic.temperature_um) var block_kasseta_y5_prd_config_k: Dictionary = for_result_dic.block_kasseta_y5_config @@ -134,14 +140,15 @@ func on_control_result(for_result_dic: Dictionary) -> void: break node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_k[meta_y5] else STATE_VAL.ERROR - var block_ip_config_k: Dictionary = unit_prd_k.block_ip_config - var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') - for power_supply in node_ip_power_arr: + var block_ip_config_k: Dictionary = for_result_dic.block_ip_config + for power_supply in for_result_dic.node_ip_power_arr: var meta_ip = power_supply.get_meta('ip') 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 - ## If control is end + if not for_result_dic.control_is_over: + set_default_state(for_result_dic.default_reset_array_node, for_result_dic.power_amplifier) + return var result_dic: Dictionary = for_result_dic.result_dic for f in for_result_dic.fs_nodes: var fs_meta: String = f.get_meta('fs') diff --git a/scenes/pribor-prd-k/pribor-prd-k.tscn b/scenes/pribor-prd-k/pribor-prd-k.tscn index bb6d890..2a448dd 100644 --- a/scenes/pribor-prd-k/pribor-prd-k.tscn +++ b/scenes/pribor-prd-k/pribor-prd-k.tscn @@ -51,7 +51,7 @@ offset_top = 242.0 offset_right = 485.0 offset_bottom = 432.0 -[node name="maa2000_A22" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("1_8dmgr")] +[node name="maa2000_A22" parent="." groups=["power_supply"] instance=ExtResource("1_8dmgr")] layout_mode = 0 offset_left = 485.0 offset_top = 907.0 @@ -70,7 +70,7 @@ offset_bottom = 907.0 fname = "ДОУ-6" rname = "A7" -[node name="maa2000_A23" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("1_8dmgr")] +[node name="maa2000_A23" parent="." groups=["power_supply"] instance=ExtResource("1_8dmgr")] layout_mode = 0 offset_left = 8.0 offset_top = 907.0 @@ -292,7 +292,7 @@ patch_margin_bottom = 16 script = ExtResource("7_xpa2n") fname = "Кассета П-1" -[node name="ref_A26" parent="kasseta_p_1" groups=["default_reset", "power_supply"] instance=ExtResource("8_la5yt")] +[node name="ref_A26" parent="kasseta_p_1" groups=["power_supply"] instance=ExtResource("8_la5yt")] offset_left = 9.0 offset_top = 33.0 offset_right = 59.0 @@ -301,7 +301,7 @@ fname = "ИП9-50" rname = "A23" metadata/ip = "ip9_50_1" -[node name="ref_A23" parent="kasseta_p_1" groups=["default_reset", "power_supply"] instance=ExtResource("8_la5yt")] +[node name="ref_A23" parent="kasseta_p_1" groups=["power_supply"] instance=ExtResource("8_la5yt")] offset_left = 59.0 offset_top = 33.0 offset_right = 109.0 @@ -310,7 +310,7 @@ fname = "ИП9-50" rname = "A24" metadata/ip = "ip9_50_2" -[node name="ref_A24" parent="kasseta_p_1" groups=["default_reset", "power_supply"] instance=ExtResource("8_la5yt")] +[node name="ref_A24" parent="kasseta_p_1" groups=["power_supply"] instance=ExtResource("8_la5yt")] offset_left = 109.0 offset_top = 33.0 offset_right = 159.0 @@ -361,11 +361,11 @@ position = Vector2(255, 619) sprite_frames = SubResource("SpriteFrames_di0aa") [node name="output_0" type="AnimatedSprite2D" parent="."] -position = Vector2(406, 464) +position = Vector2(355, 464) sprite_frames = SubResource("SpriteFrames_di0aa") [node name="output_1" type="AnimatedSprite2D" parent="."] -position = Vector2(355, 466) +position = Vector2(405, 464) sprite_frames = SubResource("SpriteFrames_di0aa") [node name="output_2" type="AnimatedSprite2D" parent="."] diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index c8b7fd7..745ae02 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.gd +++ b/scenes/pribor-prd-n/pribor-prd-n.gd @@ -37,15 +37,15 @@ func set_frame(node_frame: Node, val: int): node_frame.set_frame(val) func start_control() -> void: - set_default_state() + set_default_state(get_tree().get_nodes_in_group('default_reset'), get_tree().get_nodes_in_group('power_amplifier')) find_labels(self) -func set_default_state() -> void: - for group in get_tree().get_nodes_in_group('default_reset'): +static func set_default_state(default_reset_array_node: Array, power_amplifier_arr_node: Array) -> void: + for group in default_reset_array_node: group.state = STATE_VAL.NONE - for group in get_tree().get_nodes_in_group('power_amplifier'): + for group in power_amplifier_arr_node: group.state = STATE_VAL.NONE @@ -88,11 +88,13 @@ func on_press_device() -> void: var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') var power_amplifier_arr_node: Array = get_tree().get_nodes_in_group('power_amplifier') + var default_reset_array_node = get_tree().get_nodes_in_group('default_reset') var module_fs_2: Node = $kasseta_FS_ND/ref_A4 var dou_2: Node = $dou2_A5 var module_fs_3: Node = $kasseta_FS_ND/ref_A3 var dou_3: Node = $dou3_A6 var for_control_result: Dictionary = { + 'control_is_over': unit_prd_n.flag_control_is_over, 'result_dic': unit_prd_n.control_results, 'power_dic': unit_prd_n.power_result, 'block_kasseta_y5_config': unit_prd_n.block_kasseta_y5_config, @@ -102,6 +104,7 @@ func on_press_device() -> void: 'node_ip_power_arr': node_ip_power_arr, 'fs_nodes': fs_nodes, 'power_amplifier': power_amplifier_arr_node, + 'default_reset_array_node': default_reset_array_node, 'POWER_THRESHOLD': unit_prd_n.constants.POWER_THRESHOLD, 'name_prd': unit_prd_n.self_name, 'module_fs_2': module_fs_2, @@ -112,7 +115,7 @@ func on_press_device() -> void: on_control_result(for_control_result) -func on_control_result(for_result_dic: Dictionary) -> void: +static func on_control_result(for_result_dic: Dictionary) -> void: temperature_fill(for_result_dic.power_amplifier, for_result_dic.temperature_um) var block_kasseta_y5_prd_config_n: Dictionary = for_result_dic.block_kasseta_y5_config @@ -125,14 +128,15 @@ func on_control_result(for_result_dic: Dictionary) -> void: break node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR - var block_ip_config_n: Dictionary = unit_prd_n.block_ip_config - var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') - for power_supply in node_ip_power_arr: + var block_ip_config_n: Dictionary = for_result_dic.block_ip_config + for power_supply in for_result_dic.node_ip_power_arr: var meta_ip = power_supply.get_meta('ip') 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 - ## If control is end + if not for_result_dic.control_is_over: + set_default_state(for_result_dic.default_reset_array_node, for_result_dic.power_amplifier) + return var result_dic: Dictionary = for_result_dic.result_dic for f in for_result_dic.fs_nodes: var fs_meta: String = f.get_meta('fs') diff --git a/scenes/pribor-prd-n/pribor-prd-n.tscn b/scenes/pribor-prd-n/pribor-prd-n.tscn index de605fe..acb800a 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.tscn +++ b/scenes/pribor-prd-n/pribor-prd-n.tscn @@ -40,7 +40,7 @@ offset_right = 15.0 offset_bottom = 30.0 script = ExtResource("1_bnnv3") -[node name="maa2000_A23" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("2_is25t")] +[node name="maa2000_A23" parent="." groups=["power_supply"] instance=ExtResource("2_is25t")] layout_mode = 2 offset_left = 8.0 offset_top = 877.0 @@ -50,7 +50,7 @@ fname = "MAA2000" rname = "A23" metadata/ip = "maa2000_2" -[node name="maa2000_A22" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("2_is25t")] +[node name="maa2000_A22" parent="." groups=["power_supply"] instance=ExtResource("2_is25t")] layout_mode = 2 offset_left = 485.0 offset_top = 877.0 @@ -254,7 +254,7 @@ patch_margin_bottom = 16 script = ExtResource("6_b5wvk") fname = "Кассета П-1" -[node name="ref_A21" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_eoqf2")] +[node name="ref_A21" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_eoqf2")] offset_left = 9.0 offset_top = 33.0 offset_right = 59.0 @@ -263,7 +263,7 @@ fname = "ИП12-50" rname = "A21" metadata/ip = "ip12_50_1" -[node name="ref_A20" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_eoqf2")] +[node name="ref_A20" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_eoqf2")] offset_left = 59.0 offset_top = 33.0 offset_right = 109.0 @@ -272,7 +272,7 @@ fname = "ИП9-50" rname = "A20" metadata/ip = "ip9_50_1" -[node name="ref_A19" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_eoqf2")] +[node name="ref_A19" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_eoqf2")] offset_left = 109.0 offset_top = 33.0 offset_right = 159.0 diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index 6c32f5a..a3d9f4c 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -34,15 +34,15 @@ func set_frame(node_frame: Node, val: int): node_frame.set_frame(val) func start_control() -> void: - set_default_state() + set_default_state(get_tree().get_nodes_in_group('default_reset'), get_tree().get_nodes_in_group('power_amplifier')) find_labels(self) -func set_default_state() -> void: - for group in get_tree().get_nodes_in_group('default_reset'): +static func set_default_state(default_reset_array_node: Array, power_amplifier_arr_node: Array) -> void: + for group in default_reset_array_node: group.state = STATE_VAL.NONE - for group in get_tree().get_nodes_in_group('power_amplifier'): + for group in power_amplifier_arr_node: group.state = STATE_VAL.NONE @@ -135,11 +135,13 @@ func on_press_device() -> void: var node_ip_power_arr: Array = get_tree().get_nodes_in_group('power_supply') var fs_nodes: Array = get_tree().get_nodes_in_group('fs_group') var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier') + var default_reset_array_node: Array = get_tree().get_nodes_in_group('default_reset') var module_fs_4: Node = $kasseta_FS_VD/ref_A6 var dou_4: Node = $dou4_A5 var module_fs_5: Node = $kasseta_FS_VD/ref_A2 var dou_5: Node = $dou5_A6 var for_control_result: Dictionary = { + 'control_is_over': unit_prd_v.flag_control_is_over, 'result_dic': unit_prd_v.control_results, 'power_dic': unit_prd_v.power_result, 'block_kasseta_y5_config': unit_prd_v.block_kasseta_y5_config, @@ -149,6 +151,7 @@ func on_press_device() -> void: 'node_ip_power_arr': node_ip_power_arr, 'fs_nodes': fs_nodes, 'power_amplifier': power_amplifier, + 'default_reset_array_node': default_reset_array_node, 'POWER_THRESHOLD': unit_prd_v.constants.POWER_THRESHOLD, 'name_prd': unit_prd_v.self_name, 'module_fs_4': module_fs_4, @@ -178,7 +181,9 @@ static func on_control_result(for_result_dic: Dictionary) -> void: if block_ip_config_v.has(meta_ip) and block_kasseta_y5_prd_config_v.ug: power_supply.state = STATE_VAL.GOOD if block_ip_config_v[meta_ip][1] else STATE_VAL.ERROR - ## If control is end + if not for_result_dic.control_is_over: + set_default_state(for_result_dic.default_reset_array_node, for_result_dic.power_amplifier) + return var result_dic: Dictionary = for_result_dic.result_dic for f in for_result_dic.fs_nodes: var fs_meta: String = f.get_meta('fs') diff --git a/scenes/pribor-prd-v/pribor-prd-v.tscn b/scenes/pribor-prd-v/pribor-prd-v.tscn index 03476d9..d2b7ead 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.tscn +++ b/scenes/pribor-prd-v/pribor-prd-v.tscn @@ -41,7 +41,7 @@ offset_right = 15.0 offset_bottom = 30.0 script = ExtResource("1_c20s6") -[node name="maa2000_A22" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("2_xpo4b")] +[node name="maa2000_A22" parent="." groups=["power_supply"] instance=ExtResource("2_xpo4b")] layout_mode = 2 offset_left = 485.0 offset_top = 877.0 @@ -60,7 +60,7 @@ offset_bottom = 877.0 fname = "ДОУ-4" rname = "A5" -[node name="maa2000_A23" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("2_xpo4b")] +[node name="maa2000_A23" parent="." groups=["power_supply"] instance=ExtResource("2_xpo4b")] layout_mode = 2 offset_left = 8.0 offset_top = 877.0 @@ -203,7 +203,7 @@ patch_margin_bottom = 16 script = ExtResource("6_os4mt") fname = "Кассета П-1В" -[node name="ref_A19" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_38u2b")] +[node name="ref_A19" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_38u2b")] offset_left = 9.0 offset_top = 33.0 offset_right = 59.0 @@ -212,7 +212,7 @@ fname = "ИП9-50" rname = "A19" metadata/ip = "ip9_50_1" -[node name="ref_A20" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_38u2b")] +[node name="ref_A20" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_38u2b")] offset_left = 59.0 offset_top = 33.0 offset_right = 109.0 @@ -221,7 +221,7 @@ fname = "ИП9-50" rname = "A20" metadata/ip = "ip9_50_2" -[node name="ref_A21" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_38u2b")] +[node name="ref_A21" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_38u2b")] offset_left = 109.0 offset_top = 33.0 offset_right = 159.0 @@ -395,11 +395,11 @@ horizontal_alignment = 1 metadata/_edit_lock_ = true [node name="input_0" type="AnimatedSprite2D" parent="."] -position = Vector2(209, 578) +position = Vector2(457, 586) sprite_frames = SubResource("SpriteFrames_s5gcy") [node name="input_1" type="AnimatedSprite2D" parent="."] -position = Vector2(457, 578) +position = Vector2(209, 586) sprite_frames = SubResource("SpriteFrames_s5gcy") [node name="output_0" type="AnimatedSprite2D" parent="."] diff --git a/scenes/контроль/блок-к.tscn b/scenes/контроль/блок-к.tscn index ac05dd9..968fa31 100644 --- a/scenes/контроль/блок-к.tscn +++ b/scenes/контроль/блок-к.tscn @@ -365,11 +365,12 @@ layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 tooltip_text = " -Текущее: 0.00 -Диапазон: 0.00…70.00" +Текущее: -40.00 +Диапазон: -40.00…70.00" mouse_filter = 0 min_value = -40.0 max_value = 70.0 +value = -40.0 fill_mode = 3 nine_patch_stretch = true stretch_margin_left = 8 diff --git a/scenes/контроль/кассета-п-2.tscn b/scenes/контроль/кассета-п-2.tscn index abe840d..cf2dd65 100644 --- a/scenes/контроль/кассета-п-2.tscn +++ b/scenes/контроль/кассета-п-2.tscn @@ -14,7 +14,7 @@ patch_margin_right = 16 patch_margin_bottom = 16 script = ExtResource("2_mdnod") -[node name="ref_A26" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("3_4a27g")] +[node name="ref_A26" parent="." groups=["power_supply"] instance=ExtResource("3_4a27g")] offset_left = 10.0 offset_top = 30.0 offset_right = 60.0 @@ -23,7 +23,7 @@ fname = "ИП9-50" rname = "A22" metadata/ip = "ip9_50_3" -[node name="ref_A23" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("3_4a27g")] +[node name="ref_A23" parent="." groups=["power_supply"] instance=ExtResource("3_4a27g")] offset_left = 60.0 offset_top = 30.0 offset_right = 110.0 diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index b26198f..db6f79f 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -2,6 +2,7 @@ class_name TestPRD extends Node # Константы const CONFIG_PATH = "user://config/setting_prd_control.json" +const DEFAULT_CONFIG_PATH = "res://config/setting_prd_control.json" const RAY_m5: String = "RAY_m5" const RAY_5: String = "RAY_5" @@ -61,6 +62,7 @@ var flag_fs_status_ok: bool = false var flag_si_fs_input: bool = false var flag_si_fs_output: bool = false var flag_in_control: bool = false +var flag_control_is_over: bool = false var unit_prd: Object var control_timer: Timer = Timer.new() var ems_6666_timer: Timer = Timer.new() @@ -109,7 +111,24 @@ func _get_ray_key(machine_state: int) -> String: return _ray_state_mapping.get(machine_state, "") +func _ensure_config_exists() -> bool: + DirAccess.make_dir_recursive_absolute("user://config") + if FileAccess.file_exists(CONFIG_PATH): + return true + if not FileAccess.file_exists(DEFAULT_CONFIG_PATH): + return false + var src := FileAccess.open(DEFAULT_CONFIG_PATH, FileAccess.READ) + var dst := FileAccess.open(CONFIG_PATH, FileAccess.WRITE) + if src == null or dst == null: + return false + dst.store_string(src.get_as_text()) + src.close() + dst.close() + return true + + func _load_configuration() -> void: + if not _ensure_config_exists(): return var config_file = FileAccess.open(CONFIG_PATH, FileAccess.READ) if config_file: var json_text = config_file.get_as_text() @@ -184,13 +203,14 @@ func on_data_received(unit_pribor: Object) -> void: return _process_dkm_status(status) - if current_litera != 0: + if current_litera != 0: # Формирование мощностей в литерах var tek_litera: Dictionary = power_for_litera[current_litera] var interes = _get_ray_key(state) if interes != '': tek_litera[_get_ray_key(state)] = power_um_ukp(status, current_litera, tek_litera[_get_ray_key(state)]) power_for_litera[current_litera] = tek_litera + var ems_input_1: int var ems_input_2: int var ems_input_lit_1: int @@ -202,17 +222,18 @@ var ems_output_lit_1: int func _get_data_index(key: String) -> int: return data_indices.get(key, -1) + func socket_status_ems_g(packet_form_yau_07: PackedByteArray) -> void: if self_name in ['1н', '2н', '3н', '4н']: ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 9)) != 0 ems_input_2 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 10)) != 0 if self_name in ['1в', '2в', '3в', '4в']: ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 11)) != 0 - ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 12)) != 0 + ems_input_2 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 12)) != 0 if self_name in ['1к', '2к', '3к', '4к']: - ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 13)) != 0 - ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 14)) != 0 ems_input_lit_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 8)) != 0 + ems_input_1 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 13)) != 0 + ems_input_2 = (packet_form_yau_07.decode_u16(_get_data_index('IN_BLANK_PRD')) & (1 << 14)) != 0 ems_output_1 = (packet_form_yau_07.decode_u16(_get_data_index('OUT_BLANK_PRD')) & (1 << 4)) != 0 ems_output_2 = (packet_form_yau_07.decode_u16(_get_data_index('OUT_BLANK_PRD')) & (1 << 5)) != 0 @@ -334,7 +355,8 @@ func state_control_machine() -> void: STATE_MACHINE.STOP_CONTROL: _handle_stop_control_state() ## В машине состояний вызов изменения состояния прогресс бара контроля - progressbar_status() + if block_kasseta_y5_config['yau07']: + progressbar_status() ## 'Выполняется инициализация ФС-%s' % current_litera @@ -353,6 +375,7 @@ func _handle_init_state() -> void: control_results = on_control_result(block_ip_config, control_results) power_result = prep_power(power_for_litera, self_name) emit_signal('control_is_over') + flag_control_is_over = true machine_timer.stop() @@ -530,12 +553,12 @@ func setup_timer() -> void: func on_mode_changed(in_tree: bool) -> void: flag_in_control = in_tree if not in_tree: ## TODO: Дополнительная проверка если контроль идет, если нет, то смысла вызывать нет + flag_control_is_over = false progress_value = 0 machine_timer.stop() state = STATE_MACHINE.INIT _handle_fs_turn_off_state() #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]]) - func _process_dkm_status(status: PackedByteArray) -> void: diff --git a/table/table.gd b/table/table.gd index 0392d5a..14037c0 100644 --- a/table/table.gd +++ b/table/table.gd @@ -325,8 +325,9 @@ func _set_row_selected(i_row: int, selected: bool = true) -> void: var node = nodes[node_key] var selector = nodes[selector_key] nodes.erase(selector_key) - if is_instance_valid(selector): - node.remove_child(selector) + if is_instance_valid(node) and is_instance_valid(selector): + if selector.get_parent() == node: + node.remove_child(selector) selector.queue_free() else: push_warning('обращение к удалённому элементу \"%s\"' % selector_key)