Анимация прогресса для БПО

This commit is contained in:
Maxim
2026-01-16 11:13:22 +03:00
parent f4f290849c
commit 0c85a85d7c
4 changed files with 55 additions and 25 deletions

View File

@@ -9,23 +9,23 @@ class_name pribor_afsp extends 'res://scenes/контроль/прибор.gd'
static var json_conv: JSON = JSON.new()
static var node_maper = load('res://scenes/контроль/node-maper.gd')
static var node_request: Node
static var node_request_timer: Node
var ctrl_pos = 0
var request_url: Node
var time_req: Node
# SystemName: "gen" DevList - там состояние связи с генератором по кан шине
func _ready() -> void:
ProjectSettings.connect('settings_changed', on_settings_chaged)
node_request = $request
node_request_timer = $request/timer
on_settings_chaged()
request_url = $request
time_req = $request/timer
func on_settings_chaged():
$request.request_url = ProjectSettings.get_setting('application/config/%s' % settings_path_to_url)
$request/timer.wait_time = float(ProjectSettings.get_setting('application/config/%s' % settings_path_to_wait_time))
tools.allways($request.request_url != null)
node_request.request_url = ProjectSettings.get_setting('application/config/%s' % settings_path_to_url)
node_request_timer.wait_time = float(ProjectSettings.get_setting('application/config/%s' % settings_path_to_wait_time))
tools.allways(node_request.request_url != null)
func _on_request_completed(result, _response_code, headers, body: PackedByteArray):
@@ -33,7 +33,7 @@ func _on_request_completed(result, _response_code, headers, body: PackedByteArra
var unit_instance: = network.get_unit_instance(unit_name)
if result != 0:
var rs = $request.get_result_string(result)
var rs = node_request.get_result_string(result)
log.error('\"%s\"' % rs)
if unit_instance.online:
unit_instance.online = false

View File

@@ -10,12 +10,15 @@ class_name pribor_rtr extends 'res://scenes/контроль/прибор.gd'
@export var settings_path2_to_url: String = '' ## Должно быть в ProjectSettings
@export var settings_path_to_wait_time: String = '' ## Должно быть в ProjectSettings
static var json_conv: JSON = JSON.new()
static var node_maper = load('res://scenes/контроль/node-maper.gd')
static var node_request_1: Node
static var node_request_timer_1: Node
static var node_request_2: Node
static var node_request_timer_2: Node
var ctrl_pos = 110
var bort_to_node_name = {}
var bort_to_unit_name = {}
@@ -23,6 +26,10 @@ var bort_to_unit_name = {}
func _ready() -> void:
ProjectSettings.connect('settings_changed', on_settings_changed)
node_request_1 = $request1
node_request_timer_1 = $request1/timer
node_request_2 = $request2
node_request_timer_2 = $request2/timer
on_settings_changed()
find_labels(self)
@@ -30,17 +37,17 @@ func _ready() -> void:
func on_settings_changed():
bort_to_node_name.merge({this_bpo1_name: 'grid_bpo_a1', this_bpo2_name: 'grid_bpo_a2'}, true)
bort_to_unit_name.merge({this_bpo1_name: unit_name1, this_bpo2_name: unit_name2})
$request1.request_url = ProjectSettings.get_setting('application/config/%s' % settings_path1_to_url)
$request1/timer.wait_time = float(ProjectSettings.get_setting('application/config/%s' % settings_path_to_wait_time))
$request2.request_url = ProjectSettings.get_setting('application/config/%s' % settings_path2_to_url)
$request2/timer.wait_time = float(ProjectSettings.get_setting('application/config/%s' % settings_path_to_wait_time))
assert($request1.request_url != null)
assert($request2.request_url != null)
node_request_1.request_url = ProjectSettings.get_setting('application/config/%s' % settings_path1_to_url)
node_request_timer_1.wait_time = float(ProjectSettings.get_setting('application/config/%s' % settings_path_to_wait_time))
node_request_2.request_url = ProjectSettings.get_setting('application/config/%s' % settings_path2_to_url)
node_request_timer_2.wait_time = float(ProjectSettings.get_setting('application/config/%s' % settings_path_to_wait_time))
assert(node_request_1.request_url != null)
assert(node_request_2.request_url != null)
func _on_request_completed(result, _response_code, headers, body: PackedByteArray):
if result != 0:
var rs = $request1.get_result_string(result)
var rs = node_request_1.get_result_string(result)
push_error('\"%s\"' % rs)
return

View File

@@ -21,7 +21,7 @@ const RESULT_STRINGS = {
@export var request_url: String = ''
signal sending_request() ## Отправка запроса
signal sending_request_afp_bpo() ## Отправка запроса
func get_result_string(result: Result):
@@ -34,4 +34,4 @@ func _on_request_timer():
var rc: = request(request_url)
if rc != Error.OK:
push_error('%s: \"%s\"' % [error_string(rc), request_url])
emit_signal('sending_request')
emit_signal('sending_request_afp_bpo')

View File

@@ -168,12 +168,13 @@ func on_pribor_press(pribor_path, header_text, pribor_node):
add_child(pribor)
update_pribor_items_visibility()
if pribor_node.get_meta('unit_name')[0] == 'уарэп-афсп-левый' or pribor_node.get_meta('unit_name')[0] == 'уарэп-афсп-правый':
var req = pribor.request_url
req.connect('sending_request', Callable(self, 'on_sending_request').bind(pribor_node, pribor.time_req.wait_time))
pribor.node_request.connect('sending_request_afp_bpo', Callable(self, 'on_sending_request_afp_bpo').bind(pribor_node, pribor.node_request_timer.wait_time))
if pribor_node.get_meta('unit_name')[0] == 'уарэп-бпо-1' or pribor_node.get_meta('unit_name')[0] == 'уарэп-бпо-2':
pribor.node_request_1.connect('sending_request_afp_bpo', Callable(self, 'on_sending_request_afp_bpo').bind(pribor_node, pribor.node_request_timer_1.wait_time))
# Вызов при отправке запроса на селфтест АФСП
func on_sending_request(node: Node, time_req: float) -> void:
func on_sending_request_afp_bpo(node: Node, time_req: float) -> void:
node.progress_max_value = 100
node.progress_value = 0
node.progress_visible = true
@@ -711,9 +712,9 @@ texture = ExtResource("11_gjf0t")
[node name="control_progress" type="TextureProgressBar" parent="pribor_uf"]
visible = false
layout_mode = 0
offset_left = 1.0
offset_left = 2.0
offset_top = 176.0
offset_right = 94.0
offset_right = 95.0
offset_bottom = 186.0
size_flags_horizontal = 3
size_flags_vertical = 3
@@ -825,6 +826,28 @@ scale = Vector2(0.6, 0.596)
sprite_frames = SubResource("SpriteFrames_foasq")
frame_progress = 0.72355
[node name="control_progress" type="TextureProgressBar" parent="pribor_rtr"]
visible = false
offset_left = 6.0
offset_top = 172.0
offset_right = 102.0
offset_bottom = 182.0
size_flags_horizontal = 3
size_flags_vertical = 3
tooltip_text = "
Текущее: 0.00"
mouse_filter = 0
max_value = 30.0
nine_patch_stretch = true
stretch_margin_left = 5
stretch_margin_top = 5
stretch_margin_right = 5
stretch_margin_bottom = 5
texture_under = ExtResource("9_w6m6a")
texture_progress = ExtResource("10_lbx5w")
tint_under = Color(1, 1, 1, 0.419608)
tint_progress = Color(0.890196, 0.486275, 0.196078, 1)
[node name="pribor_afsp_1" type="TextureButton" parent="." groups=["pribor_buttons"]]
editor_description = "Кнопка для выбора прибора."
layout_mode = 0