diff --git a/scenes/pribor-prd-n/pribor-prd-n.gd b/scenes/pribor-prd-n/pribor-prd-n.gd index 42b39cb4..cd835968 100644 --- a/scenes/pribor-prd-n/pribor-prd-n.gd +++ b/scenes/pribor-prd-n/pribor-prd-n.gd @@ -159,7 +159,7 @@ func on_mode_changed(in_tree: bool) -> void: mashine_timer.start() -func power_fill(pow_dic: Dictionary) -> void: +func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void: #if not control_prd_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') @@ -169,6 +169,8 @@ func power_fill(pow_dic: Dictionary) -> void: if pow_dic[powamp_meta].size() < 6: status = STATE_VAL.ERROR else: + if powamp_meta in ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'] and not fs_result.fs_2: return + if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_3: return i_powapm.value0 = pow_dic[powamp_meta] for i_p in pow_dic[powamp_meta]: if i_p < constants_n.POWER_THRESHOLD: @@ -214,7 +216,7 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: else: result_dic.fs_3 = 0 - power_fill(power_dic) + power_fill(power_dic, result_dic) var result = true for device in result_dic.values(): diff --git a/scenes/pribor-prd-v/pribor-prd-v.gd b/scenes/pribor-prd-v/pribor-prd-v.gd index 35e9ff40..f50352f1 100644 --- a/scenes/pribor-prd-v/pribor-prd-v.gd +++ b/scenes/pribor-prd-v/pribor-prd-v.gd @@ -159,7 +159,7 @@ func on_mode_changed(in_tree: bool) -> void: mashine_timer.start() -func power_fill(pow_dic: Dictionary) -> void: +func power_fill(pow_dic: Dictionary, fs_result: Dictionary) -> void: 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') @@ -167,6 +167,8 @@ func power_fill(pow_dic: Dictionary) -> void: if pow_dic[powamp_meta].size() < 6: status = STATE_VAL.ERROR else: + if powamp_meta in ['um_1', 'um_2', 'um_3', 'um_4', 'um_5', 'um_6'] and not fs_result.fs_4: return + if powamp_meta in ['um_7', 'um_8', 'um_9', 'um_10', 'um_11', 'um_12'] and not fs_result.fs_5: return i_powapm.value0 = pow_dic[powamp_meta] for i_p in pow_dic[powamp_meta]: if i_p < constants_v.POWER_THRESHOLD: @@ -211,7 +213,7 @@ func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void: $dou4_A5.state = STATE_VAL.GOOD if result_dic.dou_4 else STATE_VAL.ERROR else: result_dic.fs_4 = 0 - power_fill(power_dic) + power_fill(power_dic, result_dic) var result = true for device in result_dic.values(): diff --git a/scenes/tabs-switch/lbl_ready.gd b/scenes/tabs-switch/lbl_ready.gd new file mode 100644 index 00000000..14fe79fc --- /dev/null +++ b/scenes/tabs-switch/lbl_ready.gd @@ -0,0 +1,8 @@ +extends Label + +func _ready() -> void: + var prd_dict = prd.prd_dict + + for prd_module in prd_dict.values(): ## Отправка команды на исполнение в ПРД + print('prd_module.unit_yau07.online: ', prd_module.unit_yau07.online) + pass diff --git a/scenes/tabs-switch/lbl_ready.gd.uid b/scenes/tabs-switch/lbl_ready.gd.uid new file mode 100644 index 00000000..6476ba86 --- /dev/null +++ b/scenes/tabs-switch/lbl_ready.gd.uid @@ -0,0 +1 @@ +uid://b5ykwyk5vpi6 diff --git a/scenes/tabs-switch/tab-switch.tscn b/scenes/tabs-switch/tab-switch.tscn index d9ab0277..da0800d4 100644 --- a/scenes/tabs-switch/tab-switch.tscn +++ b/scenes/tabs-switch/tab-switch.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=3 uid="uid://3slb0i3pvowc"] +[gd_scene load_steps=20 format=3 uid="uid://3slb0i3pvowc"] [ext_resource type="Script" uid="uid://bvo6tcreqyuex" path="res://scenes/tabs-switch/tab-switch.gd" id="1_fg0vd"] [ext_resource type="PackedScene" uid="uid://b276iygic5itk" path="res://scenes/работа/работа.tscn" id="2_u7p16"] @@ -7,6 +7,8 @@ [ext_resource type="PackedScene" uid="uid://dab6loryocc73" path="res://scenes/эмс/эмс.tscn" id="5_u71bh"] [ext_resource type="PackedScene" uid="uid://bnptm4rlp60dq" path="res://scenes/настройки/настройки.tscn" id="6_i8iv3"] [ext_resource type="PackedScene" uid="uid://musb21x2u0xs" path="res://scenes/эмс2/эмс2.tscn" id="6_rsg03"] +[ext_resource type="Script" uid="uid://b5ykwyk5vpi6" path="res://scenes/tabs-switch/lbl_ready.gd" id="8_tidwt"] +[ext_resource type="Script" uid="uid://roajn6c6wvc1" path="res://scenes/tabs-switch/тренаж_режим.gd" id="9_41d34"] [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_tidwt"] @@ -20,6 +22,15 @@ [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o1r22"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nmdfd"] +bg_color = Color(0.061, 100, 0.051, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cw2ss"] +bg_color = Color(0.473976, 0.473976, 0.473976, 1) + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_41d34"] +bg_color = Color(0.39, 100, 0.327, 1) + [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_imu1q"] [node name="panel" type="Panel"] @@ -81,6 +92,7 @@ theme_override_styles/normal = SubResource("StyleBoxFlat_o1r22") text = "Исправно" horizontal_alignment = 1 vertical_alignment = 1 +script = ExtResource("8_tidwt") [node name="remote_control" type="Label" parent="."] visible = false @@ -104,10 +116,16 @@ offset_right = 1501.0 offset_bottom = 27.0 tooltip_text = "Задействовать режим Тренаж" focus_mode = 0 +theme_override_colors/font_hover_pressed_color = Color(0, 0, 0, 1) theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_colors/font_pressed_color = Color(0, 0, 0, 1) +theme_override_styles/hover_pressed = SubResource("StyleBoxFlat_nmdfd") +theme_override_styles/hover = SubResource("StyleBoxFlat_cw2ss") +theme_override_styles/pressed = SubResource("StyleBoxFlat_41d34") theme_override_styles/normal = SubResource("StyleBoxFlat_imu1q") toggle_mode = true text = "Тренаж" +script = ExtResource("9_41d34") [connection signal="tab_changed" from="tab_switch" to="tab_switch" method="_on_tab_changed"] [connection signal="toggled" from="тренаж_режим" to="tab_switch" method="_on_button_trenaj_toggled"] diff --git a/scenes/tabs-switch/тренаж_режим.gd b/scenes/tabs-switch/тренаж_режим.gd new file mode 100644 index 00000000..d334ce3c --- /dev/null +++ b/scenes/tabs-switch/тренаж_режим.gd @@ -0,0 +1,11 @@ +extends Button + +func _ready(): + connect("toggled", Callable(self, "_on_button_toggled")) + + +func _on_button_toggled(mode: bool): + if mode: + tooltip_text = "Режим \"Тренаж\" задействован" + else: + tooltip_text = "Задейстовать режим \"Тренаж\"" diff --git a/scenes/tabs-switch/тренаж_режим.gd.uid b/scenes/tabs-switch/тренаж_режим.gd.uid new file mode 100644 index 00000000..89b2121e --- /dev/null +++ b/scenes/tabs-switch/тренаж_режим.gd.uid @@ -0,0 +1 @@ +uid://roajn6c6wvc1 diff --git a/scenes/работа/работа.tscn b/scenes/работа/работа.tscn index dca53d69..cb6871f1 100644 --- a/scenes/работа/работа.tscn +++ b/scenes/работа/работа.tscn @@ -342,8 +342,8 @@ text = "−" [connection signal="drag_continue" from="." to="." method="_on_drag_continue"] [connection signal="toggled" from="btn_view" to="." method="on_button_view_toggled"] [connection signal="toggled" from="chk_auto" to="." method="on_value_changed"] -[connection signal="toggled" from="btn_activate" to="." method="on_btn_activate"] [connection signal="toggled" from="btn_activate" to="." method="on_btn_activate_toggled"] +[connection signal="toggled" from="btn_activate" to="." method="on_btn_activate"] [connection signal="toggled" from="btn_center" to="." method="on_btn_center_toggled"] [connection signal="button_down" from="zoom_plus" to="tilemap" method="_on_zoom_plus_button_down"] [connection signal="button_up" from="zoom_plus" to="tilemap" method="_on_zoom_button_up"] diff --git a/scripts/pribor-prd.gd b/scripts/pribor-prd.gd index 121c2830..965d279c 100644 --- a/scripts/pribor-prd.gd +++ b/scripts/pribor-prd.gd @@ -5,6 +5,20 @@ class TestPRD extends Node: const RAY_25:= 'RAY_25' const RAY_35:= 'RAY_35' const RAY_45:= 'RAY_45' + enum DataIndices { + STATUS_BOARD = 0, + IN_BLANK_PRD = 1, + IN_IMPULS_PRD = 7, + OUT_BLANK_PRD = 13, + OUT_IMPULS_PRD = 19, + DRY_CONTACT = 27, + DKM = 28, + POWER_UKP_1 = 31, + TEMPERATURE_UKP_1 = 47, + POWER_UKP_2 = 63, + TEMPERATURE_UKP_2 = 79, + } + enum STATE_MASHINE { INIT, FS_TURN_ON, @@ -62,6 +76,8 @@ class TestPRD extends Node: var current_litera: int var flag_timer_started: bool = false var flag_fs_status_ok: bool = false + var flag_si_fs_input: bool = false + var flag_si_fs_output: bool = false var unit_prd: Object var module_prd: Object var power_amplify: Array @@ -106,6 +122,7 @@ class TestPRD extends Node: 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) + socket_status_ems_g(status) _process_dkm_status(status) if current_litera != 0: var tek_litera: Dictionary = power_result[current_litera] @@ -115,6 +132,21 @@ class TestPRD extends Node: power_result[current_litera] = tek_litera + func socket_status_ems_g(packet_form_yau_07: PackedByteArray) -> void: + var number_socket_input: int + if current_litera >= 1 and current_litera <= 7: + number_socket_input = current_litera + 7 + + var in_blank: int = packet_form_yau_07.decode_u16(DataIndices.IN_BLANK_PRD) + flag_si_fs_input = (in_blank & (1 << number_socket_input)) != 0 ## Флаг СИ от ФС входа в ЭМС-Г для текущей литеры + + var number_socket_output: int + number_socket_output = 4 if current_litera in [2, 4, 6] else 3 if current_litera == 1 else 5 + + var out_blank: int = packet_form_yau_07.decode_u16(DataIndices.OUT_BLANK_PRD) + flag_si_fs_output = (out_blank & (1 << number_socket_output)) != 0 ## Флаг Модуляции УМ ЭМС-Г для текущей литеры + + ## Пакеты от MP550Service func on_fs_update_state(packet_type_7: Dictionary, fs_mapping: Dictionary) -> void: var fs_key: String = FS_KEYS.get(current_litera, '')