Актуальная версия PRD_TU_MP550, что на полигоне

This commit is contained in:
TotMaxim
2025-11-09 16:49:16 +03:00
parent e202a21162
commit 8a87cc70f6
13 changed files with 5138 additions and 56 deletions

1
.gitignore vendored
View File

@@ -3,6 +3,7 @@
.idea/
.git/
bin
signals
/commit.gd
/saves/fs_setting
/saves/ПРД-В1

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=80 format=3 uid="uid://cvor2jm4xk3ha"]
[gd_scene load_steps=86 format=3 uid="uid://cvor2jm4xk3ha"]
[ext_resource type="Script" uid="uid://ba6evmqccy62x" path="res://scripts/PRD.gd" id="1_v273n"]
[ext_resource type="Texture2D" uid="uid://cdxdluvyb5uei" path="res://table/on.png" id="2_dv7xx"]
@@ -10,9 +10,7 @@
[ext_resource type="Texture2D" uid="uid://671got5vbput" path="res://pictures/бургер.png" id="5_eoogc"]
[ext_resource type="Texture2D" uid="uid://co8dxcd8eckjs" path="res://pictures/Web.png" id="5_i3nvb"]
[ext_resource type="Texture2D" uid="uid://didrk0pcfgirg" path="res://pictures/клад.png" id="6_bqc7t"]
[ext_resource type="Texture2D" uid="uid://cxn1guhi7lg3i" path="res://pictures/серпимолот.png" id="7_0pknj"]
[ext_resource type="Shader" uid="uid://cfd2s64fffn6w" path="res://Shaders/ray_2.gdshader" id="8_12mng"]
[ext_resource type="Texture2D" uid="uid://ysxmr26y0i8v" path="res://pictures/серпимоло_pressed.png" id="8_iuer1"]
[ext_resource type="Texture2D" uid="uid://ckvwvec0hop37" path="res://pictures/контролер.png" id="8_qqoau"]
[ext_resource type="Texture2D" uid="uid://cgtg4gbqnuxrc" path="res://pictures/nine-patch-round.png" id="9_0r2qk"]
[ext_resource type="Script" uid="uid://cfqdq0o4203w6" path="res://scripts/control_panel.gd" id="9_akagi"]
@@ -32,6 +30,10 @@
[ext_resource type="Texture2D" uid="uid://c12e2lcqf6r3o" path="res://pictures/загр.png" id="17_uy706"]
[ext_resource type="Texture2D" uid="uid://gjqcmfxb4vo4" path="res://pictures/загр_pressed.png" id="18_iu14f"]
[ext_resource type="Shader" uid="uid://d4cjy8r4imndv" path="res://Shaders/ray_litera_1.gdshader" id="20_do1s5"]
[ext_resource type="Texture2D" uid="uid://dkef6xwxwdxi8" path="res://pictures/эмс-бланк.png" id="31_f2h26"]
[ext_resource type="Script" uid="uid://du1ddy4r1sch" path="res://monitoring.gd" id="31_oy1ur"]
[ext_resource type="Texture2D" uid="uid://b15flrfytxkop" path="res://pictures/эмс-бланк-пост.png" id="32_oy1ur"]
[ext_resource type="Texture2D" uid="uid://ijdfo2mml54" path="res://pictures/эмс-бланк-перем.png" id="33_cnhpm"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_o0too"]
bg_color = Color(0.447059, 0.0784314, 0.192157, 1)
@@ -253,6 +255,32 @@ shader_parameter/color4 = Color(0, 0, 0, 0)
shader_parameter/opacity = 0.218
shader_parameter/turn = 0.785
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_71q55"]
[sub_resource type="SpriteFrames" id="SpriteFrames_ol6fi"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": ExtResource("31_f2h26")
}, {
"duration": 1.0,
"texture": ExtResource("32_oy1ur")
}, {
"duration": 1.0,
"texture": ExtResource("33_cnhpm")
}, {
"duration": 1.0,
"texture": null
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_f2h26"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_oy1ur"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ei3d4"]
bg_color = Color(0.362983, 0.685867, 0.396516, 1)
corner_radius_top_left = 5
@@ -328,7 +356,7 @@ theme_override_styles/pressed = SubResource("StyleBoxFlat_p247y")
toggle_mode = true
text = "ЭМС Г"
[node name="select_fs" type="Button" parent="Background/switch_panel" groups=["select_grp"]]
[node name="select_monitoring" type="Button" parent="Background/switch_panel" groups=["select_grp"]]
layout_mode = 0
offset_left = 16.0
offset_top = 249.0
@@ -339,7 +367,7 @@ mouse_default_cursor_shape = 2
theme_override_font_sizes/font_size = 14
theme_override_styles/pressed = SubResource("StyleBoxFlat_p247y")
toggle_mode = true
text = "Модуль ФС"
text = "Мониторинг"
[node name="save_config" type="Button" parent="Background/switch_panel" groups=["select_grp"]]
layout_mode = 0
@@ -434,21 +462,6 @@ texture_pressed = ExtResource("12_u035s")
ignore_texture_size = true
stretch_mode = 0
[node name="texture_fs" type="TextureButton" parent="Background/switch_panel" groups=["burger_gr"]]
visible = false
self_modulate = Color(1, 1, 0.941, 0.85)
layout_mode = 0
offset_left = -155.0
offset_top = 304.0
offset_right = -115.0
offset_bottom = 344.0
mouse_default_cursor_shape = 2
toggle_mode = true
texture_normal = ExtResource("7_0pknj")
texture_pressed = ExtResource("8_iuer1")
ignore_texture_size = true
stretch_mode = 0
[node name="texture_save_config" type="TextureButton" parent="Background/switch_panel" groups=["burger_gr"]]
visible = false
self_modulate = Color(1, 1, 0.941, 0.85)
@@ -479,6 +492,12 @@ texture_pressed = ExtResource("18_iu14f")
ignore_texture_size = true
stretch_mode = 0
[node name="texture_monitoring" type="TextureButton" parent="Background/switch_panel"]
visible = false
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="notice" type="GridContainer" parent="Background"]
layout_mode = 0
offset_left = 240.0
@@ -701,7 +720,7 @@ texture = SubResource("GradientTexture2D_766ko")
metadata/_edit_lock_ = true
[node name="select_dev" type="GridContainer" parent="TabContainer/PRD"]
layout_mode = 2
layout_mode = 0
offset_left = 48.0
offset_top = -16.0
offset_right = 48.0
@@ -795,11 +814,12 @@ metadata/_edit_lock_ = true
[node name="Label_dkm" type="Label" parent="TabContainer/PRD"]
layout_mode = 0
offset_left = -40.0
offset_top = -53.0
offset_right = 368.0
offset_bottom = -11.0
offset_left = -27.0
offset_top = 21.0
offset_right = 381.0
offset_bottom = 63.0
text = "DKM:"
metadata/_edit_lock_ = true
[node name="ControlPanel" type="Panel" parent="TabContainer"]
visible = false
@@ -836,7 +856,7 @@ patch_margin_bottom = 16
metadata/_edit_lock_ = true
[node name="blok_ym_1" parent="TabContainer/ControlPanel/socket_ym_lb" instance=ExtResource("11_k47r2")]
layout_mode = 2
layout_mode = 0
offset_left = 20.0
offset_top = 40.0
offset_right = 201.0
@@ -848,7 +868,7 @@ name_min_size0 = Vector2i(30, 0)
fname = "УМ 1"
[node name="blok_ym_2" parent="TabContainer/ControlPanel/socket_ym_lb" instance=ExtResource("11_k47r2")]
layout_mode = 2
layout_mode = 0
offset_left = 20.0
offset_top = 160.0
offset_right = 201.0
@@ -921,7 +941,7 @@ patch_margin_bottom = 16
metadata/_edit_lock_ = true
[node name="blok_ym_1" parent="TabContainer/ControlPanel/socket_ym_pb" instance=ExtResource("11_k47r2")]
layout_mode = 2
layout_mode = 0
offset_left = 20.0
offset_top = 40.0
offset_right = 201.0
@@ -929,7 +949,7 @@ offset_bottom = 149.0
fname = "УМ 1"
[node name="blok_ym_2" parent="TabContainer/ControlPanel/socket_ym_pb" instance=ExtResource("11_k47r2")]
layout_mode = 2
layout_mode = 0
offset_left = 20.0
offset_top = 160.0
offset_right = 201.0
@@ -993,6 +1013,7 @@ patch_margin_bottom = 16
metadata/_edit_lock_ = true
[node name="IP5_25" parent="TabContainer/ControlPanel/soc_y5" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 9.0
offset_top = 34.0
offset_right = 59.0
@@ -1001,6 +1022,7 @@ fname = "ИП5-25"
rname = "A24"
[node name="yau_07b" parent="TabContainer/ControlPanel/soc_y5" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 59.0
offset_top = 34.0
offset_right = 109.0
@@ -1009,6 +1031,7 @@ fname = "ЯУ-07"
rname = "A30"
[node name="ems_g" parent="TabContainer/ControlPanel/soc_y5" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 109.0
offset_top = 34.0
offset_right = 159.0
@@ -1017,6 +1040,7 @@ fname = "ЭМС-Г"
rname = "A26"
[node name="ug" parent="TabContainer/ControlPanel/soc_y5" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 159.0
offset_top = 34.0
offset_right = 209.0
@@ -1025,6 +1049,7 @@ fname = "УГ"
rname = "A27"
[node name="ukp_2" parent="TabContainer/ControlPanel/soc_y5" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 259.0
offset_top = 34.0
offset_right = 309.0
@@ -1033,6 +1058,7 @@ fname = "УКП-2"
rname = "A29"
[node name="ukp_1" parent="TabContainer/ControlPanel/soc_y5" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 210.0
offset_top = 35.0
offset_right = 260.0
@@ -1072,6 +1098,7 @@ horizontal_alignment = 1
vertical_alignment = 1
[node name="ref_A3" parent="TabContainer/ControlPanel/Kasseta_FS" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 109.0
offset_top = 41.0
offset_right = 159.0
@@ -1081,6 +1108,7 @@ fname = "БЛОК ФС-2"
rname = "A3"
[node name="ref_A1" parent="TabContainer/ControlPanel/Kasseta_FS" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 159.0
offset_top = 41.0
offset_right = 209.0
@@ -1090,6 +1118,7 @@ fname = "Модуль ФС"
rname = "A1"
[node name="ref_A2" parent="TabContainer/ControlPanel/Kasseta_FS" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 209.0
offset_top = 41.0
offset_right = 259.0
@@ -1099,6 +1128,7 @@ fname = "Модуль ФС"
rname = "A2"
[node name="ref_A4" parent="TabContainer/ControlPanel/Kasseta_FS" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 259.0
offset_top = 41.0
offset_right = 309.0
@@ -1108,6 +1138,7 @@ fname = "БЛОК ФС-3"
rname = "A4"
[node name="Block_FS_PRD_K" parent="TabContainer/ControlPanel/Kasseta_FS" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 12.0
offset_top = 40.0
offset_right = 62.0
@@ -1117,6 +1148,7 @@ fname = "БЛОК ФС-1"
rname = "A4"
[node name="FS_PRD_K" parent="TabContainer/ControlPanel/Kasseta_FS" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 61.0
offset_top = 41.0
offset_right = 111.0
@@ -1151,6 +1183,7 @@ vertical_alignment = 1
metadata/_edit_lock_ = true
[node name="MAA_1" parent="TabContainer/ControlPanel/soc_P1" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = -58.0
offset_top = 21.0
offset_right = -8.0
@@ -1161,6 +1194,7 @@ rname = "А22"
metadata/_edit_lock_ = true
[node name="MAA_2" parent="TabContainer/ControlPanel/soc_P1" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 196.0
offset_top = 21.0
offset_right = 246.0
@@ -1171,6 +1205,7 @@ rname = "А23"
metadata/_edit_lock_ = true
[node name="IP9_50_2" parent="TabContainer/ControlPanel/soc_P1" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 129.0
offset_top = 29.0
offset_right = 179.0
@@ -1181,6 +1216,7 @@ rname = "А19"
metadata/_edit_lock_ = true
[node name="IP9_50_1" parent="TabContainer/ControlPanel/soc_P1" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 73.0
offset_top = 29.0
offset_right = 123.0
@@ -1191,6 +1227,7 @@ rname = "А20"
metadata/_edit_lock_ = true
[node name="IP12_50" parent="TabContainer/ControlPanel/soc_P1" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 16.0
offset_top = 29.0
offset_right = 66.0
@@ -1226,6 +1263,7 @@ vertical_alignment = 1
metadata/_edit_lock_ = true
[node name="DKM_3" parent="TabContainer/ControlPanel/soc_DKM" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 121.0
offset_top = 32.0
offset_right = 171.0
@@ -1236,6 +1274,7 @@ rname = " "
metadata/_edit_lock_ = true
[node name="DKM_2" parent="TabContainer/ControlPanel/soc_DKM" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 66.0
offset_top = 32.0
offset_right = 116.0
@@ -1246,6 +1285,7 @@ rname = " "
metadata/_edit_lock_ = true
[node name="DKM_1" parent="TabContainer/ControlPanel/soc_DKM" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 10.0
offset_top = 32.0
offset_right = 60.0
@@ -1281,6 +1321,7 @@ vertical_alignment = 1
metadata/_edit_lock_ = true
[node name="IP12_50" parent="TabContainer/ControlPanel/soc_P2" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 67.0
offset_top = 36.0
offset_right = 117.0
@@ -1291,6 +1332,7 @@ rname = "A25"
metadata/_edit_lock_ = true
[node name="IP9_50" parent="TabContainer/ControlPanel/soc_P2" instance=ExtResource("11_fg7ul")]
layout_mode = 0
offset_left = 11.0
offset_top = 36.0
offset_right = 61.0
@@ -1340,7 +1382,7 @@ metadata/_tab_index = 2
metadata/_edit_lock_ = true
[node name="table1" type="GridContainer" parent="TabContainer/EMS_G"]
layout_mode = 2
layout_mode = 0
offset_left = 35.0
offset_top = 60.0
offset_right = 35.0
@@ -1373,6 +1415,630 @@ scale = Vector2(24.5313, 11.2656)
texture = SubResource("GradientTexture2D_0pk2o")
metadata/_edit_lock_ = true
[node name="Monitoring" type="Panel" parent="TabContainer"]
visible = false
layout_mode = 2
theme_override_styles/panel = SubResource("StyleBoxEmpty_71q55")
script = ExtResource("31_oy1ur")
metadata/_tab_index = 3
metadata/_edit_lock_ = true
[node name="input_ems_g" type="GridContainer" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 456.0
offset_top = 66.0
offset_right = 560.0
offset_bottom = 494.0
[node name="input_ems_0" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СЗИ1 от УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_0" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_1" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СЗИ2 от УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_1" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_2" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СЗИ3 от УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_2" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_3" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СЗИ4 от УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_3" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_4" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СЗИ5 от УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_4" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_5" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СЗИ6 от УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_5" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_6" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СЗИ7 от УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_6" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_7" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "input_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_7" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_8" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ1 от ФС"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_8" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_9" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ2 от ФС"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_9" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_10" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ3 от ФС"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_10" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_11" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ4 от ФС"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_11" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_12" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ5 от ФС"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_12" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_13" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ6 от ФС"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_13" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_14" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ7 от ФС"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_14" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="input_ems_15" type="Label" parent="TabContainer/Monitoring/input_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "input_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/input_ems_g/input_ems_15" groups=["input_socket_status"]]
position = Vector2(120, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_g" type="GridContainer" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 648.0
offset_top = 66.0
offset_right = 752.0
offset_bottom = 494.0
[node name="output_ems_0" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ1 в УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_0" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_1" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ2| 4| 6 в УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_1" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_2" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "СИ3| 5| 7 в УФ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_2" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_3" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "Модуляция УМ"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_3" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_4" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "Модуляция УМ 2|4|6"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_4" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_5" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "Модуляция УМ 3|5|7"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_5" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_6" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "output_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_6" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_7" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "output_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_7" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_8" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "ФГОЗ 4 | 6"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_8" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_9" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "ФГОЗ 3 | 5"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_9" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_10" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "Модуляция М1"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_10" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_11" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "output_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_11" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_12" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "output_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_12" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_13" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "output_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_13" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_14" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "output_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_14" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="output_ems_15" type="Label" parent="TabContainer/Monitoring/output_ems_g"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
text = "output_x"
[node name="SZI_x" type="AnimatedSprite2D" parent="TabContainer/Monitoring/output_ems_g/output_ems_15" groups=["output_socket_status"]]
position = Vector2(212, 12)
scale = Vector2(1.2, 1.2)
sprite_frames = SubResource("SpriteFrames_ol6fi")
[node name="DKM_grid" type="GridContainer" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 432.0
offset_top = 530.0
offset_right = 1107.0
offset_bottom = 583.0
columns = 7
[node name="dkm_litera_1" type="CheckBox" parent="TabContainer/Monitoring/DKM_grid"]
layout_mode = 2
mouse_filter = 2
theme_override_styles/pressed = SubResource("StyleBoxEmpty_f2h26")
theme_override_styles/normal = SubResource("StyleBoxEmpty_oy1ur")
text = "Литера 1"
[node name="dkm_litera_2" type="CheckBox" parent="TabContainer/Monitoring/DKM_grid"]
layout_mode = 2
mouse_filter = 2
theme_override_styles/pressed = SubResource("StyleBoxEmpty_f2h26")
theme_override_styles/normal = SubResource("StyleBoxEmpty_oy1ur")
text = "Литера 2"
[node name="dkm_litera_3" type="CheckBox" parent="TabContainer/Monitoring/DKM_grid"]
layout_mode = 2
mouse_filter = 2
theme_override_styles/pressed = SubResource("StyleBoxEmpty_f2h26")
theme_override_styles/normal = SubResource("StyleBoxEmpty_oy1ur")
text = "Литера 3"
[node name="dkm_litera_4" type="CheckBox" parent="TabContainer/Monitoring/DKM_grid"]
layout_mode = 2
mouse_filter = 2
theme_override_styles/pressed = SubResource("StyleBoxEmpty_f2h26")
theme_override_styles/normal = SubResource("StyleBoxEmpty_oy1ur")
text = "Литера 4"
[node name="dkm_litera_5" type="CheckBox" parent="TabContainer/Monitoring/DKM_grid"]
layout_mode = 2
mouse_filter = 2
theme_override_styles/pressed = SubResource("StyleBoxEmpty_f2h26")
theme_override_styles/normal = SubResource("StyleBoxEmpty_oy1ur")
text = "Литера 5"
[node name="dkm_litera_6" type="CheckBox" parent="TabContainer/Monitoring/DKM_grid"]
layout_mode = 2
mouse_filter = 2
theme_override_styles/pressed = SubResource("StyleBoxEmpty_f2h26")
theme_override_styles/normal = SubResource("StyleBoxEmpty_oy1ur")
text = "Литера 6"
[node name="dkm_litera_7" type="CheckBox" parent="TabContainer/Monitoring/DKM_grid"]
layout_mode = 2
mouse_filter = 2
theme_override_styles/pressed = SubResource("StyleBoxEmpty_f2h26")
theme_override_styles/normal = SubResource("StyleBoxEmpty_oy1ur")
text = "Литера 7"
[node name="DKM" type="Label" parent="TabContainer/Monitoring/DKM_grid"]
layout_mode = 2
text = "DKM: NONE"
[node name="select_device" type="OptionButton" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 128.0
offset_top = -46.0
offset_right = 240.0
offset_bottom = -18.0
mouse_default_cursor_shape = 2
alignment = 1
selected = 0
item_count = 1
popup/item_0/text = "NONE"
popup/item_0/id = 0
[node name="power_um_1" type="GridContainer" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 888.0
offset_top = 90.0
offset_right = 1000.0
offset_bottom = 248.0
[node name="power_1" type="Label" parent="TabContainer/Monitoring/power_um_1" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_2" type="Label" parent="TabContainer/Monitoring/power_um_1" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_3" type="Label" parent="TabContainer/Monitoring/power_um_1" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_4" type="Label" parent="TabContainer/Monitoring/power_um_1" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_5" type="Label" parent="TabContainer/Monitoring/power_um_1" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_6" type="Label" parent="TabContainer/Monitoring/power_um_1" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_um_2" type="GridContainer" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 888.0
offset_top = 314.0
offset_right = 1000.0
offset_bottom = 472.0
[node name="power_1" type="Label" parent="TabContainer/Monitoring/power_um_2" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_2" type="Label" parent="TabContainer/Monitoring/power_um_2" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_3" type="Label" parent="TabContainer/Monitoring/power_um_2" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_4" type="Label" parent="TabContainer/Monitoring/power_um_2" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_5" type="Label" parent="TabContainer/Monitoring/power_um_2" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="power_6" type="Label" parent="TabContainer/Monitoring/power_um_2" groups=["power"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_um_1" type="GridContainer" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 1008.0
offset_top = 90.0
offset_right = 1120.0
offset_bottom = 248.0
[node name="temperature_1" type="Label" parent="TabContainer/Monitoring/temperature_um_1" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_2" type="Label" parent="TabContainer/Monitoring/temperature_um_1" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_3" type="Label" parent="TabContainer/Monitoring/temperature_um_1" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_4" type="Label" parent="TabContainer/Monitoring/temperature_um_1" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_5" type="Label" parent="TabContainer/Monitoring/temperature_um_1" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_6" type="Label" parent="TabContainer/Monitoring/temperature_um_1" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_um_2" type="GridContainer" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 1008.0
offset_top = 314.0
offset_right = 1120.0
offset_bottom = 472.0
[node name="temperature_1" type="Label" parent="TabContainer/Monitoring/temperature_um_2" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_2" type="Label" parent="TabContainer/Monitoring/temperature_um_2" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_3" type="Label" parent="TabContainer/Monitoring/temperature_um_2" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_4" type="Label" parent="TabContainer/Monitoring/temperature_um_2" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_5" type="Label" parent="TabContainer/Monitoring/temperature_um_2" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="temperature_6" type="Label" parent="TabContainer/Monitoring/temperature_um_2" groups=["temperature"]]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
text = "0"
[node name="status_yau_list" type="GridContainer" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 56.0
offset_top = 18.0
offset_right = 216.0
offset_bottom = 482.0
metadata/_edit_lock_ = true
[node name="prd-n1" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-n2" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-n3" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-v1" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-v2" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-v3" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-v4" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-n4" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-k1" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-k2" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-k3" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="prd-k4" type="Label" parent="TabContainer/Monitoring/status_yau_list"]
layout_mode = 2
[node name="status_yau" type="Label" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 56.0
offset_top = 19.0
offset_right = 144.0
offset_bottom = 42.0
text = "ЯУ-07Б"
metadata/_edit_lock_ = true
[node name="addr" type="Label" parent="TabContainer/Monitoring"]
layout_mode = 0
offset_left = 248.0
offset_top = -30.0
offset_right = 344.0
offset_bottom = -4.0
[node name="load_status_yau" type="ProgressBar" parent="."]
offset_left = 490.0
offset_top = 19.0
@@ -1388,15 +2054,15 @@ metadata/_edit_lock_ = true
[connection signal="pressed" from="Background/switch_panel/select_prd" to="." method="_on_prd_select"]
[connection signal="pressed" from="Background/switch_panel/select_control" to="." method="_on_control_button"]
[connection signal="pressed" from="Background/switch_panel/select_ems_g" to="." method="_on_emsg_select"]
[connection signal="pressed" from="Background/switch_panel/select_fs" to="." method="_on_mfs_select"]
[connection signal="pressed" from="Background/switch_panel/select_monitoring" to="." method="_on_monitoring_select"]
[connection signal="pressed" from="Background/switch_panel/save_config" to="." method="_on_save_config"]
[connection signal="pressed" from="Background/switch_panel/load_config" to="." method="_on_load_config"]
[connection signal="toggled" from="Background/switch_panel/burgerButton" to="." method="_on_burger_button"]
[connection signal="pressed" from="Background/switch_panel/texture_prd" to="." method="_on_prd_select"]
[connection signal="pressed" from="Background/switch_panel/texture_control" to="." method="_on_control_button"]
[connection signal="pressed" from="Background/switch_panel/texture_ems_g" to="." method="_on_emsg_select"]
[connection signal="pressed" from="Background/switch_panel/texture_fs" to="." method="_on_mfs_select"]
[connection signal="pressed" from="Background/switch_panel/texture_save_config" to="." method="_on_save_config"]
[connection signal="pressed" from="Background/switch_panel/texture_load_config" to="." method="_on_load_config"]
[connection signal="pressed" from="TabContainer/PRD/Connect_prd" to="." method="_on_connect_prd_pressed"]
[connection signal="toggled" from="TabContainer/PRD/ems_block" to="." method="on_ems_block"]
[connection signal="item_selected" from="TabContainer/Monitoring/select_device" to="TabContainer/Monitoring" method="_on_select_device_item_selected"]

2068
PRD_MP550.tscn155875871.tmp Normal file

File diff suppressed because it is too large Load Diff

2068
PRD_MP550.tscn69539220.tmp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -3,15 +3,17 @@
name="Windows Desktop"
platform="Windows Desktop"
runnable=true
advanced_options=false
advanced_options=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="bin/testPRD.exe"
export_path="bin/PoligonPRD.exe"
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
@@ -19,7 +21,7 @@ script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release="M:/gitea/windows.template_release.exe"
custom_template/release="D:/gitea/godot-bin/godot4.4.windows.template_release.x86_64.exe"
debug/export_console_wrapper=0
binary_format/embed_pck=true
texture_format/s3tc_bptc=true
@@ -62,3 +64,45 @@ Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorActi
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
Remove-Item -Recurse -Force '{temp_dir}'"
[preset.1]
name="Linux"
platform="Linux"
runnable=true
advanced_options=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="bin/PoligonPRD.x86_64"
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
custom_template/debug=""
custom_template/release="/home/user/tmp/godot.linuxbsd.template_release.x86_64"
debug/export_console_wrapper=1
binary_format/embed_pck=true
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""

176
monitoring.gd Normal file
View File

@@ -0,0 +1,176 @@
extends Panel
const yau_devices: Array[Dictionary] = [
{'name': 'ПРД-Н1', 'addr': '10.1.1.11', 'port': 50011},
{'name': 'ПРД-Н2', 'addr': '10.1.1.21', 'port': 50021},
{'name': 'ПРД-Н3', 'addr': '10.1.1.31', 'port': 50031},
{'name': 'ПРД-Н4', 'addr': '10.1.1.41', 'port': 50041},
{'name': 'ПРД-В1', 'addr': '10.1.1.12', 'port': 50012},
{'name': 'ПРД-В2', 'addr': '10.1.1.22', 'port': 50022},
{'name': 'ПРД-В3', 'addr': '10.1.1.32', 'port': 50032},
{'name': 'ПРД-В4', 'addr': '10.1.1.42', 'port': 50042},
{'name': 'ПРД-К1', 'addr': '10.1.1.13', 'port': 50013},
{'name': 'ПРД-К2', 'addr': '10.1.1.23', 'port': 50023},
{'name': 'ПРД-К3', 'addr': '10.1.1.33', 'port': 50033},
{'name': 'ПРД-К4', 'addr': '10.1.1.43', 'port': 50043}
]
func _ready() -> void:
for device in yau_devices:
$select_device.add_item(device['name'])
## Включаем обработку событий мыши
$select_device.mouse_filter = Control.MOUSE_FILTER_PASS
$select_device.gui_input.connect(_on_select_device_gui_input)
Network.connect('yau_receive', Callable(self, '_on_parse_packet_yau_07'))
Network.connect('yau_status_line', Callable(self, '_on_yau_status'))
func _on_select_device_item_selected(index: int) -> void:
if index == 0:
# Обработка выбора "NONE"
$addr.text = "Устройство не выбрано (NONE)"
Network.send_array = []
Network.ip_address_yau = ''
Network.ip_port_yau = 0
elif index > 0 and index - 1 < yau_devices.size():
var device: Dictionary = yau_devices[index - 1]
var changed_addr_yau: String = device['addr']
var changed_port_yau: int = device['port']
$addr.text = "Адрес: %s" % changed_addr_yau
Network.send_array = []
Network.ip_address_yau = changed_addr_yau
Network.ip_port_yau = changed_port_yau
else:
print("Неверный индекс: ", index)
func _on_select_device_gui_input(event: InputEvent) -> void:
if event is InputEventMouseButton:
var mouse_event: InputEventMouseButton = event
if mouse_event.pressed:
if mouse_event.button_index == MOUSE_BUTTON_WHEEL_UP:
# Прокрутка вверх
var current_index = $select_device.selected
if current_index > 0:
$select_device.select(current_index - 1)
$select_device.item_selected.emit(current_index - 1)
elif mouse_event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
# Прокрутка вниз
var current_index = $select_device.selected
if current_index < $select_device.item_count - 1:
$select_device.select(current_index + 1)
$select_device.item_selected.emit(current_index + 1)
func _on_parse_packet_yau_07(packet_form_yau_07: PackedByteArray) -> void:
#print_debug('in _on_parse_packet_yau_07')
socket_status_ems_g(packet_form_yau_07)
parser_power_um(packet_form_yau_07)
parser_temperature_um(packet_form_yau_07)
dkm(packet_form_yau_07)
var receive_yau_counter: Array = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
func _on_yau_status(addr: String):
var count_packets_await: int = 20
var status_yau_list = $status_yau_list.get_children()
var status_label = $status_yau
if addr.is_empty():
# Сброс состояния, если адрес пуст (нет связи)
for label in status_yau_list:
label.text = ''
status_label.modulate = Color.CRIMSON
status_label.text = 'ЯУ-07Б: нет связи'
return
status_label.text = '' # Убираем статус, если есть сигнал от ЯУ-07Б
# Обновляем счетчики
for i in Constants.ADDRESSES.size():
var address_match = (Constants.ADDRESSES[i][1] == addr)
receive_yau_counter[i] = 0 if address_match else (receive_yau_counter[i] + 1) & 0xFFF
# Обновляем статусы элементов
for i in status_yau_list.size():
var label = status_yau_list[i]
var address_info = Constants.ADDRESSES[i]
label.text = address_info[0]
label.modulate = Color.AQUAMARINE if receive_yau_counter[i] < count_packets_await else Color.DARK_GRAY # Если счетчик >= count_packets_await, помечаем серым, иначе — аквамарином
## Отображение статуса входа/выхода от ЭМС-Г
func socket_status_ems_g(packet_form_yau_07: PackedByteArray) -> void:
var count_sockets: int = 16
var in_blank: int = packet_form_yau_07.decode_u16(Constants.DataIndices.IN_BLANK_PRD)
var in_impulse: int = packet_form_yau_07.decode_u16(Constants.DataIndices.IN_IMPULS_PRD)
var out_blank: int = packet_form_yau_07.decode_u16(Constants.DataIndices.OUT_BLANK_PRD)
var out_impulse: int = packet_form_yau_07.decode_u16(Constants.DataIndices.OUT_IMPULS_PRD)
process_sockets_input(in_blank, in_impulse, count_sockets)
process_sockets_output(out_blank, out_impulse, count_sockets)
func process_sockets_input(in_blank: int, in_impulse: int, count: int):
var group_socket_status: Array = get_tree().get_nodes_in_group("input_socket_status")
for i in count:
var frame_type = Constants.Frame.WORK
if (in_blank & (1 << i)) != 0:
frame_type = Constants.Frame.CONSTANT
elif (in_impulse & (1 << i)) != 0:
frame_type = Constants.Frame.VARIABLE
set_frame(group_socket_status[i], frame_type)
func process_sockets_output(out_blank: int, out_impulse: int, count: int):
for i in count:
var group_socket_status: Array = get_tree().get_nodes_in_group("output_socket_status")
var frame_type = Constants.Frame.WORK
if (out_blank & (1 << i)) != 0:
frame_type = Constants.Frame.CONSTANT
elif (out_impulse & (1 << i)) != 0:
frame_type = Constants.Frame.VARIABLE
set_frame(group_socket_status[i], frame_type)
func set_frame(node: Node, val: int): node.set_frame(val)
## Значения температуры и мощнсти от УКП
func parser_power_um(data_from_yau_07: PackedByteArray) -> void:
var array_power_1 = get_tree().get_nodes_in_group("power")
for i_pow in range(6): ## Мощность от УКП_1
var power_ukp_1 = data_from_yau_07.decode_u16(Constants.DataIndices.POWER_UKP_1 + 2 * i_pow)
array_power_1[i_pow].text = '%d' % power_ukp_1
var array_power_2 = get_tree().get_nodes_in_group("power")
for i_pow in range(6): ## Мощность от УКП_2
if len(data_from_yau_07) > Constants.DataIndices.POWER_UKP_2 + 2 * i_pow:
var power_ukp_2 = data_from_yau_07.decode_u16(Constants.DataIndices.POWER_UKP_2 + 2 * i_pow)
array_power_2[i_pow+6].text = '%d' % power_ukp_2
#if len(data_from_yau_07) > Constants.DataIndices.TEMPERATURE_UKP_1 + 2 * 7:
#var power_ukp_3 = data_from_yau_07.decode_u16(Constants.DataIndices.POWER_UKP_1 + 2 * 7)
#var temperature_ukp_3 = data_from_yau_07.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_1 + 2 * 7)
#var TMP = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_3) * Constants.TEMP + 3
#node_select3.set_node_text(0, 1, '%d' % power_ukp_3)
#node_select3.set_node_text(1,1, '%d °С' % TMP)
func parser_temperature_um(data_from_yau_07: PackedByteArray) -> void:
var array_temperature = get_tree().get_nodes_in_group("temperature")
for i_tmp in range(6): ## Температура от УКП_1
var temperature_ukp_1 = data_from_yau_07.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_1 + 2 * i_tmp)
var TMP = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_1) * Constants.TEMP + 3
array_temperature[i_tmp].text = '%d °С' % TMP
for i_tmp in range(6): ## Температура от УКП_2
if len(data_from_yau_07) > Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_tmp:
var temperature_ukp_2 = data_from_yau_07.decode_u16(Constants.DataIndices.TEMPERATURE_UKP_2 + 2 * i_tmp)
var TMP = Constants.CONST_MIN_TEMP + (Constants.MAXIMUM_CODE_ADC - temperature_ukp_2) * Constants.TEMP + 3
array_temperature[i_tmp+6].text = '%d °С' % TMP
func dkm(data_from_yau_07: PackedByteArray)-> void:
var local_dkm = data_from_yau_07.decode_u8(Constants.DataIndices.DKM)
$DKM_grid/DKM.text = 'DKM: ' + str(local_dkm)

1
monitoring.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://du1ddy4r1sch

View File

@@ -37,7 +37,7 @@ window/stretch/mode="canvas_items"
[editor]
run/main_run_args="-- addr 2s"
run/main_run_args="--addr 3"
[rendering]

View File

@@ -139,7 +139,9 @@ class ClientFs extends Node:
emit_signal("data_fs", data[1])
if not command_stack.is_empty() and command_done:
send_fs_data()
if _status == _stream.STATUS_CONNECTED:
send_fs_data()
func connect_to_host(host: String, port: int) -> void:
print('Connect to %s:%s' % [host, port])

View File

@@ -151,6 +151,11 @@ func _ready() -> void:
node_select_yau_07b.get_node2(1, 3).add_item(key)
node_select_yau_07b_2.get_node2(1, 3).add_item(key)
_setup_mouse_scroll(node_select_yau_07b.get_node2(1, 3))
_setup_mouse_scroll(node_select_yau_07b.get_node2(1, 4))
_setup_mouse_scroll(node_select_yau_07b_2.get_node2(1, 3))
_setup_mouse_scroll(node_select_yau_07b_2.get_node2(1, 4))
node_select_yau_07b_3.get_node2(1, 3).add_item(' 15°')
## Заполненение списка аттенюатора
@@ -234,7 +239,7 @@ func _ready() -> void:
Network.unit_fs_2.connect("disconnected", Callable(self, "_on_port_changed").bind(Network.unit_fs_2, Constants.STATE_VAL.NONE))
Network.unit_fs_2.connect("error_connect", Callable(self, "_on_port_changed").bind(Network.unit_fs_2, Constants.STATE_VAL.ERROR))
Network.unit_fs_2.connect("data_fs", Callable(self, "_on_data_fs").bind(Network.unit_fs_2))
Network.unit_fs_3.connect("connected", Callable(self, "_on_port_changed").bind(Network.unit_fs_3, Constants.STATE_VAL.GOOD))
Network.unit_fs_3.connect("disconnected", Callable(self, "_on_port_changed").bind(Network.unit_fs_3, Constants.STATE_VAL.NONE))
Network.unit_fs_3.connect("error_connect", Callable(self, "_on_port_changed").bind(Network.unit_fs_3, Constants.STATE_VAL.ERROR))
@@ -902,6 +907,7 @@ func _on_prd_select() -> void:
set_tab_and_buttons(0, 'select_prd', 'texture_prd')
Network.unit_fs_1.get_gen_state()
Network.unit_fs_2.get_gen_state()
Network.unit_fs_3.get_gen_state()
func _on_control_button() -> void:
@@ -915,8 +921,10 @@ func _on_emsg_select() -> void:
set_tab_and_buttons(2, 'select_ems_g', 'texture_ems_g')
func _on_mfs_select() -> void:
set_tab_and_buttons(3, 'select_fs', 'texture_fs')
func _on_monitoring_select() -> void:
set_tab_and_buttons(3, 'select_monitoring', 'texture_monitoring')
$load_status_yau.visible = false
# Need Disconnect to yau-07
func _on_burger_button(toggled_on: bool) -> void:
@@ -994,3 +1002,44 @@ func on_ems_block(toggled_on: bool) -> void:
timer_modul_um.start()
else:
timer_modul_um.stop()
var hovered_option_button: OptionButton = null
func _setup_mouse_scroll(option_button: OptionButton):
option_button.mouse_entered.connect(_on_option_button_mouse_entered.bind(option_button))
option_button.mouse_exited.connect(_on_option_button_mouse_exited.bind(option_button))
func _on_option_button_mouse_entered(option_button: OptionButton):
hovered_option_button = option_button
option_button.mouse_filter = Control.MOUSE_FILTER_STOP
func _on_option_button_mouse_exited(option_button: OptionButton):
if hovered_option_button == option_button:
hovered_option_button = null
option_button.mouse_filter = Control.MOUSE_FILTER_PASS
# Обработка прокрутки колеса мыши
func _input(event):
if event is InputEventMouseButton and hovered_option_button != null:
if event.pressed:
_handle_mouse_scroll(event, hovered_option_button)
func _handle_mouse_scroll(event: InputEventMouseButton, option_button: OptionButton):
var current_index = option_button.selected
var item_count = option_button.get_item_count()
var new_index = current_index
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
new_index = wrapi(current_index - 1, 0, item_count)
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
new_index = wrapi(current_index + 1, 0, item_count)
else:
return
# Устанавливаем новый индекс
option_button.selected = new_index
# Вручную испускаем сигнал
option_button.emit_signal("item_selected", new_index)
get_viewport().set_input_as_handled()

View File

@@ -1,6 +1,6 @@
extends Node
var UNICAST_PORT: int = 50002
var UNICAST_ADDRESS: String = '10.1.1.2'
var UNICAST_PORT: int = 50003
var UNICAST_ADDRESS: String = '10.1.1.3'
const BROADCAST_PORT: int = 50000
const DEFAULT_ADDRESS: String = '10.1.1.11'
const DEFAULT_PORT: String = '50011'
@@ -427,10 +427,15 @@ var FS_ATT: Dictionary = {
func _ready() -> void:
# Считывание аргументов с консоли (путь сохранения)
var args = OS.get_cmdline_user_args()
for i in range(args.size()):
if args[i] == "addr" and i + 1 < args.size():
UNICAST_PORT = 50000 + int(args[i + 1])
UNICAST_ADDRESS = '10.1.1.%s' % args[i + 1]
var i = 0
while i < args.size():
if args[i] == "--addr" or args[i] == "-a":
if i + 1 < args.size():
var addr_suffix: int = int(args[i + 1])
UNICAST_PORT = 50000 + addr_suffix
UNICAST_ADDRESS = '10.1.1.%s' % addr_suffix
i += 1 # Пропускаем следующий аргумент
i += 1
read_file()

View File

@@ -28,7 +28,7 @@ var flag_continue_control: bool = false
var prep_set_ug: int = 0
class Logger extends Node:
class Loger extends Node:
var log_level: String = "INFO"
var log_array: Node
@@ -430,7 +430,7 @@ func _on_start_super_control():
$lbl_control.text = 'Контроль запущен'
$lbl_control.modulate = Color.LIGHT_GRAY
$log_array/await.visible = true
logger = Logger.new(get_node('log_array'))
logger = Loger.new(get_node('log_array'))
flag_continue_control = true
if (past_pribor != Constants.CURRENT_MODE):

View File

@@ -38,7 +38,7 @@ signal port_error(error_str: String)
class Socket extends PacketPeerUDP:
func send_to(addr: String, port: int, data: PackedByteArray):
self.set_dest_address(addr, port)
self.put_packet(data)
var _rc = self.put_packet(data)
func poll_receive_yau07(sock: Socket) -> bool: ## Приёмник
@@ -47,6 +47,7 @@ func poll_receive_yau07(sock: Socket) -> bool: ## Приёмник
broadcast_packet = sock.get_packet()
var addr_receive = sock.get_packet_ip()
var port_receive = sock.get_packet_port()
print('addr_receive: ', addr_receive)
if (ip_address_yau == addr_receive) and (ip_port_yau == port_receive):
last_update_time_yau07 = 0.0
unit.parse(broadcast_packet)
@@ -105,8 +106,9 @@ func _process(delta: float) -> void:
state_machine_yau07()
match unit.process(delta):
Error.OK: soc_unicast.send_to(ip_address_yau, ip_port_yau, unit.tx_data.slice(0, unit.tx_len))
var rc = unit.process(delta)
if rc == Error.OK:
soc_unicast.send_to(ip_address_yau, ip_port_yau, unit.tx_data.slice(0, unit.tx_len))
#Error.FAILED: print_debug('Ошибка отправки данных')
@@ -121,7 +123,7 @@ func state_machine_yau07():
Constants.STATE.READ_ISA:
if fl_done:
var ports_read = send_array.pop_front()
unit.send_isa(unit.CmdCode.READ_ISA, ports_read[1])
var _rc = unit.send_isa(unit.CmdCode.READ_ISA, ports_read[1])
state = Constants.STATE.DONE
## Режим записи в ИСА
Constants.STATE.WRITE_ISA:
@@ -129,7 +131,7 @@ func state_machine_yau07():
var ports_write: Array = send_array.pop_front()
if ports_write[0] == 'wr':
var key = ports_write[1].keys()
unit.send_isa(unit.CmdCode.WRITE_ISA, [key[0], ports_write[1][key[0]]])
var _rc = unit.send_isa(unit.CmdCode.WRITE_ISA, [key[0], ports_write[1][key[0]]])
state = Constants.STATE.WAIT
Constants.STATE.DONE:
if fl_done:
@@ -164,18 +166,18 @@ func on_command_change_device(meta_device: Array):
if unit_fs_2._stream:
unit_fs_2.disconnect_fs()
unit_fs_2.connect_to_host(meta_device[4], Constants.PORT_FS)
if meta_device[5] != '':
if unit_fs_3._stream:
unit_fs_3.disconnect_fs()
unit_fs_3.connect_to_host(meta_device[5], Constants.PORT_FS)
await get_tree().create_timer(0.1).timeout
setup_fs(unit_fs_1, meta_device)
setup_fs(unit_fs_2, meta_device)
if meta_device[5] != '':
setup_fs(unit_fs_3, meta_device)
func setup_fs(unit_fs: Node, meta_device: Array) -> void: