From 2a090d02a30029661f1d95938bf7d16664389e8c Mon Sep 17 00:00:00 2001 From: TotMaxim Date: Thu, 27 Nov 2025 21:47:12 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=AD=D0=9C=D0=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/default_data.json | 2 +- main.gd | 70 ++++++--- main.tscn | 278 +++++++++++++++++++++------------ project.godot | 4 +- socket_status.gd | 21 +++ socket_status.gd.uid | 1 + socket_status.tscn | 46 ++++++ udp_broadcast.gd | 28 +++- емс_г.gd | 92 +++++++++++ емс_г.gd.uid | 1 + емс_г.tscn | 310 +++++++++++++++++++++++++++++++++++++ эмс-бланк-перем.png | Bin 0 -> 704 bytes эмс-бланк-перем.png.import | 34 ++++ эмс-бланк-пост.png | Bin 0 -> 483 bytes эмс-бланк-пост.png.import | 34 ++++ эмс-бланк.png | Bin 0 -> 787 bytes эмс-бланк.png.import | 34 ++++ 17 files changed, 820 insertions(+), 135 deletions(-) create mode 100644 socket_status.gd create mode 100644 socket_status.gd.uid create mode 100644 socket_status.tscn create mode 100644 емс_г.gd create mode 100644 емс_г.gd.uid create mode 100644 емс_г.tscn create mode 100755 эмс-бланк-перем.png create mode 100644 эмс-бланк-перем.png.import create mode 100755 эмс-бланк-пост.png create mode 100644 эмс-бланк-пост.png.import create mode 100755 эмс-бланк.png create mode 100644 эмс-бланк.png.import diff --git a/config/default_data.json b/config/default_data.json index dc27564..d6fe700 100644 --- a/config/default_data.json +++ b/config/default_data.json @@ -3,7 +3,7 @@ "ПРД-Н1": { "temperature_ukp": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "power_ukp": [1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011], - "sockets": [false, false, false, false, false], + "sockets": [true, true, true, true, true], "dkm": [false, false, false, false, false, false, false], "dou2": [false, false, false, false, false, false, false], "dou3": [false, false, false, false, false, false, false], diff --git a/main.gd b/main.gd index c9a4811..d912b17 100644 --- a/main.gd +++ b/main.gd @@ -7,6 +7,7 @@ var default_data: Dictionary = {} var dictionary_yau07: Dictionary var dictionary_sockets_bit: Dictionary ## Байт 8 для отправки о состоянии ячеек + func _load_default_data(): var file = FileAccess.open(CONFIG_PATH, FileAccess.READ) if file: @@ -32,7 +33,7 @@ func _apply_default_data(): # Заполняем поля температур -func _fill_ukp_fields(prd_node: Control, device_data: Dictionary): +func _fill_ukp_fields(prd_node: Control, device_data: Dictionary) -> void: var device_name = prd_node.get_meta('yau07') # Заполняем поля температур @@ -94,7 +95,8 @@ func _fill_ukp_fields(prd_node: Control, device_data: Dictionary): var ip_fields = _get_ukp_nodes_for_device(device_name, [prd_node], "ip") for i in range(min(ip_fields.size(), device_data["ip"].size())): # Для IP используется инверсия: true в JSON = нажато = бит 0 - ip_fields[i].set_pressed_no_signal(device_data["ip"][i]) + var is_pressed = not device_data["ip"][i] + ip_fields[i].set_pressed_no_signal(is_pressed) func _ready() -> void: @@ -141,6 +143,11 @@ func _ready() -> void: var ip_arr_node: Array = get_tree().get_nodes_in_group('ip') for ip in ip_arr_node: ip.connect('toggled', _on_modify_ip.bind(ip.get_meta('bit'), ip.get_meta('device'))) + + var ems_arr_node: Array = get_tree().get_nodes_in_group('ems_g') + for ems in ems_arr_node: + ems.connect('bits_changed', _on_modify_ems_g_status.bind(ems.get_meta('device'))) + _update_tab_container() _load_default_data() _apply_default_data() @@ -166,6 +173,15 @@ func on_modify_device(toggled: bool, name_device: String) -> void: print("Устройство %s активировано" % name_device) dictionary_yau07[name_device].connect('update_isa_ports', _on_update_isa_ports) dictionary_yau07[name_device].connect('update_socket_status', _on_update_socket_status) + var device_data = default_data[name_device] + _on_ukp_submitted('', name_device) + dictionary_yau07[name_device].set + dictionary_yau07[name_device].status_manager.set_dou2_status(bool_array_to_number(device_data["dou2"])) + dictionary_yau07[name_device].status_manager.set_att2_status(bool_array_to_number(device_data["att2"])) + dictionary_yau07[name_device].status_manager.set_dou3_status(bool_array_to_number(device_data["dou3"])) + dictionary_yau07[name_device].status_manager.set_att3_status(bool_array_to_number(device_data["att3"])) + dictionary_yau07[name_device].set_ip_status(bool_array_to_number(device_data["ip"])) + dictionary_yau07[name_device].set_sockets_status(bool_array_to_number(device_data["sockets"])) else: if dictionary_yau07.has(name_device) and dictionary_yau07[name_device]: dictionary_yau07[name_device].close_udp_unit() @@ -209,7 +225,7 @@ func _on_update_socket_status(status: int, device_name: String)->void: var bit_index = socket.get_meta('bit') var is_bit_set = (status >> bit_index) & 1 socket.set_pressed_no_signal(is_bit_set == 1) - + func _on_update_isa_ports(isa_ports: Dictionary, device_name: String)->void: for port_addr in isa_ports: @@ -271,7 +287,7 @@ func _on_modify_sockets(toggled: bool, bit: int, device: String)->void: var current_status = udp_unit.get_sockets_status() # Используем геттер var new_status = _set_bit(current_status, bit, toggled) udp_unit.set_sockets_status(new_status) # Используем сеттер - print("Статус сокетов устройства %s обновлен: 0x%04X" % [device, new_status]) + print("Статус сокетов устройства %s обновлен: 0x%02X" % [device, new_status]) ## Функция для установки статусов ДКМ в ПРД @@ -281,7 +297,14 @@ func _on_modify_dkm(toggled: bool, bit: int, device: String)->void: var current_status = udp_unit.get_dkm_status() # Используем геттер var new_status = _set_bit(current_status, bit, toggled) udp_unit.set_dkm_status(new_status) # Используем сеттер - print("Статус DKM устройства %s обновлен: 0x%04X" % [device, new_status]) + print("Статус DKM устройства %s обновлен: 0x%02X" % [device, new_status]) + + +func _on_modify_ems_g_status(input_impulse: int, input_const: int, output_impulse: int, output_const: int, device: String)->void: + if not dictionary_yau07.has(device): + return + var udp_unit = dictionary_yau07[device] + udp_unit.set_ems_g_status(input_impulse, input_const, output_impulse, output_const) func _on_modify_status(toggled: bool, bit: int, device: String, status_type: String) -> void: @@ -304,16 +327,11 @@ func _on_modify_status(toggled: bool, bit: int, device: String, status_type: Str button.set_pressed_no_signal(false) # Устанавливаем статус через менеджер match status_type: - "dou2": - udp_unit.status_manager.set_dou2_status(bit) - "att1": - udp_unit.status_manager.set_att1_status(bit) - "att2": - udp_unit.status_manager.set_att2_status(bit) - "dou3": - udp_unit.status_manager.set_dou3_status(bit) - "att3": - udp_unit.status_manager.set_att3_status(bit) + "dou2": udp_unit.status_manager.set_dou2_status(bit) + "att1": udp_unit.status_manager.set_att1_status(bit) + "att2": udp_unit.status_manager.set_att2_status(bit) + "dou3": udp_unit.status_manager.set_dou3_status(bit) + "att3": udp_unit.status_manager.set_att3_status(bit) func _on_modify_ip(toggled: bool, bit: int, device: String): @@ -323,13 +341,11 @@ func _on_modify_ip(toggled: bool, bit: int, device: String): # Инверсия: нажата = 0, отжата = 1 var bit_value = 0 if toggled else 1 var new_status - if bit_value == 0: - new_status = current_status & ~(1 << bit) # Устанавливаем бит в 0 - else: - new_status = current_status | (1 << bit) # Устанавливаем бит в 1 - + if bit_value == 0: new_status = current_status & ~(1 << bit) # Устанавливаем бит в 0 + else: new_status = current_status | (1 << bit) # Устанавливаем бит в 1 + udp_unit.set_ip_status(new_status) - print("Статус ИП устройства %s обновлен: 0x%04X" % [device, new_status]) + print("Статус ИП устройства %s обновлен: 0x%02X" % [device, new_status]) ## Функция для установки значений в ячейках УКП @@ -449,7 +465,15 @@ static func _set_bit(bits: int, index: int, val: bool) -> int: return bits | (1 << index) if val else bits & ~(1 << index) -## Новый метод для работы с ISA портами +static func bool_array_to_number(bool_array: Array)-> int: + var result: int = 0 + for i in range(bool_array.size()): + if bool_array[i]: + result |= (1 << i) + return result + + +## Метод для работы с ISA портами func read_isa_ports(device: String, port_addresses: Array) -> Dictionary: """Чтение ISA портов указанного устройства""" if dictionary_yau07.has(device): @@ -459,7 +483,7 @@ func read_isa_ports(device: String, port_addresses: Array) -> Dictionary: return {} -## Новый метод для записи ISA портов +## Метод для записи ISA портов func write_isa_port(device: String, port_address: int, value: int) -> bool: """Запись значения в ISA порт указанного устройства""" if dictionary_yau07.has(device): diff --git a/main.tscn b/main.tscn index 6cb9d9e..c414c0b 100644 --- a/main.tscn +++ b/main.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=6 format=3 uid="uid://bxorauom63ib6"] +[gd_scene load_steps=7 format=3 uid="uid://bxorauom63ib6"] [ext_resource type="Script" uid="uid://d1qwoxkckvdbc" path="res://main.gd" id="1_ig7tw"] +[ext_resource type="PackedScene" uid="uid://2rjgbflmbi7e" path="res://емс_г.tscn" id="2_0xm2m"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0xm2m"] bg_color = Color(0.1167, 0.351514, 0.35159, 1) @@ -24,8 +25,8 @@ script = ExtResource("1_ig7tw") [node name="Panel" type="Panel" parent="."] layout_mode = 0 -offset_right = 1541.0 -offset_bottom = 615.0 +offset_right = 1634.0 +offset_bottom = 885.0 [node name="Yau-07-addr" type="GridContainer" parent="."] layout_mode = 0 @@ -33,73 +34,122 @@ offset_left = 32.0 offset_top = 24.0 offset_right = 140.0 offset_bottom = 440.0 +columns = 2 [node name="CheckButton" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-Н1" metadata/device = "ПРД-Н1" +[node name="Label" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.11" + [node name="CheckButton2" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-В1" metadata/device = "ПРД-В1" +[node name="Label2" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.12" + [node name="CheckButton3" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-К1" metadata/device = "ПРД-К1" +[node name="Label3" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.13" + [node name="CheckButton4" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-Н2" metadata/device = "ПРД-Н2" +[node name="Label4" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.21" + [node name="CheckButton5" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-В2" metadata/device = "ПРД-В2" +[node name="Label5" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.22" + [node name="CheckButton6" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-К2" metadata/device = "ПРД-К2" +[node name="Label6" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.23" + [node name="CheckButton7" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-Н3" metadata/device = "ПРД-Н3" +[node name="Label7" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.31" + [node name="CheckButton8" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-В3" metadata/device = "ПРД-В3" +[node name="Label8" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.32" + [node name="CheckButton9" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-К3" metadata/device = "ПРД-К3" +[node name="Label9" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.33" + [node name="CheckButton10" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-Н4" metadata/device = "ПРД-Н4" +[node name="Label10" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.41" + [node name="CheckButton11" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-В4" metadata/device = "ПРД-В4" +[node name="Label11" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.42" + [node name="CheckButton12" type="CheckButton" parent="Yau-07-addr" groups=["device-addr"]] layout_mode = 2 text = "ПРД-К4" metadata/device = "ПРД-К4" +[node name="Label12" type="Label" parent="Yau-07-addr"] +layout_mode = 2 +text = "10.1.1.43" + [node name="TabContainer" type="TabContainer" parent="."] layout_mode = 0 -offset_left = 187.0 +offset_left = 237.0 offset_top = 19.0 -offset_right = 1373.0 -offset_bottom = 442.0 +offset_right = 1472.0 +offset_bottom = 752.0 current_tab = 2 use_hidden_tabs_for_min_size = true tab_focus_mode = 0 @@ -113,8 +163,10 @@ metadata/yau07 = "ПРД-Н1" [node name="sockets" type="GridContainer" parent="TabContainer/ПРД-Н1"] layout_mode = 2 -offset_right = 140.0 -offset_bottom = 171.0 +offset_left = 19.0 +offset_top = 14.0 +offset_right = 159.0 +offset_bottom = 185.0 [node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-Н1/sockets" groups=["socket"]] layout_mode = 2 @@ -146,442 +198,446 @@ text = "Загрузка ЭМС" metadata/bit = 4 metadata/device = "ПРД-Н1" -[node name="TabBar" type="TabContainer" parent="TabContainer/ПРД-Н1"] +[node name="SocketsBar" type="TabContainer" parent="TabContainer/ПРД-Н1"] layout_mode = 0 offset_left = 199.0 -offset_top = 9.0 -offset_right = 957.0 -offset_bottom = 334.0 +offset_right = 1234.0 +offset_bottom = 760.0 current_tab = 2 tabs_position = 1 tab_focus_mode = 0 -[node name="ukp_1" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar"] +[node name="УКП-1" type="GridContainer" parent="TabContainer/ПРД-Н1/SocketsBar"] visible = false layout_mode = 2 columns = 7 metadata/_tab_index = 0 -[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/TabBar/ukp_1"] +[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1"] custom_minimum_size = Vector2(0, 30) layout_mode = 2 theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw") text = "Температуры" horizontal_alignment = 1 -[node name="TextEdit" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]] +[node name="TextEdit" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]] +[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]] +[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]] +[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]] +[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["temperature_ukp"]] +[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="Label2" type="Label" parent="TabContainer/ПРД-Н1/TabBar/ukp_1"] +[node name="Label2" type="Label" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1"] custom_minimum_size = Vector2(0, 30) layout_mode = 2 theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw") text = "Мощность" horizontal_alignment = 1 -[node name="TextEdit7" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]] +[node name="TextEdit7" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]] +[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]] +[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]] +[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]] +[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_1" groups=["power_ukp"]] +[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-1" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="ukp_2" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar"] +[node name="УКП-2" type="GridContainer" parent="TabContainer/ПРД-Н1/SocketsBar"] visible = false layout_mode = 2 columns = 7 metadata/_tab_index = 1 -[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/TabBar/ukp_2"] +[node name="Label" type="Label" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2"] custom_minimum_size = Vector2(0, 30) layout_mode = 2 theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw") text = "Температуры" horizontal_alignment = 1 -[node name="TextEdit" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]] +[node name="TextEdit" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]] +[node name="TextEdit2" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]] +[node name="TextEdit3" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]] +[node name="TextEdit4" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]] +[node name="TextEdit5" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["temperature_ukp"]] +[node name="TextEdit6" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["temperature_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="Label2" type="Label" parent="TabContainer/ПРД-Н1/TabBar/ukp_2"] +[node name="Label2" type="Label" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2"] custom_minimum_size = Vector2(0, 30) layout_mode = 2 theme_override_styles/normal = SubResource("StyleBoxFlat_ig7tw") text = "Мощность" horizontal_alignment = 1 -[node name="TextEdit7" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]] +[node name="TextEdit7" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]] +[node name="TextEdit8" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]] +[node name="TextEdit9" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]] +[node name="TextEdit10" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]] +[node name="TextEdit11" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-Н1/TabBar/ukp_2" groups=["power_ukp"]] +[node name="TextEdit12" type="LineEdit" parent="TabContainer/ПРД-Н1/SocketsBar/УКП-2" groups=["power_ukp"]] custom_minimum_size = Vector2(100, 35) layout_mode = 2 placeholder_text = "0" metadata/device = "ПРД-Н1" -[node name="ug" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar"] +[node name="УГ" type="GridContainer" parent="TabContainer/ПРД-Н1/SocketsBar"] layout_mode = 2 columns = 5 metadata/_tab_index = 2 -[node name="GridContainer4" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"] +[node name="GridContainer4" type="GridContainer" parent="TabContainer/ПРД-Н1/SocketsBar/УГ"] layout_mode = 2 -[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]] +[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer4" groups=["dou2"]] layout_mode = 2 text = "ЛУЧ -5°" metadata/bit = 0 metadata/device = "ПРД-Н1" -[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]] +[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer4" groups=["dou2"]] layout_mode = 2 text = "ЛУЧ 5°" metadata/bit = 1 metadata/device = "ПРД-Н1" -[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]] +[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer4" groups=["dou2"]] layout_mode = 2 text = "ЛУЧ 15°" metadata/bit = 2 metadata/device = "ПРД-Н1" -[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]] +[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer4" groups=["dou2"]] layout_mode = 2 text = "ЛУЧ 25°" metadata/bit = 3 metadata/device = "ПРД-Н1" -[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]] +[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer4" groups=["dou2"]] layout_mode = 2 text = "ЛУЧ 35°" metadata/bit = 4 metadata/device = "ПРД-Н1" -[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]] +[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer4" groups=["dou2"]] layout_mode = 2 text = "ЛУЧ 45°" metadata/bit = 5 metadata/device = "ПРД-Н1" -[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer4" groups=["dou2"]] +[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer4" groups=["dou2"]] layout_mode = 2 text = "ЛУЧ КОНТРОЛЬ" metadata/bit = 6 metadata/device = "ПРД-Н1" -[node name="GridContainer" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"] +[node name="GridContainer" type="GridContainer" parent="TabContainer/ПРД-Н1/SocketsBar/УГ"] layout_mode = 2 -[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]] +[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer" groups=["dou3"]] layout_mode = 2 text = "ЛУЧ -5°" metadata/bit = 0 metadata/device = "ПРД-Н1" -[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]] +[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer" groups=["dou3"]] layout_mode = 2 text = "ЛУЧ 5°" metadata/bit = 1 metadata/device = "ПРД-Н1" -[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]] +[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer" groups=["dou3"]] layout_mode = 2 text = "ЛУЧ 15°" metadata/bit = 2 metadata/device = "ПРД-Н1" -[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]] +[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer" groups=["dou3"]] layout_mode = 2 text = "ЛУЧ 25°" metadata/bit = 3 metadata/device = "ПРД-Н1" -[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]] +[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer" groups=["dou3"]] layout_mode = 2 text = "ЛУЧ 35°" metadata/bit = 4 metadata/device = "ПРД-Н1" -[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]] +[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer" groups=["dou3"]] layout_mode = 2 text = "ЛУЧ 45°" metadata/bit = 5 metadata/device = "ПРД-Н1" -[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer" groups=["dou3"]] +[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer" groups=["dou3"]] layout_mode = 2 text = "ЛУЧ КОНТРОЛЬ" metadata/bit = 6 metadata/device = "ПРД-Н1" -[node name="GridContainer2" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"] +[node name="GridContainer2" type="GridContainer" parent="TabContainer/ПРД-Н1/SocketsBar/УГ"] layout_mode = 2 -[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]] +[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer2" groups=["att2"]] layout_mode = 2 text = "АТТ 0 dB" metadata/device = "ПРД-Н1" metadata/bit = 0 -[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]] +[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer2" groups=["att2"]] layout_mode = 2 text = "АТТ 0.5 dB" metadata/bit = 1 metadata/device = "ПРД-Н1" -[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]] +[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer2" groups=["att2"]] layout_mode = 2 text = "АТТ 2 dB" metadata/bit = 2 metadata/device = "ПРД-Н1" -[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]] +[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer2" groups=["att2"]] layout_mode = 2 text = "АТТ 2.5 dB" metadata/bit = 3 metadata/device = "ПРД-Н1" -[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]] +[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer2" groups=["att2"]] layout_mode = 2 text = "АТТ 8 dB" metadata/bit = 4 metadata/device = "ПРД-Н1" -[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]] +[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer2" groups=["att2"]] layout_mode = 2 text = "АТТ 8.5 dB" metadata/bit = 5 metadata/device = "ПРД-Н1" -[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]] +[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer2" groups=["att2"]] layout_mode = 2 text = "АТТ 10 dB" metadata/bit = 6 metadata/device = "ПРД-Н1" -[node name="CheckBox8" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer2" groups=["att2"]] +[node name="CheckBox8" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer2" groups=["att2"]] layout_mode = 2 text = "АТТ 10.5 dB" metadata/bit = 7 metadata/device = "ПРД-Н1" -[node name="GridContainer5" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"] +[node name="GridContainer5" type="GridContainer" parent="TabContainer/ПРД-Н1/SocketsBar/УГ"] layout_mode = 2 -[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]] +[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer5" groups=["att3"]] layout_mode = 2 text = "АТТ 0 dB" metadata/bit = 0 metadata/device = "ПРД-Н1" -[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]] +[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer5" groups=["att3"]] layout_mode = 2 text = "АТТ 0.5 dB" metadata/bit = 1 metadata/device = "ПРД-Н1" -[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]] +[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer5" groups=["att3"]] layout_mode = 2 text = "АТТ 2 dB" metadata/bit = 2 metadata/device = "ПРД-Н1" -[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]] +[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer5" groups=["att3"]] layout_mode = 2 text = "АТТ 2.5 dB" metadata/bit = 3 metadata/device = "ПРД-Н1" -[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]] +[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer5" groups=["att3"]] layout_mode = 2 text = "АТТ 8 dB" metadata/bit = 4 metadata/device = "ПРД-Н1" -[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]] +[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer5" groups=["att3"]] layout_mode = 2 text = "АТТ 8.5 dB" metadata/bit = 5 metadata/device = "ПРД-Н1" -[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]] +[node name="CheckBox7" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer5" groups=["att3"]] layout_mode = 2 text = "АТТ 10 dB" metadata/bit = 6 metadata/device = "ПРД-Н1" -[node name="CheckBox8" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer5" groups=["att3"]] +[node name="CheckBox8" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer5" groups=["att3"]] layout_mode = 2 text = "АТТ 10.5 dB" metadata/bit = 7 metadata/device = "ПРД-Н1" -[node name="GridContainer3" type="GridContainer" parent="TabContainer/ПРД-Н1/TabBar/ug"] +[node name="GridContainer3" type="GridContainer" parent="TabContainer/ПРД-Н1/SocketsBar/УГ"] layout_mode = 2 -[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]] +[node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer3" groups=["ip"]] layout_mode = 2 text = "МАА №1" metadata/bit = 0 metadata/device = "ПРД-Н1" -[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]] +[node name="CheckBox2" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer3" groups=["ip"]] layout_mode = 2 text = "МАА №2" metadata/bit = 1 metadata/device = "ПРД-Н1" -[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]] +[node name="CheckBox3" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer3" groups=["ip"]] layout_mode = 2 text = "ИП9-50 №1" metadata/bit = 2 metadata/device = "ПРД-Н1" -[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]] +[node name="CheckBox4" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer3" groups=["ip"]] layout_mode = 2 text = "ИП9-50 №2" metadata/bit = 3 metadata/device = "ПРД-Н1" -[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]] +[node name="CheckBox5" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer3" groups=["ip"]] layout_mode = 2 text = "ИП12-50 №1" metadata/bit = 4 metadata/device = "ПРД-Н1" -[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/TabBar/ug/GridContainer3" groups=["ip"]] +[node name="CheckBox6" type="CheckBox" parent="TabContainer/ПРД-Н1/SocketsBar/УГ/GridContainer3" groups=["ip"]] layout_mode = 2 text = "ИП5-25" metadata/bit = 7 metadata/device = "ПРД-Н1" +[node name="ЕМС-Г" parent="TabContainer/ПРД-Н1/SocketsBar" groups=["ems_g"] instance=ExtResource("2_0xm2m")] +visible = false +layout_mode = 2 +metadata/device = "ПРД-Н1" + [node name="dkm" type="GridContainer" parent="TabContainer/ПРД-Н1"] layout_mode = 0 -offset_left = 10.0 -offset_top = 201.0 -offset_right = 50.0 -offset_bottom = 241.0 +offset_left = 19.0 +offset_top = 206.0 +offset_right = 97.0 +offset_bottom = 272.0 [node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-Н1/dkm" groups=["dkm"]] layout_mode = 2 @@ -604,6 +660,10 @@ metadata/yau07 = "ПРД-В1" [node name="sockets" type="GridContainer" parent="TabContainer/ПРД-В1"] layout_mode = 2 +offset_left = 19.0 +offset_top = 14.0 +offset_right = 159.0 +offset_bottom = 185.0 [node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-В1/sockets" groups=["socket"]] layout_mode = 2 @@ -638,9 +698,8 @@ metadata/device = "ПРД-В1" [node name="TabBar" type="TabContainer" parent="TabContainer/ПРД-В1"] layout_mode = 0 offset_left = 199.0 -offset_top = 9.0 -offset_right = 970.0 -offset_bottom = 370.0 +offset_right = 1235.0 +offset_bottom = 733.0 current_tab = 2 tabs_position = 1 tab_focus_mode = 0 @@ -1100,12 +1159,17 @@ text = "ИП5-25" metadata/bit = 7 metadata/device = "ПРД-В1" +[node name="ЕМС-Г" parent="TabContainer/ПРД-В1/TabBar" groups=["ems_g"] instance=ExtResource("2_0xm2m")] +visible = false +layout_mode = 2 +metadata/device = "ПРД-В1" + [node name="dkm" type="GridContainer" parent="TabContainer/ПРД-В1"] layout_mode = 0 -offset_left = 10.0 -offset_top = 201.0 -offset_right = 50.0 -offset_bottom = 241.0 +offset_left = 19.0 +offset_top = 206.0 +offset_right = 97.0 +offset_bottom = 272.0 [node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-В1/dkm" groups=["dkm"]] layout_mode = 2 @@ -1127,6 +1191,10 @@ metadata/yau07 = "ПРД-К1" [node name="sockets" type="GridContainer" parent="TabContainer/ПРД-К1"] layout_mode = 2 +offset_left = 19.0 +offset_top = 14.0 +offset_right = 159.0 +offset_bottom = 185.0 [node name="EMS_G" type="CheckBox" parent="TabContainer/ПРД-К1/sockets" groups=["socket"]] layout_mode = 2 @@ -1162,9 +1230,9 @@ metadata/device = "ПРД-К1" layout_direction = 2 layout_mode = 0 offset_left = 170.0 -offset_top = 9.0 -offset_right = 1144.0 -offset_bottom = 370.0 +offset_top = 1.0 +offset_right = 1235.0 +offset_bottom = 734.0 current_tab = 3 tabs_position = 1 tab_focus_mode = 0 @@ -1729,12 +1797,18 @@ text = "ИП5-25" metadata/bit = 7 metadata/device = "ПРД-К1" +[node name="ЕМС-Г" parent="TabContainer/ПРД-К1/TabBar" groups=["ems_g"] instance=ExtResource("2_0xm2m")] +visible = false +layout_mode = 2 +metadata/_tab_index = 4 +metadata/device = "ПРД-В1" + [node name="dkm" type="GridContainer" parent="TabContainer/ПРД-К1"] layout_mode = 0 -offset_left = 10.0 -offset_top = 201.0 -offset_right = 50.0 -offset_bottom = 241.0 +offset_left = 19.0 +offset_top = 206.0 +offset_right = 97.0 +offset_bottom = 307.0 [node name="CheckBox" type="CheckBox" parent="TabContainer/ПРД-К1/dkm" groups=["dkm"]] layout_mode = 2 diff --git a/project.godot b/project.godot index d78b36e..8b70b14 100644 --- a/project.godot +++ b/project.godot @@ -17,8 +17,8 @@ config/icon="res://icon.svg" [display] -window/size/viewport_width=1400 -window/size/viewport_height=600 +window/size/viewport_width=1500 +window/size/viewport_height=850 [rendering] diff --git a/socket_status.gd b/socket_status.gd new file mode 100644 index 0000000..2c05ebb --- /dev/null +++ b/socket_status.gd @@ -0,0 +1,21 @@ +extends PanelContainer + +@onready var animated_sprite = $SZI_x +signal update_frame(bit: int, frame: int) + +func _ready(): + gui_input.connect(_on_gui_input) + mouse_filter = Control.MOUSE_FILTER_PASS + +func _on_gui_input(event): + if event is InputEventMouseButton: + if event.pressed and event.button_index == MOUSE_BUTTON_LEFT: + _switch_frame() + + +func _switch_frame(): + var current_frame = animated_sprite.frame + var next_frame = (current_frame + 1) % 3 + animated_sprite.frame = next_frame + emit_signal('update_frame', get_meta("bit"), next_frame) + diff --git a/socket_status.gd.uid b/socket_status.gd.uid new file mode 100644 index 0000000..75d1786 --- /dev/null +++ b/socket_status.gd.uid @@ -0,0 +1 @@ +uid://bg8n8wt3kjqpm diff --git a/socket_status.tscn b/socket_status.tscn new file mode 100644 index 0000000..2fa2329 --- /dev/null +++ b/socket_status.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=7 format=3 uid="uid://dn3jp4r8ij3rf"] + +[ext_resource type="Texture2D" uid="uid://cwabmu3cljbpr" path="res://эмс-бланк.png" id="1_bsrew"] +[ext_resource type="Script" uid="uid://bg8n8wt3kjqpm" path="res://socket_status.gd" id="1_kydjn"] +[ext_resource type="Texture2D" uid="uid://sx6xcpus2yf" path="res://эмс-бланк-пост.png" id="2_b2kjm"] +[ext_resource type="Texture2D" uid="uid://snpqhalopnp" path="res://эмс-бланк-перем.png" id="3_odpjv"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q1ixs"] +bg_color = Color(0, 0, 0, 0.490196) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 + +[sub_resource type="SpriteFrames" id="SpriteFrames_a7q1i"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": ExtResource("1_bsrew") +}, { +"duration": 1.0, +"texture": ExtResource("2_b2kjm") +}, { +"duration": 1.0, +"texture": ExtResource("3_odpjv") +}, { +"duration": 1.0, +"texture": null +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="PanelContainer" type="PanelContainer"] +custom_minimum_size = Vector2(50, 35) +offset_left = -3.0 +offset_right = 47.0 +offset_bottom = 35.0 +theme_override_styles/panel = SubResource("StyleBoxFlat_q1ixs") +script = ExtResource("1_kydjn") + +[node name="SZI_x" type="AnimatedSprite2D" parent="."] +position = Vector2(25, 17) +scale = Vector2(1.2, 1.2) +sprite_frames = SubResource("SpriteFrames_a7q1i") diff --git a/udp_broadcast.gd b/udp_broadcast.gd index 8bea1a2..1f8ad12 100644 --- a/udp_broadcast.gd +++ b/udp_broadcast.gd @@ -49,6 +49,10 @@ var _dkm_status_bit: int = 0 var _dry_contact_status_bit: int = 0xFF var _cmd_number_count: int = 0 var _last_received_command: int = -1 +var _input_impulse: int = 0xffff +var _input_const: int = 0xffff +var _output_impulse: int = 0xffff +var _output_const: int = 0xffff var ukp0_data: PackedByteArray var ukp1_data: PackedByteArray @@ -198,6 +202,14 @@ func get_ip_status()->int: return _dry_contact_status_bit +func set_ems_g_status(in_imp: int, in_const: int, out_imp: int, out_const: int) -> void: + '''Установка статуса входов и выходов ЕМС-Г''' + _input_impulse = in_imp + _input_const = in_const + _output_impulse = out_imp + _output_const = out_const + + func set_isa_port(port_addr: int, value: int) -> bool: '''Установка значения ISA порта''' if port_addr < 0 or port_addr > 0xFFFF: @@ -343,13 +355,15 @@ func _encode_device_data(buffer: PackedByteArray) -> void: func _encode_ems_g_data(buffer: PackedByteArray) -> void: '''Кодирование данных EMS-G''' - var ems_g_data = [ - 0x9e00, 0xffff, 0xffff, 0x0000, 0xffff, 0xffff, 0x0000, - 0xffff, 0xffff, 0x0000, 0xffff, 0xffff, 0xffff - ] - - for i in range(ems_g_data.size()): - buffer.encode_u16(EMS_G_DATA_OFFSET + i * 2, ems_g_data[i]) + #var ems_g_data = [ + #0x9e00, 0xffff, 0xffff, 0x0000, 0xffff, 0xffff, + #0x0000, 0xffff, 0xffff, 0x0000, 0xffff, 0xffff, + #0xffff + #] + buffer.encode_u16(EMS_G_DATA_OFFSET, _input_const) + buffer.encode_u16(EMS_G_DATA_OFFSET + 6, _input_impulse) + buffer.encode_u16(EMS_G_DATA_OFFSET + 12, _output_const) + buffer.encode_u16(EMS_G_DATA_OFFSET + 18, _output_impulse) func _encode_ug_data(buffer: PackedByteArray) -> void: diff --git a/емс_г.gd b/емс_г.gd new file mode 100644 index 0000000..bcc2a4e --- /dev/null +++ b/емс_г.gd @@ -0,0 +1,92 @@ +extends Panel + +@onready var output_status = $output +# Константы состояний фреймов +const FRAME_OFF := 0 +const FRAME_CONST := 1 +const FRAME_IMPULSE := 2 + +var _input_impulse: int = 0 +var _input_const: int = 0 +var _output_impulse: int = 0 +var _output_const: int = 0 + +#region Сигналы для уведомления об изменениях +signal input_bits_updated(input_impulse: int, input_const: int) +signal output_bits_updated(output_impulse: int, output_const: int) +signal bits_changed(input_impulse: int, input_const: int, output_impulse: int, output_const: int) +#endregion + +func _ready(): + _setup_connections() + + +func _setup_connections(): + var _input_nodes = get_tree().get_nodes_in_group('input') + var _output_nodes = get_tree().get_nodes_in_group('output') + + for node in _input_nodes: + if node.has_signal('update_frame'): + node.update_frame.connect(on_update_frame_input) + + + for node in _output_nodes: + if node.has_signal('update_frame'): + node.update_frame.connect(on_update_frame_output) + + +func on_update_frame_input(bit: int, frame: int)-> void: + var mask = 1 << bit + var old_impulse = _input_impulse + var old_const = _input_const + _input_impulse = _input_impulse & ~mask | (mask if frame == FRAME_IMPULSE else 0) + _input_const = _input_const & ~mask | (mask if frame == FRAME_CONST else 0) + # Отправляем сигналы только если значения изменились + if _input_impulse != old_impulse || _input_const != old_const: + input_bits_updated.emit(get_input_impulse(), get_input_const()) + bits_changed.emit(get_input_impulse(), get_input_const(), get_output_impulse(), get_output_const()) + + +func on_update_frame_output(bit: int, frame: int)-> void: + var mask = 1 << bit + var old_impulse = _output_impulse + var old_const = _output_const + _output_impulse = _output_impulse & ~mask | (mask if frame == FRAME_IMPULSE else 0) + _output_const = _output_const & ~mask | (mask if frame == FRAME_CONST else 0) + # Отправляем сигналы только если значения изменились + if _output_impulse != old_impulse || _output_const != old_const: + output_bits_updated.emit(get_output_impulse(), get_output_const()) + bits_changed.emit(get_input_impulse(), get_input_const(), get_output_impulse(), get_output_const()) + + +func _invert_bits(value: int) -> int: + """Инвертирует все биты (0 становится 0xFFFF, 0xFFFF становится 0)""" + return value ^ 0xFFFF + + +#region Геттеры для безопасного доступа к данным +func get_input_impulse() -> int: + return _input_impulse + + +func get_input_const() -> int: + return _input_const + + +func get_output_impulse() -> int: + return _output_impulse + + +func get_output_const() -> int: + return _output_const +#endregion + +#region Функция для получения всех данных сразу +func get_all_bits() -> Dictionary: + return { + "input_impulse": _input_impulse, + "input_const": _input_const, + "output_impulse": _output_impulse, + "output_const": _output_const + } +#endregion diff --git a/емс_г.gd.uid b/емс_г.gd.uid new file mode 100644 index 0000000..82813a4 --- /dev/null +++ b/емс_г.gd.uid @@ -0,0 +1 @@ +uid://d2fgin0bhm826 diff --git a/емс_г.tscn b/емс_г.tscn new file mode 100644 index 0000000..14ae94f --- /dev/null +++ b/емс_г.tscn @@ -0,0 +1,310 @@ +[gd_scene load_steps=4 format=3 uid="uid://2rjgbflmbi7e"] + +[ext_resource type="PackedScene" uid="uid://dn3jp4r8ij3rf" path="res://socket_status.tscn" id="1_deko5"] +[ext_resource type="Script" uid="uid://d2fgin0bhm826" path="res://емс_г.gd" id="1_tk3ne"] + +[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_deko5"] + +[node name="ЕМС-Г" type="Panel"] +offset_right = 789.0 +offset_bottom = 395.0 +theme_override_styles/panel = SubResource("StyleBoxTexture_deko5") +script = ExtResource("1_tk3ne") +metadata/_tab_index = 3 + +[node name="output" type="GridContainer" parent="."] +layout_mode = 2 +offset_left = 161.0 +offset_top = 15.0 +offset_right = 1021.0 +offset_bottom = 77.0 +columns = 16 + +[node name="Label" type="Label" parent="output"] +layout_mode = 2 +text = "СИ1" + +[node name="Label2" type="Label" parent="output"] +layout_mode = 2 +text = "СИ2" + +[node name="Label3" type="Label" parent="output"] +layout_mode = 2 +text = "СИ3" + +[node name="Label4" type="Label" parent="output"] +layout_mode = 2 +text = "Мод1" + +[node name="Label5" type="Label" parent="output"] +layout_mode = 2 +text = "Мод2" + +[node name="Label6" type="Label" parent="output"] +layout_mode = 2 +text = "Мод3" + +[node name="Label7" type="Label" parent="output"] +layout_mode = 2 + +[node name="Label8" type="Label" parent="output"] +layout_mode = 2 + +[node name="Label9" type="Label" parent="output"] +layout_mode = 2 +text = "ФГОЗ" + +[node name="Label10" type="Label" parent="output"] +layout_mode = 2 +text = "ФГОЗ" + +[node name="Label11" type="Label" parent="output"] +layout_mode = 2 +text = "МодМ" + +[node name="Label12" type="Label" parent="output"] +layout_mode = 2 + +[node name="Label13" type="Label" parent="output"] +layout_mode = 2 + +[node name="Label14" type="Label" parent="output"] +layout_mode = 2 + +[node name="Label15" type="Label" parent="output"] +layout_mode = 2 + +[node name="Label16" type="Label" parent="output"] +layout_mode = 2 + +[node name="PanelContainer0" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 0 + +[node name="PanelContainer1" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 1 + +[node name="PanelContainer2" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 2 + +[node name="PanelContainer3" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 3 + +[node name="PanelContainer4" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 4 + +[node name="PanelContainer5" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 5 + +[node name="PanelContainer6" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 6 + +[node name="PanelContainer7" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 7 + +[node name="PanelContainer8" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 8 + +[node name="PanelContainer9" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 9 + +[node name="PanelContainer10" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 10 + +[node name="PanelContainer11" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 11 + +[node name="PanelContainer12" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 12 + +[node name="PanelContainer13" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 13 + +[node name="PanelContainer14" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 14 + +[node name="PanelContainer15" parent="output" groups=["output"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 15 + +[node name="input" type="GridContainer" parent="."] +layout_mode = 2 +offset_left = 9.0 +offset_top = 83.0 +offset_right = 155.0 +offset_bottom = 703.0 +columns = 2 + +[node name="Label" type="Label" parent="input"] +layout_mode = 2 +text = "СЗИ1 от УФ" + +[node name="PanelContainer0" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 0 + +[node name="Label2" type="Label" parent="input"] +layout_mode = 2 +text = "СЗИ2 от УФ" + +[node name="PanelContainer1" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 1 + +[node name="Label3" type="Label" parent="input"] +layout_mode = 2 +text = "СЗИ3 от УФ" + +[node name="PanelContainer2" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 2 + +[node name="Label4" type="Label" parent="input"] +layout_mode = 2 +text = "СЗИ4 от УФ" + +[node name="PanelContainer3" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 3 + +[node name="Label5" type="Label" parent="input"] +layout_mode = 2 +text = "СЗИ5 от УФ" + +[node name="PanelContainer4" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 4 + +[node name="Label6" type="Label" parent="input"] +layout_mode = 2 +text = "СЗИ6 от УФ" + +[node name="PanelContainer5" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 5 + +[node name="Label7" type="Label" parent="input"] +layout_mode = 2 +text = "СЗИ7 от УФ" + +[node name="PanelContainer6" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 6 + +[node name="Label8" type="Label" parent="input"] +layout_mode = 2 +text = "Х" + +[node name="PanelContainer7" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 7 + +[node name="Label9" type="Label" parent="input"] +layout_mode = 2 +text = "СИ1 от ФС" + +[node name="PanelContainer8" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 8 + +[node name="Label10" type="Label" parent="input"] +layout_mode = 2 +text = "СИ2 от ФС" + +[node name="PanelContainer9" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 9 + +[node name="Label11" type="Label" parent="input"] +layout_mode = 2 +text = "СИ3 от ФС" + +[node name="PanelContainer10" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 10 + +[node name="Label12" type="Label" parent="input"] +layout_mode = 2 +text = "СИ4 от ФС" + +[node name="PanelContainer11" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 11 + +[node name="Label13" type="Label" parent="input"] +layout_mode = 2 +text = "СИ5 от ФС" + +[node name="PanelContainer12" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 12 + +[node name="Label14" type="Label" parent="input"] +layout_mode = 2 +text = "СИ6 от ФС" + +[node name="PanelContainer13" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 13 + +[node name="Label15" type="Label" parent="input"] +layout_mode = 2 +text = "СИ7 от ФС" + +[node name="PanelContainer14" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 14 + +[node name="Label16" type="Label" parent="input"] +layout_mode = 2 +text = "Х" + +[node name="PanelContainer15" parent="input" groups=["input"] instance=ExtResource("1_deko5")] +layout_mode = 2 +mouse_default_cursor_shape = 2 +metadata/bit = 15 diff --git a/эмс-бланк-перем.png b/эмс-бланк-перем.png new file mode 100755 index 0000000000000000000000000000000000000000..832a346c43b74227b515c53c9cf68391fef00acd GIT binary patch literal 704 zcmV;x0zdtUP);Yay;z%HDV_MxwdqyYuaC97&gb>E50I7xfjTnu@p+IN> zQ$Vu@1Ylj#8-TGma$r(trm&-hdl;F-MG7Bz|866E`P5emr+w(?n8r`M<@Ne^wY~z_ z-Ud$9fC!8h!LwYL$GVF^24keGj5<2*XZ+>{ja&U-$2qxdxPG4bYY%AL%gductT8Zz zQoav{mp~w$qd_}}N!!OHQ8{cV*{=;k*}3}1E1|L6zkk`6ZUDDSPO}&>7c#IP28v1= zS7s7O61J;CDnBk^21v=mrJ33S?p}-wb#OgtW*c^ZI!a3Z6ReGgLKQjN2rXM&Nq)^G z*tWe_Wcp=b-MkH3f|hZ!0&G*#Cgztw1%I~z+%yV;t!`a~GBfwkdSv@4($5O8JBEkF zJx;2t*M+u_n*AL}(Q!#=L(+>yFN_;ULBtXwfWgA)HW!7)qFTD{UJA`~6M(Q18sBW6 zH9lO+ky~?ddLFnh6Oke~AF>ARTIi=NO2MeWPJsa_%z64M@EK5H5bsi`1N(B0WRb#? zsp+5z?=y9}e5VVg&*`qARus3&^VM0M zyGZi2DN(S;On>QCon|CG(fTvsAfQ_Q=gb%nWo>(Dl$_T9sH)oyaK!So&<{n&30X7A mML9*;&yxR`m#-_I{@NeyKQyNAyD-840000yF`#vO$+8m?wl8J-D{utd5V7x+ zUISh>5eY~czas&1*6k}|kCa}3Q{bt}=Uhv=E0+gpG&(JYnjJ+Tftby11P=hVUxAY< z<8v^-J)M35ery*Bjec&as zRM%I)6>lJk|0wUB%zj&zf}i-8V%n8!{u^y18Nk!&pwZ=DukLrxEp1T><<3&Q6&;dN zT|Y=NHdT4|9OLmh@XHXggF=M8Aney%Au^ys=tWABAbC9g2K)h3&FeFzL*RqjRyN+X z&N?0y1GET7#~9lbT=#Qkm#$#D<4He6>W8clsL?fs<<)L=5DCofZLQJhv%xC-T9fQ8 z=8z21Y<2;B%wf#Qn_%yi*e>_$2!b=~0e2wlq<8)@{&@!*L6v0Oi>E Z@-MY$$Qk0s4~+l-002ovPDHLkV1gnn*~tI^ literal 0 HcmV?d00001 diff --git a/эмс-бланк-пост.png.import b/эмс-бланк-пост.png.import new file mode 100644 index 0000000..934c1ed --- /dev/null +++ b/эмс-бланк-пост.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://sx6xcpus2yf" +path="res://.godot/imported/эмс-бланк-пост.png-439ef19be91abe97f22f96e843d00c61.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://эмс-бланк-пост.png" +dest_files=["res://.godot/imported/эмс-бланк-пост.png-439ef19be91abe97f22f96e843d00c61.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/эмс-бланк.png b/эмс-бланк.png new file mode 100755 index 0000000000000000000000000000000000000000..7762ebc2db5f43fd8a6d0942e97aac69bf29d02c GIT binary patch literal 787 zcmV+u1MK{XP)sV5G*eQ-dJRzof-TK{sy77enS6ZwD8LF0S1GS!6HE+ z1Z)UOnBZ9QjBqmD?`EMMsU;jow%?}cs_J*{tNW_7y}kWnFc>V_RydFaV8lfjP-Cp; zjFHsXW_0nRj7drYJRA=H(%#jvJRgbb6Ogm&pbabm|MYsj?`&7OBqU9N2{4lM2QdALswzntP}I=Aq*9Xe z#-_3!+d$WLQ7g?q160K6SS6x*Ljwl+Heagg{;!-J1Qr>mtPznCg3z8vRP%aoq(G_CnDN_t|S)H zxqMw(xLjTRt+3m`0+7xtv#p3IB;5i!KR$judGqYq$PsPMMCgBxun99#D5VeMqoc8; z9zaC2fRx+Ls;asn>GtCN`~9e@ZdI0Zbtmc?eqHv>wj)w+c{$5gR@$TI&)=41*{!Oo z$Zh8*Cnue69zE)>KX|ZU5D{47+_So4)ttNPS!2F_)ou#-qH2P%S>svU2?N>4~5 RU+(|_002ovPDHLkV1o2ifWH6$ literal 0 HcmV?d00001 diff --git a/эмс-бланк.png.import b/эмс-бланк.png.import new file mode 100644 index 0000000..2416285 --- /dev/null +++ b/эмс-бланк.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cwabmu3cljbpr" +path="res://.godot/imported/эмс-бланк.png-59a703aa6cdf36be7c906f7ee7a30184.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://эмс-бланк.png" +dest_files=["res://.godot/imported/эмс-бланк.png-59a703aa6cdf36be7c906f7ee7a30184.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1