Доработка. Кнопка показа схемы и снятие выбора прибора

This commit is contained in:
kira-a-k
2025-11-24 20:01:44 +03:00
parent d51c16b98e
commit de876c9a76
41 changed files with 2184 additions and 2771 deletions

View File

@@ -1,159 +1,235 @@
@tool
extends 'res://scenes/контроль/прибор.gd'
const constants_n = {
'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,
}
# Конфигурация параметров для каждого прибора
const PRIBOR_CONFIG_N := {
'': {'angle': 0.0, 'sectors': [4, 8]},
'': {'angle': 90.0, 'sectors': [7, 11]},
'': {'angle': 180.0, 'sectors': [6, 10]},
'': {'angle': 270.0, 'sectors': [5, 9]},
}
# Конфигурация частот и ширин для каждого ФС
const FS_PARAMS_N := {
2: {'freq': 932.0, 'width': 100.0},
3: {'freq': 1157.0, 'width': 100.0}
}
enum STATE_VAL { NONE = 0, GOOD = 1, ERROR = 2 }
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 start_litera: int = 2
var ug_work_1: int = 2 ## Аттенюация усилителей мощности
var ug_work_2: int = 3 ## Аттенюация усилителей мощности
# Флаги и таймеры
var mashine_timer: Timer = Timer.new()
var prd_n_module: Object
var unit_prd_n: Object
var control_prd_n: Object
# Результаты контроля
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 test_control_n = preload('res://scripts/pribor-prd.gd')
var ctrl_pos = 0
################################
func on_state_mashine() -> void:
control_prd_n.state_control_machine()
func _ready() -> void:
if Engine.is_editor_hint():
return
var unit_name = get_meta('unit_name')[0]
var prd_n_module = prd.prd_dict[unit_name]
unit_prd_n = prd_n_module.unit_control
var power_amplifier: Array = get_tree().get_nodes_in_group('power_amplifier')
for temp in power_amplifier:
temp.value1 = -70
# Подписываемся на сигналы
unit_prd_n.connect('control_is_over', Callable(self, 'on_press_device'))
unit_prd_n.connect('status_updated', Callable(self, '_on_status_updated'))
# Устанавливаем начальный статус
_update_status_text(unit_prd_n.get_current_status())
start_control()
on_press_device()
func _process(_delta: float) -> void:
if Engine.is_editor_hint():
return
set_frame($input_0, unit_prd_n.ems_g_sock_dic.ems_input_1)
set_frame($input_1, unit_prd_n.ems_g_sock_dic.ems_input_2)
set_frame($output_0, unit_prd_n.ems_g_sock_dic.ems_output_1)
set_frame($output_1, unit_prd_n.ems_g_sock_dic.ems_output_2)
func set_frame(node_frame: Node, val: int): node_frame.set_frame(val)
func start_control() -> void:
set_default_state(get_tree().get_nodes_in_group('default_reset'), get_tree().get_nodes_in_group('power_amplifier'))
initialize_connections()
setup_timer()
set_default_state()
find_labels(self)
static func set_default_state(default_reset_array_node: Array, power_amplifier_arr_node: Array) -> void:
for group in default_reset_array_node:
func initialize_connections() -> void:
var unit_name = get_meta('unit_name')[0]
prd_n_module = prd.prd_dict[unit_name]
unit_prd_n = prd_n_module.unit_yau07
unit_prd_n.connect('line_changed', Callable(self, 'on_line_changed'))
var power_amplifiers: Array = get_tree().get_nodes_in_group('power_amplifier')
var init_data: Dictionary = {
'control_label': $control_result,
'power_amplifiers': power_amplifiers,
'unit_prd': unit_prd_n,
'module_prd' : prd_n_module,
'constants': constants_n,
'prd_config': PRIBOR_CONFIG_N,
'fs_params': FS_PARAMS_N,
'block_ip_prd_config': block_ip_config_n,
'block_kasseta_y5_prd_config': block_kasseta_y5_prd_config_n,
'control_results': control_results_n,
'current_litera': start_litera,
}
control_prd_n = test_control_n.TestPRD.new(init_data)
add_child(control_prd_n)
control_prd_n.connect('control_is_over', Callable(self, 'on_control_result'))
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()
func set_default_state() -> void:
for group in get_tree().get_nodes_in_group('default_reset'):
group.state = STATE_VAL.NONE
for group in power_amplifier_arr_node:
for group in get_tree().get_nodes_in_group('power_amplifier'):
group.state = STATE_VAL.NONE
func _enter_tree() -> void:
if Engine.is_editor_hint():
return
if unit_prd_n:
_update_status_text(unit_prd_n.get_current_status())
$control_result.text = 'Выполняется ...'
$control_result.add_theme_color_override('font_color', Color.ALICE_BLUE)
signaller.connect('режим_работа', Callable(self, 'on_mode_changed').bind(false))
signaller.connect('режим_журнал', Callable(self, 'on_mode_changed').bind(false))
signaller.connect('режим_эмс', Callable(self, 'on_mode_changed').bind(false))
signaller.connect('режим_настройки', Callable(self, 'on_mode_changed').bind(false))
signaller.connect('режим_контроль', Callable(self, 'on_mode_changed').bind(true))
func _exit_tree() -> void:
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]])
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]])
static func temperature_fill(temperature_arr_node: Array, temperature_dic: Dictionary)->void:
for i_node_temperature in temperature_arr_node:
var temperature_meta: String = i_node_temperature.get_meta('um')
if not temperature_dic.has(temperature_meta): return
i_node_temperature.value1 = temperature_dic[temperature_meta] if temperature_dic[temperature_meta] < 361 else -40
func on_line_changed(unit_pribor: Object) -> void:
if not unit_pribor.online:
set_default_state()
static func power_fill(pow_dic: Dictionary, fs_result: Dictionary, power_amplifier_arr_node: Array, POWER_THRESHOLD: int) -> void:
for i_node_powapm in power_amplifier_arr_node:
var powamp_meta: String = i_node_powapm.get_meta('um')
func on_mode_changed(in_tree: bool) -> void:
if not in_tree:
mashine_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()
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')
for i_powapm in power_amplifier:
var powamp_meta: String = i_powapm.get_meta('um')
var status = STATE_VAL.GOOD if pow_dic else STATE_VAL.NONE
if not pow_dic.has(powamp_meta): return
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_9', 'um_10', 'um_11', 'um_12', 'um_13', 'um_14'] and not fs_result.fs_3: return
i_node_powapm.value0 = pow_dic[powamp_meta]
var count_above_threshold = 0
for i_p in pow_dic[powamp_meta]:
if i_p >= POWER_THRESHOLD:
count_above_threshold += 1
status = STATE_VAL.GOOD if count_above_threshold >= 3 else STATE_VAL.ERROR
i_node_powapm.state = status
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:
status = STATE_VAL.ERROR
i_powapm.state = status
func on_press_device() -> void:
func on_control_result(result_dic: Dictionary, power_dic: Dictionary) -> void:
mashine_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')
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 control_data: Dictionary = unit_prd_n.get_control_results()
var for_control_result: Dictionary = {
'nodes_y5': nodes_y5,
'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,
'module_fs_2': module_fs_2,
'dou_2': dou_2,
'module_fs_3': module_fs_3,
'dou_3': dou_3,
}
for_control_result.merge(control_data, true)
on_control_result(for_control_result)
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
var nodes_y5: Array = for_result_dic.nodes_y5
for node_y5 in nodes_y5:
var meta_y5 = node_y5.get_meta('y5')
if block_kasseta_y5_prd_config_n.has(meta_y5):
if not block_kasseta_y5_prd_config_n.yau07:
if block_kasseta_y5_prd_config_n['yau07'] == false:
node_y5.state = STATE_VAL.ERROR if meta_y5 == 'yau07' else STATE_VAL.NONE
else:
node_y5.state = STATE_VAL.GOOD if block_kasseta_y5_prd_config_n[meta_y5] else STATE_VAL.ERROR
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 = for_result_dic.block_ip_config
for power_supply in for_result_dic.node_ip_power_arr:
block_ip_config_n = control_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 meta_ip = power_supply.get_meta('ip')
if block_ip_config_n.has(meta_ip) and block_kasseta_y5_prd_config_n.ug and block_kasseta_y5_prd_config_n.yau07:
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
else:
power_supply.state = STATE_VAL.NONE
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_nodes: Array = get_tree().get_nodes_in_group('fs_group')
for f in fs_nodes:
var fs_meta: String = f.get_meta('fs')
if result_dic.has(fs_meta):
f.state = result_dic[fs_meta]
var new_state = result_dic[fs_meta]
f.state = new_state
result_dic[fs_meta] = new_state
if result_dic.fs_2 == 1 and block_kasseta_y5_prd_config_n['yau07']:
for_result_dic.module_fs_2.state = STATE_VAL.GOOD if result_dic.dkm_2 else STATE_VAL.ERROR
for_result_dic.dou_2.state = STATE_VAL.GOOD if result_dic.dou_2 else STATE_VAL.ERROR
if result_dic.fs_2 == 1:
$kasseta_FS_ND/ref_A4.state = STATE_VAL.GOOD if result_dic.dkm_2 else STATE_VAL.ERROR
$dou2_A5.state = STATE_VAL.GOOD if result_dic.dou_2 else STATE_VAL.ERROR
else:
result_dic.fs_2 = 0
if result_dic.fs_3 == 1:
$kasseta_FS_ND/ref_A3.state = STATE_VAL.GOOD if result_dic.dkm_3 else STATE_VAL.ERROR
$dou3_A6.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR
else:
result_dic.fs_3 = 0
if result_dic.fs_3 == 1 and block_kasseta_y5_prd_config_n['yau07']:
for_result_dic.module_fs_3.state = STATE_VAL.GOOD if result_dic.dkm_3 else STATE_VAL.ERROR
for_result_dic.dou_3.state = STATE_VAL.GOOD if result_dic.dou_3 else STATE_VAL.ERROR
if block_kasseta_y5_prd_config_n['yau07']:
power_fill(for_result_dic.power_dic, for_result_dic.result_dic, for_result_dic.power_amplifier, for_result_dic.POWER_THRESHOLD)
power_fill(power_dic, result_dic)
var result = true
for device in result_dic.values():
if not device:
result = false
var name_prd = control_prd_n.self_name
if result:
$control_result.text = 'Прибор ПРД-%s исправен' % name_prd
$control_result.add_theme_color_override('font_color', Color.GREEN)
else:
$control_result.text = 'Прибор ПРД-%s неисправен' % name_prd
$control_result.add_theme_color_override('font_color', Color.RED)
func find_labels(node1: Node):
@@ -170,22 +246,3 @@ func find_labels(node1: Node):
node1.set_meta("tooltip_set", true)
for child in node1.get_children():
find_labels(child)
func _on_status_updated(status_text: String) -> void:
_update_status_text(status_text)
func _update_status_text(text: String) -> void:
$control_result.text = text
# Можно добавить смену цвета в зависимости от статуса
if "Ошибка" in text or "неисправен" in text:
$control_result.add_theme_color_override('font_color', Color.RED)
log.message(Logger.INFO, 'Прибор ПРД-%s неисправен' % [unit_prd_n.self_name])
elif "Ограничена" in text or "Предупреждение" in text:
$control_result.add_theme_color_override('font_color', Color.YELLOW)
elif "исправен" in text or "завершён" in text:
$control_result.add_theme_color_override('font_color', Color.GREEN)
log.message(Logger.INFO, 'Прибор ПРД-%s исправен' % [unit_prd_n.self_name])
else:
$control_result.add_theme_color_override('font_color', Color.WHITE)

