From 6c6631b87f8939f6c1edefe93d5bc2c4b3dc4073 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 5 May 2025 14:25:05 +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=92=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D1=81?= =?UTF-8?q?=D1=81=D0=B5.=20=D0=A0=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BF=D1=80=D0=B8=D0=B1=D0=BE=D1=80=20=D0=A0?= =?UTF-8?q?=D0=A2=D0=A0=20=D0=BD=D0=B0=20=D0=B4=D0=B2=D0=B0=20=D0=90=D0=A4?= =?UTF-8?q?=D0=A1=D0=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/СПТ.png | Bin 13195 -> 1620 bytes project.godot | 6 +- .../bort-afsp.tscn} | 0 .../pribor-afsp.gd} | 2 +- .../pribor-afsp.gd.uid} | 0 .../pribor-afsp.tscn} | 14 +- scenes/pribor-rtr/request-rtr.gd | 41 ----- scenes/контроль/request.gd | 42 +++++ .../request.gd.uid} | 0 scenes/контроль/контроль.gd | 2 + scenes/контроль/контроль.tscn | 174 +++++++++++++----- 11 files changed, 188 insertions(+), 93 deletions(-) rename scenes/{pribor-rtr/bort-rtr.tscn => pribor-afsp/bort-afsp.tscn} (100%) rename scenes/{pribor-rtr/pribor-rtr.gd => pribor-afsp/pribor-afsp.gd} (98%) rename scenes/{pribor-rtr/pribor-rtr.gd.uid => pribor-afsp/pribor-afsp.gd.uid} (100%) rename scenes/{pribor-rtr/pribor-rtr.tscn => pribor-afsp/pribor-afsp.tscn} (87%) delete mode 100644 scenes/pribor-rtr/request-rtr.gd create mode 100644 scenes/контроль/request.gd rename scenes/{pribor-rtr/request-rtr.gd.uid => контроль/request.gd.uid} (100%) diff --git a/data/СПТ.png b/data/СПТ.png index 33abb89c2941052da49c65f70f92fecad146cb4e..18ba25be13a08f3a3cfb57048f1eef8938be86be 100644 GIT binary patch literal 1620 zcmV-a2CMmrP)^ry4&sk78Iz!;1nIs19zF}#?L1J5&&brtnZWHA3uNX z=YRWlfB1GU0VLgS_oqTYwH#0x@hgDO0bB$4wA<}IU)HcANEKO`F*L?JCi!(7$G?+& zbyxe2PFeY}ySwWKgF!MHjm&g9{U%A0mn44x@V!9QBs!fAudc2z8jUcWPLU)DNP@iE zzyzwK*xA{^Xf(p*oO2*)maH?I=9ew{J==c1&HQ}P zdf9``&gYj^kxWq(AxRQkUteP|7|Z~zVsp7bjmP6#2kHT>wWGV*-~D9q z&yy(G?WGPgolY^COfZ>DX4j$g{H=X$yX)kpQ{GI-^MSV2Hg6K#wVzeDlY(;2A&z6j zalDa=a)C;1W78c~a{q|Tb&@wpkZfYlJ5V9lx>a_(&8**Yr?T|VoI*;cqPB0_UX_L7 z6s-qUm5M6`6`JjZbltU0gw)86b6f2vw8XMflN2R2)d`de2q{WY6ey`lic&NYRMXY8 z5h#`9yNQ>^UFMF^iHI)o%9#Zy}KJfoI0c$OcF}a=zZ39wk6*Zro%br`!kAtWx znqtwNbq_lIIR#>^U1*8hQdL_ludsep*8b8#9Bs3u+9)cko<(EPQdLD!G`mJ^v!H03 znpRfS{201LkWx5xfTUt#$w^CyR&mRCbiStxb+?*Ia| z1kyTiq^1Ch2|)_D!>gznD5*(`5-6!DU{ET<8>%R&N!KVvQJ|!z06+ge6b~0@^05j!tzkvB`_+Qd9|QD(gKmf!YvKSx*-P zDga0Vr4Da0L!b&{scJ1W$e8`)x7^CPywk)plV(~2vh*&xIhJ{CP1T*D!&7<>V7(_Y^Y7I zhi>^;>8BXL0KhAfFN`tY0r+_>Q0XJ)>`T{823CUQWg+zeoCA1nj5!1F0>JCFu2GA| z1vK@$(6^C*#u!*@)1MbX>KS9c1@I$)zW}^hOHt0bUdFGV0eA}FVY&`U({yERvJF4c zT1%2KfIi7{06hSw0DAuS0e~A1a;rY literal 13195 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' % result - - -func _ready(): - addr_left = ProjectSettings.get_setting('application/config/unit_rr_left_bort') - addr_right = ProjectSettings.get_setting('application/config/unit_rr_right_bort') - - -func _on_request_timer(): - var addr = [addr_left, addr_right][i_bort] - var rc = request(addr) - if rc != Error.OK: - var s: String = '%s: %s' % [error_string(rc), addr] - log.error('ошибка: %s' % s) - i_bort = (i_bort + 1) % 2 diff --git a/scenes/контроль/request.gd b/scenes/контроль/request.gd new file mode 100644 index 0000000..8072398 --- /dev/null +++ b/scenes/контроль/request.gd @@ -0,0 +1,42 @@ +extends HTTPRequest + +## Для приборов АФСП и РТР + +const RESULT_STRINGS = { + RESULT_SUCCESS: 'Запрос успешен', + RESULT_CHUNKED_BODY_SIZE_MISMATCH: 'Несоответствие размеров частей сообщения', + RESULT_CANT_CONNECT: 'Запрос не выполнен при подключении', + RESULT_CANT_RESOLVE: 'Запрос не выполнен при разрешении', + RESULT_CONNECTION_ERROR: 'Запрос не выполнен из-за ошибки соединения (чтения/записи)', + RESULT_TLS_HANDSHAKE_ERROR: 'Запрос не выполнен на TLS рукопожатии', + RESULT_NO_RESPONSE: 'Запрос не имеет ответа (пока)', + RESULT_BODY_SIZE_LIMIT_EXCEEDED: 'Запрос превысил максимальный размер, см. `body_size_limit`', + RESULT_BODY_DECOMPRESS_FAILED: 'Не удалось распаковать сообщение', + RESULT_REQUEST_FAILED: 'Запрос не удался (в настоящее время не используется)', + RESULT_DOWNLOAD_FILE_CANT_OPEN: 'Невозможно открыть файл загрузки', + RESULT_DOWNLOAD_FILE_WRITE_ERROR: 'Невозможно записать в файл загрузки', + RESULT_REDIRECT_LIMIT_REACHED: 'Запрос достиг максимального предела перенаправления, см. `max_redirects`', + RESULT_TIMEOUT: 'Время истекло' } + + +var i_bort: int = 0 +var addr_left: String +var addr_right: String + + +func get_result_string(result: Result): + return RESULT_STRINGS[result] if RESULT_STRINGS.has(result) else '<неизвестный код результата HTTPRequest - %d>' % result + + +func _ready(): + addr_left = ProjectSettings.get_setting('application/config/unit_afsp_left_bort') + addr_right = ProjectSettings.get_setting('application/config/unit_afsp_right_bort') + + +func _on_request_timer(): + var addr = [addr_left, addr_right][i_bort] + var rc = request(addr) + if rc != Error.OK: + var s: String = '%s: %s' % [error_string(rc), addr] + log.error('ошибка: %s' % s) + i_bort = (i_bort + 1) % 2 diff --git a/scenes/pribor-rtr/request-rtr.gd.uid b/scenes/контроль/request.gd.uid similarity index 100% rename from scenes/pribor-rtr/request-rtr.gd.uid rename to scenes/контроль/request.gd.uid diff --git a/scenes/контроль/контроль.gd b/scenes/контроль/контроль.gd index 8e97415..f226705 100644 --- a/scenes/контроль/контроль.gd +++ b/scenes/контроль/контроль.gd @@ -19,6 +19,8 @@ const PRIBORS_RES = \ 'pribor_prd_v_3': ['res://scenes/pribor-prd-v/pribor-prd-v.tscn', 'Контроль исправности прибора ПРД-В 3'], 'pribor_prd_v_4': ['res://scenes/pribor-prd-v/pribor-prd-v.tscn', 'Контроль исправности прибора ПРД-В 4'], 'pribor_rtr': ['res://scenes/pribor-rtr/pribor-rtr.tscn', 'Контроль исправности прибора РТР'], + 'pribor_afsp_1': ['res://scenes/pribor-afsp/pribor-afsp.tscn', 'Контроль исправности прибора АФСП 1'], + 'pribor_afsp_2': ['res://scenes/pribor-afsp/pribor-afsp.tscn', 'Контроль исправности прибора АФСП 2'], 'pribor_uf': ['res://scenes/pribor-uf/pribor-uf.tscn', 'Контроль исправности прибора УФ'], 'pribor_uyep': ['res://scenes/pribor-uyep/pribor-uyep.tscn', 'Контроль исправности устройства У-ЭП'], } diff --git a/scenes/контроль/контроль.tscn b/scenes/контроль/контроль.tscn index 042f61c..1437fdf 100644 --- a/scenes/контроль/контроль.tscn +++ b/scenes/контроль/контроль.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=15 format=3 uid="uid://lwmw4egynmd1"] +[gd_scene load_steps=16 format=3 uid="uid://lwmw4egynmd1"] [ext_resource type="Script" uid="uid://b0wcp76bbl2jx" path="res://scenes/контроль/контроль.gd" id="1_x5d6w"] [ext_resource type="Texture2D" uid="uid://bar8k5qef7kch" path="res://data/УФ.png" id="2_0nvm1"] @@ -11,6 +11,7 @@ [ext_resource type="Texture2D" uid="uid://c6nve6f8sfyj2" path="res://data/состояние-исправности-0.png" id="7_6j01w"] [ext_resource type="Texture2D" uid="uid://u3tnejvpm8it" path="res://data/disconnect-a.png" id="8_gs2be"] [ext_resource type="Texture2D" uid="uid://dnreyfh3cd1k2" path="res://data/состояние-исправности-1.png" id="8_isjua"] +[ext_resource type="Texture2D" uid="uid://b4isaggma6q3" path="res://data/Грани22.png" id="9_iqgf5"] [ext_resource type="Texture2D" uid="uid://c6booa8753u5t" path="res://data/состояние-исправности-2.png" id="9_ll0vs"] [ext_resource type="Script" uid="uid://bncy1x53jp73d" path="res://scenes/контроль/connect_pribor.gd" id="11_u7tym"] @@ -41,9 +42,9 @@ metadata/_edit_lock_ = true editor_description = "Кнопка для выбора прибора." layout_mode = 0 offset_left = 1194.0 -offset_top = 500.0 +offset_top = 473.0 offset_right = 1305.0 -offset_bottom = 685.0 +offset_bottom = 658.0 size_flags_horizontal = 15 size_flags_vertical = 15 toggle_mode = true @@ -92,9 +93,9 @@ script = ExtResource("11_u7tym") [node name="pribor_rtr" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 -offset_left = 992.0 +offset_left = 1198.0 offset_top = 264.0 -offset_right = 1504.0 +offset_right = 1304.0 offset_bottom = 420.0 pivot_offset = Vector2(-10, -65) size_flags_horizontal = 15 @@ -106,43 +107,13 @@ stretch_mode = 0 script = ExtResource("3_4pt7j") state_colors = [Color(1, 1, 1, 1), Color(0, 0.87, 0, 1), Color(0.65, 0.0715, 0.0715, 1)] -[node name="label" type="Label" parent="pribor_rtr"] -layout_mode = 0 -offset_left = 217.0 -offset_top = -53.0 -offset_right = 300.0 -offset_bottom = -34.0 -text = "РТР" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="label-l" type="Label" parent="pribor_rtr"] -layout_mode = 0 -offset_left = 47.0 -offset_top = -18.0 -offset_right = 130.0 -offset_bottom = 1.0 -text = "АФСП левый" -horizontal_alignment = 1 -vertical_alignment = 1 - -[node name="label-r" type="Label" parent="pribor_rtr"] -layout_mode = 0 -offset_left = 377.0 -offset_top = -18.0 -offset_right = 460.0 -offset_bottom = 1.0 -text = "АФСП правый" -horizontal_alignment = 1 -vertical_alignment = 1 - [node name="frame" type="NinePatchRect" parent="pribor_rtr"] visible = false self_modulate = Color(0.890196, 0.486275, 0.196078, 1) layout_mode = 0 -offset_left = -17.0 -offset_top = -69.0 -offset_right = 528.0 +offset_left = -13.0 +offset_top = -34.0 +offset_right = 117.0 offset_bottom = 171.0 texture = ExtResource("4_rasbe") region_rect = Rect2(-3, -3, 89, 89) @@ -151,22 +122,141 @@ patch_margin_top = 16 patch_margin_right = 16 patch_margin_bottom = 16 +[node name="label" type="Label" parent="pribor_rtr"] +layout_mode = 0 +offset_left = 12.0 +offset_top = -54.0 +offset_right = 95.0 +offset_bottom = -35.0 +text = "РТР" +horizontal_alignment = 1 +vertical_alignment = 1 + [node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_rtr"] modulate = Color(0.498039, 0.498039, 0.498039, 1) light_mask = 3 -position = Vector2(259, -20) +position = Vector2(55, -15) scale = Vector2(0.615385, 0.625) sprite_frames = SubResource("SpriteFrames_foasq") frame_progress = 0.72355 script = ExtResource("11_u7tym") +[node name="pribor_afsp_1" type="TextureButton" parent="." groups=["pribor_buttons"]] +editor_description = "Кнопка для выбора прибора." +layout_mode = 0 +offset_left = 980.0 +offset_top = 330.0 +offset_right = 1813.0 +offset_bottom = 970.0 +scale = Vector2(0.2, 0.2) +pivot_offset = Vector2(-10, -65) +size_flags_horizontal = 15 +size_flags_vertical = 15 +toggle_mode = true +action_mode = 0 +texture_normal = ExtResource("9_iqgf5") +stretch_mode = 0 +script = ExtResource("3_4pt7j") +state_colors = [Color(1, 1, 1, 1), Color(0, 0.87, 0, 1), Color(0.65, 0.0715, 0.0715, 1)] + +[node name="frame" type="NinePatchRect" parent="pribor_afsp_1"] +visible = false +self_modulate = Color(0.890196, 0.486275, 0.196078, 1) +layout_mode = 0 +offset_left = -60.0 +offset_top = -165.0 +offset_right = 130.0 +offset_bottom = 10.0 +scale = Vector2(5, 5) +texture = ExtResource("4_rasbe") +region_rect = Rect2(-3, -3, 89, 89) +patch_margin_left = 16 +patch_margin_top = 16 +patch_margin_right = 16 +patch_margin_bottom = 16 + +[node name="label" type="Label" parent="pribor_afsp_1"] +layout_mode = 0 +offset_left = 165.0 +offset_top = -245.0 +offset_right = 262.0 +offset_bottom = -225.0 +scale = Vector2(5, 5) +text = "АФСП правый" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_afsp_1"] +modulate = Color(0.498039, 0.498039, 0.498039, 1) +light_mask = 3 +position = Vector2(415, -40) +scale = Vector2(3.07692, 3.125) +sprite_frames = SubResource("SpriteFrames_foasq") +frame_progress = 0.72355 +script = ExtResource("11_u7tym") + +[node name="pribor_afsp_2" type="TextureButton" parent="." groups=["pribor_buttons"]] +editor_description = "Кнопка для выбора прибора." +layout_mode = 0 +offset_left = 1368.0 +offset_top = 330.0 +offset_right = 2201.0 +offset_bottom = 970.0 +scale = Vector2(0.2, 0.2) +pivot_offset = Vector2(-10, -65) +size_flags_horizontal = 15 +size_flags_vertical = 15 +toggle_mode = true +action_mode = 0 +texture_normal = ExtResource("9_iqgf5") +stretch_mode = 0 +flip_h = true +script = ExtResource("3_4pt7j") +state_colors = [Color(1, 1, 1, 1), Color(0, 0.87, 0, 1), Color(0.65, 0.0715, 0.0715, 1)] + +[node name="frame" type="NinePatchRect" parent="pribor_afsp_2"] +visible = false +self_modulate = Color(0.890196, 0.486275, 0.196078, 1) +layout_mode = 0 +offset_left = -50.0 +offset_top = -165.0 +offset_right = 140.0 +offset_bottom = 10.0 +scale = Vector2(5, 5) +texture = ExtResource("4_rasbe") +region_rect = Rect2(-3, -3, 89, 89) +patch_margin_left = 16 +patch_margin_top = 16 +patch_margin_right = 16 +patch_margin_bottom = 16 + +[node name="label" type="Label" parent="pribor_afsp_2"] +layout_mode = 0 +offset_left = 200.0 +offset_top = -240.0 +offset_right = 297.0 +offset_bottom = -220.0 +scale = Vector2(5, 5) +text = "АФСП правый" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="connect_pribor" type="AnimatedSprite2D" parent="pribor_afsp_2"] +modulate = Color(0.498039, 0.498039, 0.498039, 1) +light_mask = 3 +position = Vector2(425, -40) +scale = Vector2(3.07692, 3.125) +sprite_frames = SubResource("SpriteFrames_foasq") +frame_progress = 0.72355 +script = ExtResource("11_u7tym") + [node name="pribor_uyep" type="TextureButton" parent="." groups=["pribor_buttons"]] editor_description = "Кнопка для выбора прибора." layout_mode = 0 offset_left = 1201.0 -offset_top = 739.0 +offset_top = 712.0 offset_right = 1295.0 -offset_bottom = 925.0 +offset_bottom = 898.0 size_flags_horizontal = 15 size_flags_vertical = 15 toggle_mode = true @@ -903,6 +993,8 @@ text = "Сбой" [connection signal="toggled" from="pribor_uf" to="pribor_uf" method="_on_toggled"] [connection signal="toggled" from="pribor_rtr" to="pribor_rtr" method="_on_toggled"] +[connection signal="toggled" from="pribor_afsp_1" to="pribor_afsp_1" method="_on_toggled"] +[connection signal="toggled" from="pribor_afsp_2" to="pribor_afsp_2" method="_on_toggled"] [connection signal="toggled" from="pribor_uyep" to="pribor_uyep" method="_on_toggled"] [connection signal="toggled" from="pribor_prd_v_2" to="pribor_prd_v_2" method="_on_toggled"] [connection signal="toggled" from="pribor_prd_n_2" to="pribor_prd_n_2" method="_on_toggled"]