View File

@@ -1,35 +1,12 @@
[gd_scene load_steps=12 format=3 uid="uid://dnuexoef2nnv5"]
[gd_scene load_steps=8 format=3 uid="uid://dnuexoef2nnv5"]
[ext_resource type="Script" uid="uid://cto2r4ipew65m" path="res://scenes/pribor-prd-n/pribor-prd-n.gd" id="1_bnnv3"]
[ext_resource type="PackedScene" uid="uid://d3iqb5e4g81m5" path="res://scenes/контроль/элемент-г.tscn" id="2_is25t"]
[ext_resource type="Texture2D" uid="uid://c4mdrmk7h638f" path="res://data/nine-patch-round.png" id="3_meukj"]
[ext_resource type="PackedScene" uid="uid://bk1655p4e8y4u" path="res://scenes/контроль/кассета-у-5-нв.tscn" id="4_xkifg"]
[ext_resource type="Script" uid="uid://crpedygm3gohi" path="res://scenes/контроль/кассета.gd" id="6_b5wvk"]
[ext_resource type="PackedScene" uid="uid://bcyxqni7gxvtq" path="res://scenes/контроль/блок-в.tscn" id="7_bnnv3"]
[ext_resource type="PackedScene" uid="uid://p2suppildvq0" path="res://scenes/контроль/элемент-в.tscn" id="7_eoqf2"]
[ext_resource type="Texture2D" uid="uid://belwchvdktrw0" path="res://data/эмс-бланк.png" id="8_bnnv3"]
[ext_resource type="Texture2D" uid="uid://bwddxs24es81u" path="res://data/эмс-бланк-пост.png" id="9_is25t"]
[ext_resource type="Texture2D" uid="uid://pfoscstbm025" path="res://data/эмс-бланк-перем.png" id="10_meukj"]
[ext_resource type="Texture2D" uid="uid://dvl3sq036gn75" path="res://data/эмс-бланк-замыкание.png" id="11_xkifg"]
[sub_resource type="SpriteFrames" id="SpriteFrames_1wf07"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("8_bnnv3")
}, {
"duration": 1.0,
"texture": ExtResource("9_is25t")
}, {
"duration": 1.0,
"texture": ExtResource("10_meukj")
}, {
"duration": 1.0,
"texture": ExtResource("11_xkifg")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="pribor_prd_n" type="Control"]
layout_mode = 3
@@ -40,50 +17,50 @@ offset_right = 15.0
offset_bottom = 30.0
script = ExtResource("1_bnnv3")
[node name="maa2000_A23" parent="." groups=["power_supply"] instance=ExtResource("2_is25t")]
[node name="maa2000_A23" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("2_is25t")]
layout_mode = 2
offset_left = 47.0
offset_top = 731.0
offset_right = 214.0
offset_bottom = 803.0
offset_left = 8.0
offset_top = 877.0
offset_right = 175.0
offset_bottom = 949.0
fname = "MAA2000"
rname = "A23"
metadata/ip = "maa2000_2"
[node name="maa2000_A22" parent="." groups=["power_supply"] instance=ExtResource("2_is25t")]
[node name="maa2000_A22" parent="." groups=["default_reset", "power_supply"] instance=ExtResource("2_is25t")]
layout_mode = 2
offset_left = 524.0
offset_top = 731.0
offset_right = 691.0
offset_bottom = 803.0
offset_left = 485.0
offset_top = 877.0
offset_right = 652.0
offset_bottom = 949.0
fname = "MAA2000"
rname = "A22"
metadata/ip = "maa2000_1"
[node name="dou2_A5" parent="." groups=["default_reset"] instance=ExtResource("2_is25t")]
layout_mode = 2
offset_left = 524.0
offset_top = 666.0
offset_right = 691.0
offset_bottom = 731.0
offset_left = 485.0
offset_top = 812.0
offset_right = 652.0
offset_bottom = 877.0
fname = "ДОУ-2"
rname = "A5"
[node name="dou3_A6" parent="." groups=["default_reset"] instance=ExtResource("2_is25t")]
layout_mode = 2
offset_left = 47.0
offset_top = 666.0
offset_right = 214.0
offset_bottom = 731.0
offset_left = 8.0
offset_top = 812.0
offset_right = 175.0
offset_bottom = 877.0
fname = "ДОУ-3"
rname = "A6"
[node name="ref_ZZ3" type="NinePatchRect" parent="."]
layout_mode = 0
offset_left = 214.0
offset_top = 666.0
offset_right = 524.0
offset_bottom = 803.0
offset_left = 175.0
offset_top = 812.0
offset_right = 485.0
offset_bottom = 949.0
texture = ExtResource("3_meukj")
patch_margin_left = 16
patch_margin_top = 16
@@ -102,90 +79,19 @@ text = "Панель
horizontal_alignment = 1
vertical_alignment = 1
[node name="kasseta_U5" type="NinePatchRect" parent="."]
[node name="kasseta_U5" parent="." instance=ExtResource("4_xkifg")]
layout_mode = 0
offset_left = 214.0
offset_top = 96.0
offset_right = 524.0
offset_bottom = 286.0
texture = ExtResource("3_meukj")
patch_margin_left = 16
patch_margin_top = 16
patch_margin_right = 16
patch_margin_bottom = 16
script = ExtResource("6_b5wvk")
[node name="lbl_fname" type="Label" parent="kasseta_U5"]
self_modulate = Color(1, 1, 1, 0.62)
layout_mode = 0
offset_left = 5.0
offset_top = 7.0
offset_right = 305.0
offset_bottom = 35.0
text = "Кассета У5"
horizontal_alignment = 1
vertical_alignment = 1
[node name="ref_A24" parent="kasseta_U5" groups=["power_supply"] instance=ExtResource("7_eoqf2")]
offset_left = 5.0
offset_top = 32.0
offset_right = 55.0
offset_bottom = 182.0
fname = "ИП5-25"
rname = "A24"
metadata/ip = "ip5_25"
[node name="ref_A30" parent="kasseta_U5" groups=["y-5"] instance=ExtResource("7_eoqf2")]
offset_left = 55.0
offset_top = 32.0
offset_right = 105.0
offset_bottom = 182.0
fname = "ЯУ-07Б"
rname = "A30"
metadata/y5 = "yau07"
[node name="ref_A26" parent="kasseta_U5" groups=["y-5"] instance=ExtResource("7_eoqf2")]
offset_left = 105.0
offset_top = 32.0
offset_right = 155.0
offset_bottom = 182.0
fname = "ЭМС-Г"
rname = "A26"
metadata/y5 = "ems"
[node name="ref_A27" parent="kasseta_U5" groups=["y-5"] instance=ExtResource("7_eoqf2")]
offset_left = 155.0
offset_top = 32.0
offset_right = 205.0
offset_bottom = 182.0
fname = "УГ"
rname = "A27"
metadata/y5 = "ug"
[node name="ref_A28" parent="kasseta_U5" groups=["y-5"] instance=ExtResource("7_eoqf2")]
offset_left = 205.0
offset_top = 32.0
offset_right = 255.0
offset_bottom = 182.0
fname = "УКП"
rname = "A28"
metadata/y5 = "ukp1"
[node name="ref_A29" parent="kasseta_U5" groups=["y-5"] instance=ExtResource("7_eoqf2")]
offset_left = 254.0
offset_top = 32.0
offset_right = 304.0
offset_bottom = 182.0
fname = "УКП"
rname = "A29"
metadata/y5 = "ukp2"
offset_left = 175.0
offset_top = 242.0
offset_right = 485.0
offset_bottom = 432.0
[node name="kasseta_FS_ND" type="NinePatchRect" parent="."]
layout_mode = 0
offset_left = 214.0
offset_top = 286.0
offset_right = 524.0
offset_bottom = 476.0
offset_left = 175.0
offset_top = 432.0
offset_right = 485.0
offset_bottom = 622.0
texture = ExtResource("3_meukj")
patch_margin_left = 16
patch_margin_top = 16
@@ -212,7 +118,7 @@ offset_top = 32.0
offset_right = 105.0
offset_bottom = 182.0
fname = "Блок ФС-3"
rname = "A4"
rname = "A3"
[node name="ref_A1" parent="kasseta_FS_ND" groups=["default_reset", "fs_group"] instance=ExtResource("7_eoqf2")]
offset_left = 105.0
@@ -220,7 +126,7 @@ offset_top = 32.0
offset_right = 155.0
offset_bottom = 182.0
fname = "Модуль ФС"
rname = "A2"
rname = "A1"
metadata/fs = "fs_3"
[node name="ref_A2" parent="kasseta_FS_ND" groups=["default_reset", "fs_group"] instance=ExtResource("7_eoqf2")]
@@ -229,7 +135,7 @@ offset_top = 32.0
offset_right = 205.0
offset_bottom = 182.0
fname = "Модуль ФС"
rname = "A1"
rname = "A2"
metadata/fs = "fs_2"
[node name="ref_A4" parent="kasseta_FS_ND" groups=["default_reset"] instance=ExtResource("7_eoqf2")]
@@ -238,14 +144,14 @@ offset_top = 32.0
offset_right = 255.0
offset_bottom = 182.0
fname = "Блок ФС-2"
rname = "A3"
rname = "A4"
[node name="kasseta_P_1" type="NinePatchRect" parent="."]
layout_mode = 0
offset_left = 214.0
offset_top = 476.0
offset_right = 524.0
offset_bottom = 666.0
offset_left = 175.0
offset_top = 622.0
offset_right = 485.0
offset_bottom = 812.0
texture = ExtResource("3_meukj")
patch_margin_left = 16
patch_margin_top = 16
@@ -254,7 +160,7 @@ patch_margin_bottom = 16
script = ExtResource("6_b5wvk")
fname = "Кассета П-1"
[node name="ref_A21" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_eoqf2")]
[node name="ref_A21" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_eoqf2")]
offset_left = 9.0
offset_top = 33.0
offset_right = 59.0
@@ -263,7 +169,7 @@ fname = "ИП12-50"
rname = "A21"
metadata/ip = "ip12_50_1"
[node name="ref_A20" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_eoqf2")]
[node name="ref_A20" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_eoqf2")]
offset_left = 59.0
offset_top = 33.0
offset_right = 109.0
@@ -272,7 +178,7 @@ fname = "ИП9-50"
rname = "A20"
metadata/ip = "ip9_50_1"
[node name="ref_A19" parent="kasseta_P_1" groups=["power_supply"] instance=ExtResource("7_eoqf2")]
[node name="ref_A19" parent="kasseta_P_1" groups=["default_reset", "power_supply"] instance=ExtResource("7_eoqf2")]
offset_left = 109.0
offset_top = 33.0
offset_right = 159.0
@@ -294,182 +200,153 @@ vertical_alignment = 1
[node name="um1535_A7" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 524.0
offset_top = 96.0
offset_right = 691.0
offset_bottom = 191.0
fname = "УМ1535А"
offset_left = 485.0
offset_top = 242.0
offset_right = 652.0
offset_bottom = 337.0
fname = "УМ1535Б"
rname = "A7"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_1"
[node name="um1535_A8" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 524.0
offset_top = 191.0
offset_right = 691.0
offset_bottom = 286.0
offset_left = 485.0
offset_top = 337.0
offset_right = 652.0
offset_bottom = 432.0
fname = "УМ1535А"
rname = "A8"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_2"
[node name="um1535_A9" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 524.0
offset_top = 286.0
offset_right = 691.0
offset_bottom = 381.0
offset_left = 485.0
offset_top = 432.0
offset_right = 652.0
offset_bottom = 527.0
fname = "УМ1535А"
rname = "A9"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_3"
[node name="um1535_A10" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 524.0
offset_top = 381.0
offset_right = 691.0
offset_bottom = 476.0
offset_left = 485.0
offset_top = 527.0
offset_right = 652.0
offset_bottom = 622.0
fname = "УМ1535А"
rname = "A10"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_4"
[node name="um1535_A11" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 524.0
offset_top = 476.0
offset_right = 691.0
offset_bottom = 571.0
offset_left = 485.0
offset_top = 622.0
offset_right = 652.0
offset_bottom = 717.0
fname = "УМ1535А"
rname = "A11"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_5"
[node name="um1535_A12" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 524.0
offset_top = 571.0
offset_right = 691.0
offset_bottom = 666.0
offset_left = 485.0
offset_top = 717.0
offset_right = 652.0
offset_bottom = 812.0
fname = "УМ1535А"
rname = "A12"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_6"
[node name="um1535_A13" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 47.0
offset_top = 96.0
offset_right = 214.0
offset_bottom = 191.0
offset_left = 8.0
offset_top = 242.0
offset_right = 175.0
offset_bottom = 337.0
fname = "УМ1535А"
rname = "A13"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_9"
metadata/um = "um_7"
[node name="um1535_A14" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 47.0
offset_top = 191.0
offset_right = 214.0
offset_bottom = 286.0
offset_left = 8.0
offset_top = 337.0
offset_right = 175.0
offset_bottom = 432.0
fname = "УМ1535А"
rname = "A14"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_10"
metadata/um = "um_8"
[node name="um1535_A15" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 47.0
offset_top = 286.0
offset_right = 214.0
offset_bottom = 381.0
offset_left = 8.0
offset_top = 432.0
offset_right = 175.0
offset_bottom = 527.0
fname = "УМ1535А"
rname = "A15"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_11"
metadata/um = "um_9"
[node name="um1535_A16" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 47.0
offset_top = 381.0
offset_right = 214.0
offset_bottom = 476.0
offset_left = 8.0
offset_top = 527.0
offset_right = 175.0
offset_bottom = 622.0
fname = "УМ1535А"
rname = "A16"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_12"
metadata/um = "um_10"
[node name="um1535_A17" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 47.0
offset_top = 476.0
offset_right = 214.0
offset_bottom = 571.0
offset_left = 8.0
offset_top = 622.0
offset_right = 175.0
offset_bottom = 717.0
fname = "УМ1535А"
rname = "A17"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_13"
metadata/um = "um_11"
[node name="um1535_A18" parent="." groups=["power_amplifier"] instance=ExtResource("7_bnnv3")]
layout_mode = 0
offset_left = 47.0
offset_top = 571.0
offset_right = 214.0
offset_bottom = 666.0
offset_left = 8.0
offset_top = 717.0
offset_right = 175.0
offset_bottom = 812.0
fname = "УМ1535А"
rname = "A18"
value0_info = "Мощность"
value0_info = "Мощность, Вт"
value1_info = "Температура,°C"
metadata/um = "um_14"
metadata/um = "um_12"
[node name="control_result" type="Label" parent="."]
layout_mode = 0
offset_left = 49.0
offset_top = 993.0
offset_right = 689.0
offset_bottom = 1036.0
theme_override_font_sizes/font_size = 22
offset_left = 9.0
offset_top = 960.0
offset_right = 649.0
offset_bottom = 1003.0
horizontal_alignment = 1
metadata/_edit_lock_ = true
[node name="input_0" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(495, 443)
sprite_frames = SubResource("SpriteFrames_1wf07")
[node name="input_1" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(246, 440)
sprite_frames = SubResource("SpriteFrames_1wf07")
[node name="output_0" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(497, 330)
sprite_frames = SubResource("SpriteFrames_1wf07")
[node name="output_1" type="AnimatedSprite2D" parent="."]
visible = false
position = Vector2(249, 331)
sprite_frames = SubResource("SpriteFrames_1wf07")
[node name="line" type="Line2D" parent="."]
position = Vector2(59, 920)
scale = Vector2(1.03548, 1)
points = PackedVector2Array(-8, 0, 61.8069, 0, 608, 0)
width = 2.0
default_color = Color(1, 1, 1, 0.352941)
metadata/_edit_lock_ = true